仮想化ソフトウェアやコンテナが普及したとはいえ、現在でも1台のマシン/ストレージに複数のOS(バージョン)をインストールする、いわゆるマルチブート環境でネイティブに切り替えて使いたいというニーズは少なくない。マルチブート環境を構成する方法はいくつか存在するが、すでにインストール済みのOSが1つのディスクをまるごと使用している場合は、既存のパーティションをシュリンクし、新しいOSのrootパーティションを新たに確保/作成しなければならないなど、やや面倒な作業が必要となる。
そうしたマルチブートにおける煩雑さを解消するために、UbuntuベースのLinuxディストリビューション「Nitrux」の開発チームが作るデプロイツール「znx」がある。znxは通常のインストーラと異なり、「ESP」と「Data」の2つのパーティションをストレージ上に構築し、Dataパーティション上に複数のLinuxディストリビューションのISOイメージを、1つのファイルのようにデプロイする。ユーザはESPに書き込まれたブートローダー(GRUB2)から、起動したいOSを選択するだけでいい。OSのアップデートや削除、またはストレージを工場出荷状態に戻すことも容易だ。なお、ユーザが作成したデータやアプリケーション環境はすべてDataパーティション上にストアされる。
- Nitrux
- Nitrux/znx -GitHub
znxは、Linux 3.18からメインラインに実装されたファイルシステム「OverlayFS」をベースにしており、ISOファイルをアップデートする際には差分アップデートを可能にするZsyncを活用している。したがってUbuntuベース以外のLinuxディストリビューションでも、そのディストロのISOイメージがOverlayFSに最適化された状態であればデプロイが可能となる。
NitruxはUbuntuをベースにしているが、UbuntuやDebianで使われているパッケージマネージャ「dpkg」や「APT」ではなく、アプリケーションが本当の意味で"Write Once, Run Anywhere"を実現できるパッケージングを目指し、「AppImage」というフォーマットを開発している。znxもこのAppImageと同じコンセプトで開発されており、ユーザ側に負荷を強いることなく、簡単にOSを選択できるようにすることをゴールとしている。アプリケーションだけでなく、より低レイヤのインフラもまた、インストールからデプロイする時代へと大きくシフトしはじめているようだ。