前回、最小のUbuntuライブCDを作りましたが、最後に「出来上がったライブCDを起動して『あれっ!?』と思った方もいるかもしれません。」と書きました。おそらくこの画面を見て「あれっ!?」と思ったのではないかと思います。
Ubuntu LiveなのにDebianの画面ですね。live-helperを使ったUbuntu Live作成の2回目はlive-helperのカスタマイズについて解説します。
live-helperカスタマイズの基礎知識
カスタマイズの解説の前にlive-helperの基礎知識を説明してから、カスタマイズの解説に入ります。
live-helperの設定はlh_configコマンドにオプションを与えておこないます。オプションの一覧は--helpオプションで見られますが、非常に長いのでlvなどのページャを通して見るとよいでしょう。
lh_configは、初めて実行するとconfigディレクトリを作成して、その中に全体設定のcommonと、bootstrap、chroot、binary、sourceという設定ファイルを作ります。
ライブシステムを構築するlh_buildコマンドは内部で、ベースシステムのインストール(lh_bootstrap)→ベースシステムにchrootして必要なソフトのインストールと設定(lh_chroot)→作成したシステムを一つにまとめ起動可能なバイナリファイルの作成(lh_binary)→ソースアーカイブの作成(lh_source)の4つの段階を経てライブシステムを構築します。bootstrap、chroot、binary、source、4つの設定ファイルはそれぞれの段階に対応しています。設定ファイルはテキストで書かれていますが、lh_configコマンドで自動的に更新されるので、手動で編集してはいけません。
configディレクトリには設定ファイル以外に「chroot_」と「binary_」とプリフィクスのついたディレクトリがあります。ここにはlh_chrootとlh_binary実行時に使うファイルを置きます。
他にincludesとtemplatesというディレクトリがありますが、inculedeにはライブシステムのバイナリイメージに含めるドキュメントなどのファイルを置き、templatesにはブートローダーのテンプレートを置きます。includesとtemplatesディレクトリについては、システムが使用しているファイルが/usr/share/live-helper/ディレクトリにあるので参考にしてください。
ライブシステムをカスタマイズをする
それでは場面別にライブシステムカスタマイズの解説をします。
Ubuntuモードとリリースの設定
live-helperのモード初期設定はDebianなので、Ubuntuライブシステムを作成するにはubuntuと設定します。
作成するディストリビューションのリリースは、初期設定では使っているディストリビューションのリリースが使われます。他のリリースのライブシステムを作る場合は変更します。
ミラーサイトとパッケージセクションの設定
パッケージを取得するミラーサイトを指定します。初期設定ではarchive.ubuntu.comに設定されているので日本のサイトを指定します。bootstrap、chroot、binaryそれぞれの設定をします。
パッケージのセクションは初期設定では自由に再配布ができるmainとuniverseが設定されます。例ではrestrictedとmultiverseも指定していますが、作成したライブシステムの再配布を考えている場合は使用するパッケージの制限を確認しましょう。
パッケージのインストール
パッケージのインストールはlh_configの--packagesオプションを使います。パッケージが複数ある場合はパッケージ名をスペースで区切って列挙します。
インストールするパッケージが多い場合は、パッケージ名を列挙したファイルをconfig/chroot_local-packageslists/ディレクトリに置いておくと自動的にインストールされます。パッケージリストの書き方は、/usr/share/live-helper/listsにあるリストを参考にしてください。
--tasksオプションを使うとタスクを指定して一度にパッケージをインストールできます。タスク名も列挙できます。
タスク名はtaskselコマンドで調べられます。
次のようにタスクを指定するとUbuntuインストールCDと同じパッケージ構成のライブシステムが作成できます。
自作のdebパッケージをインストールするには
自作debパッケージをライブシステムにインストールするには、作成したdebパッケージをconfig/chroot_sources/ディレクトリに置き、lh_configの--packagesオプションにパッケージ名を指定します。
初期設定ではSecure Aptが有効になっているので、GPG署名をしていないdebパッケージはインストールできません。この場合、署名をしたパッケージに作り直すか、lh_configの--apt-secureオプションにdisableを指定してSecure Aptを無効にしてインストールします。
カーネルパッケージをインストールするには
カーネルパッケージのインストールは、--linux-packagesオプションにカーネル名、--linux-flavoursオプションに用途(フレーバー)を指定してインストールします。
PAEが有効なカーネル(linux-image-pae)をインストールするには次のようにします。
kernel-packageのmake-kpkgを利用して作成した自作カーネルパッケージもインストールできます。インストールをするにはカーネルのdebパッケージをconfig/chroot_sources/ディレクトリに置き、--linux-packagesと--linux-flavoursオプションにカーネル名とフレーバーを指定します。Secure Aptの制限は自作debパッケージのインストールと同じですので参考にしてください。
キーリングを指定する
GPG鍵がキーリングパッケージの形で配布されている場合は、使用するキーリングパッケージを指定できます。
Aptリポジトリの追加
Aptリポジトリを追加するには、Apt-lineを書いたファイルをconfig/chroot_sources/ディレクトリに置きます。
リストのファイル名には拡張子をつける必要があり、lh_chrootステージで使うリストには「.chroot」、lh_binaryステージで使うリストには「.binary」とつけます。
追加したAptリポジトリからのパッケージインストールにGPG鍵が必要な場合は、GPG公開鍵のファイルも一緒に置きます。GPG公開鍵のファイルにも拡張子をつける必要があり、lh_chrootステージで利用するなら「.chroot.gpg」、lh_binaryステージでは「.binary.gpg」とつけます。
Ubuntu Japanese Teamのリポジトリ追加を例に説明します。
これで--pacakgesオプションを使ってUbuntu Japanese Teamのパッケージがインストールできます。
ライブシステムにファイルを追加
ライブシステムの中にファイルを追加するには、config/chroot_local-includes/ディレクトリを/(ルート)にファイルを置きます。画像ファイルwallpaper.jpgを/usr/share/backgroundsに置きたい場合は次のようになります。
ブートローダーとスプラッシュ画面の変更
ブートローダーにSyslinuxかGrub(1)を選択できます。UbuntuのインストールCDで使われているGfxbootはまだ対応していません。
スプラッシュスクリーンはDebian用しか用意されていないので、差し替えるにはオプションでファイルを指定します。対応画像ファイルはSyslinuxは640x480ピクセル、256色、pngかjpeg形式、Grubは640x480ピクセル、14色、xpm.gz形式です。
LXDEを使った軽量デスクトップの作成
一通り設定を解説したところで、実際に使えるライブシステムを作成してみましょう。最近はLXDEを使った軽量デスクトップ環境が流行っているそうなので、LXDEを使った300MBほどのミニライブCDを作成します。もちろんハードディスクにインストールもできます。
ライブシステム作成を自動化する
lh_configの設定項目は多く、ビルドやクリーンアップのためにいちいちsudoをつけてコマンドを実行するのはとても面倒です。live-helperには自動化のための仕組みが用意されているので、作成の前にmakeと入力するだけでライブシステムの構築ができるようにしましょう。
自動化は、lh_config、lh_build、lh_cleanコマンド実行時、scriptsディレクトリにconfig、build、cleanという名前のスクリプトがあると、自動的に呼び出され実行されるようになっています。これを利用し定番の設定をおこなうようにします。そしてlh_config、lh_build、lh_cleanコマンドはMakefileから実行するようにしましょう。
scripts/config
scripts/configにはモードやミラーサイトの設定などの基本設定を書きます。
scripts/build
scripts/buildはビルドと同時にbinary.buildlogという名前で作業ログを記録するようにします。
scripts/clean
scripts/cleanはキャッシュファイルの削除と同時に不要な設定ファイルも削除するようにします。
Makefile
Makefileにはscriptsディレクトリのスクリプトを呼び出すためのlh_config、lh_build、lh_cleanコマンドを書きます。lh_configにはscript/configに書いた定番オプション以外に設定するオプションを設定します。
これでmake一発でライブシステムが作成できるようになりました。不要なファイルもmake cleanで削除できるので、設定を変更してのライブシステム作成も簡単になりました。
さて、本題のLXDEの軽量デスクトップの設定ですが、設定のオプションは省略していたものを改めて書いただけなので、前回の最小ライブCDとほとんど変わっていません。
変わっているところは、Makefileの1行目と9行目に日本語環境で起動するためのライブCDオプション設定の追加と、10行目の--packagesオプションにインストールするパッケージ、LXDE、日本語のLanguage PackとLanguage Support、スプラッシュ画面のusplash、ハードディスクのインストーラubiquityを設定しています。これだけでオリジナルのインストールCDができるのはすごいですね。
ただ、このライブCDには一つ欠点があって、デスクトップにある「RELEASEのインストール」アイコンをクリックしても起動できません。アイコンに実行属性がついていると、なぜか実行できないので「RELEASEのインストール」アイコンを選択してコンテキストメニューの「プロパティ」を開き、パーミッションタブにある所有者の実行チェックボックスを外してください。(図.2) これで「RELEASEのインストール」アイコンからUbiquityを起動してハードディスクにインストールができます。
USBメモリから起動するライブシステムを作るには
最近のライブシステムはCD/DVDからの起動より、USBメモリから起動して利用することが多いと思います。Ubuntuでは「USBスタートアップディスクの作成(usb-creator)」を利用してインストールCDからUSBメモリに転送できますが、live-helperで作成したUbuntuライブCD/DVDはオリジナルのインストールCDと仕様が若干異なるので利用することができません。それでは少し悲しいので、USBメモリから起動できるライブシステムの作成について解説します。
バイナリイメージをISOイメージで作成した場合、UNetBootinを使うとUSBメモリに転送できます。UNetBootinはAptでインストールできます。
USBメモリをセットしてUNetBootinを起動します。Diskimageに作成したライブISOイメージファイル(binary.iso)を指定して「OK」ボタンを押すとライブUSBメモリが作成されます。
あらかじめUSBメモリに書き込んで使うつもりなら、lh_configの作成バイナリイメージのファイルタイプをISOではなく、USB-HDDを指定してライブシステムを作成します。できあがったバイナリイメージはImage Writerを使いUSBメモリに書き込みます。
lh_configのバイナリイメージのファイルタイプ指定は次のようになります。
Image WriterもAptを使ってインストールできます。
バイナリイメージの書き込みは、USBメモリをセットしてImage Writerを起動します。「書き込むイメージ:」に作成したライブイメージファイル(binary.img)、「to」にUSBメモリを指定して「デバイスへ書き込む」ボタンを押すと、ライブUSBメモリが作成されます。
最後に
2回にわたりlive-helperを使ったUbuntu Liveの作成を解説しましたがいかがでしたでしょうか。
かけ足で解説したので説明の足りない部分も多いと思いますが、live-helperはgrmlやPureDyneといったディストリビューションの制作にも使われほど強力にカスタマイズができるので、リマスターに物足りない人はぜひ使って、世界に一つだけのディストリビューションを作ってください。