この記事を読むのに必要な時間:およそ 0.5 分
仮想化ソフトウェアやコンテナが普及したとはいえ,現在でも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を選択できるようにすることをゴールとしている。アプリケーションだけでなく,より低レイヤのインフラもまた,インストールからデプロイする時代へと大きくシフトしはじめているようだ。