Ubuntu Weekly Recipe

第113回Debian Liveのlive-helperを使ってUbuntu Liveを作成する

みなさま、はじめまして。のがたじゅんと申します。

先日、Ubuntu Japanese Teamのいくやさんに「Debian LiveでUbuntu Liveが作れるって知ってた?」と話をしたところ、急遽Ubuntu Weekly Recipeに執筆させていただくことになりました。よろしくお願いします。

Ubuntuのライブシステム作成といえばremastersysやreconstructor、UCKを使う方法がポピュラーですが、Debian Live Projectが開発するlive-helperでもUbuntuのライブシステムを作成できます。

そこで今回と次回の2回にわたり、live-helperを使ってUbuntuのライブシステムを作成する方法を解説します。

Debian Liveとは

作成方法の解説の前に、簡単にDebian Liveについて説明します。

Debian Liveとは、今回紹介するライブシステム構築フレームワークのlive-helperと、ライブ起動のための補助ソフトウェアlive-initramfsを使って作成されたDebianライブシステムです。Debian Projectのサブプロジェクト「Debian Live Project」が開発をしています。

live-helperはDebian Live(live-initramfs)の作成専用でしたが、2009年4月にCanonicalのCody A.W. SomervilleさんがUbuntuのライブCDに使われているCasperを使ったライブシステムの作成にも対応させ、以降live-helperでDebianとUbuntu、それぞれのライブシステムを作ることができるようになりました。

live-helperの特徴

live-helperには、柔軟なカスタマイズと自動化、プレーンな状態からのライブ環境作成といった特徴があります。

柔軟なカスタマイズの例として、独自のライブシステムを作成する動機にパッケージの追加があります。live-helperではパッケージの追加もAptでのインストール以外に、カーネルパッケージや独自に作成したパッケージの追加、Apt-lineを追加してのパッケージの追加ができます。

設定ではユーザーの環境設定はもちろん、ライブ環境作成時に内部で実行するフックスクリプトやパッチを使ったシステム設定の変更、preseedファイルによるdebconfの設定変更、その他、ブートローダーの選択と設定など、思いつくところ、ほぼすべての場面でカスタマイズができ、それらを自動的におこなうことができます。

プレーンな状態からのライブ環境作成については、他のライブシステム作成ツールの場合はリマスタリングや一時的にインストールした環境を使って構築をおこないますが、live-helperの場合はdebootstrapを使いライブシステム専用の環境をインストールして作成をします。業務でライブシステムを組み込んで利用する場合にはリマスター元の環境が気になりますが、live-helperを使うと安心です。

ライブCDを作る

それではコンソール(CUI)のみ起動する最小Ubuntu Live CDを作ってみましょう。

live-helperは、Ubuntuのリポジトリに用意されているのでAptを使ってインストールできます。

$ sudo apt-get install live-helper

live-helperについてですが、live-helperには現在Debian 5.0(Lenny)やUbuntu 9.10(Karmic Koala)に収録されている1.x系と、Debian 6.0(Squeeze)やUbuntu 10.04(Lucid Lynx)に収録される2.x系の2つのバージョンがあります。今回は9.10(Karmic)の1.x系を使って解説をしています。

live-helperはライブCDの作成途中、カレントディレクトリに作業ファイルを作成するので、ディレクトリを作成してその中で作成をします。

$ mkdir ubuntulive
$ cd ubuntulive

ライブCD作成の準備が整ったので作業に入ります。ライブCDの作成にはコマンドを使いますが、設定をおこなうためのlh_configコマンドと、構築をおこなうlh_buildコマンドのたった二つだけ(!)でライブCDが作成できます。

まずlh_configコマンドにオプションを指定してライブCDの設定をします。オプションは長いように見えますが実質は2つだけです。1つはUbuntuライブCD作成に必要なモード指定の「--mode ubuntu⁠⁠、もう1つ「--mirror-*」は、パッケージダウンロードのためのミラーサイトを指定しています。

$ lh_config \
        --mode ubuntu \
        --mirror-bootstrap "http://jp.archive.ubuntu.com/ubuntu/" \
        --mirror-chroot "http://jp.archive.ubuntu.com/ubuntu/" \
        --mirror-chroot-security "http://security.ubuntu.com/ubuntu" \
        --mirror-binary "http://jp.archive.ubuntu.com/ubuntu/" \
        --mirror-binary-security "http://security.ubuntu.com/ubuntu"

lh_configコマンドを実行するとconfigとscriptというディレクトリと.stageという隠しディレクトリが作成されます。

$ ls -a
.  ..  .stage  config  scripts

詳しくは次回に解説しますが、それぞれのディレクトリを説明すると、configディレクトリにはlh_configの設定とそれ以外に追加する各種設定ファイルを置かれます。scriptディレクトリは自動化のためのスクリプトを置かれます。隠しディレクトリの.stageディレクトリはlive-helperの実行状況をしめすロックファイルが置かれます。

続いてlh_buildコマンドでライブCDを構築します。構築には管理者権限が必要になるので、sudoをつけてlh_buildコマンドを実行します。

$ sudo lh_build

以上でライブCDの作成作業は終了です。

マシンの性能とネットワーク環境にもよりますが、15分から30分ほど経つとbinary.isoという名前でライブCDができあがります。

できあがったライブCDはメディアに書き込んで起動してもよいのですが、その前に仮想化ソフトウェアを使い起動確認をしてから本番メディアに書き込むと無駄が出なくてよいでしょう。仮想化ソフトウェアはVirtualBoxやVMware、Qemuなどあり、どれを使ってもかまいませんが、筆者はコマンドラインから手軽に実行できるKVMを利用して確認をしています。

KVMはハードウェアが対応していないと利用できませんが、その場合はQemuを使うと同様の事ができるのでkvmと書かれた部分をqemuに置き換えて読んでください。

KVMはAptでインストールできます。

$ sudo apt-get install kvm

KVMを使った起動確認は必要最低限のオプションをあたえるだけでいいので、-cdromオプションに作成したライブCDのファイル名「binary.iso」を指定し、-mオプションに仮想マシンに割り当てるメモリを指定し実行します。メモリの割り当てについては、例では512MBを指定しましたが、必要に応じて変更してください。

$ kvm -cdrom binary.iso -m 512

構築に失敗したときや作業ファイルを削除するには

上に書いた例で失敗することは、ほとんどないのですが、lh_configコマンドのオプションを間違えたり、構築途中パッケージのダウンロードに失敗して止まった場合などには、lh_cleanコマンドを使って作業ファイルを削除してから、もう一度lh_configの設定とlh_buildを実行してください。rmコマンドなどで作業ファイルを削除しないでください。

作業ファイルの削除には管理者権限が必要になるのでsudoをつけてlh_cleanコマンドを実行します。

$ sudo lh_clean

まとめ

live-helperを使って最小UbuntuライブCDを作成してみましたが、いかがでしたでしょうか。出来上がったライブCDを起動して「あれっ!?」と思った方もいるかもしれません。

それは作った人だけのお楽しみということで、次回はlive-helperのカスタマイズについて詳しく掘り下げたいと思います。

おすすめ記事

記事・ニュース一覧