平衡点


2012/12/11 [長年日記]

_ live-build による Live システムの作成

始めに

この記事は Debian/Ubuntu JP Advent Calendar 2012 : ATND の 12/11(月) の記事です. 昨日の分も私が書きましたが, 「.gem から .deb へ 〜 gem2deb の紹介」でした.

live-build は, Debian/Ubuntu のライブシステム(DVD, USB, PXEブートなどで動く, インストールせずに使う環境)を作るための bash スクリプト群です. version 1.x 系列では live-helper という名前でしたが, version 2.x になってから live-build と名前が変わっています.

live-build に関しては, のがたさん(@nogajun)による Debian Liveメモ とか, 同じくのがたさんの 第113回 Debian Liveのlive-helperを使ってUbuntu Liveを作成する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社 にかなりまとまっているので, 特に記事にすることも無いかと思っていましたが, 最近の live-build は version 3.x になっていて, パラメータやディレクトリ構成が大きく変わっています.

以下では, これをごく簡単に紹介します(きっとのがたさんが補完してくれる, はず).

live-build を導入する

先ずお手元に 作りたい CPU ターゲット の wheezy/sid 環境を用意して, live-build の最新版をインストールしましょう. モノは bash スクリプト群なので, 依存関係で困る事は(多分)無いと思います.

$ git clone git://live.debian.net/git/live-build.git
$ cd live-build
$ debuild -rfakeroot -uc -us
...
$ cd ..
$ sudo dpkg -i live-build_3.0*_all.deb

これで live-build が導入できたと思います.

live-build でライブイメージを作成する.

i386 環境で作業すると i386 のイメージが, amd64 環境で作業すると amd64 のイメージが作成されます. 環境が用意できない場合には KVM or QEMU で仮想環境を作ると良いと思います (ちなみに, 以前 VirtualBox 上で試したら, 途中で転びました. なんでかな?. KVM/QEMU では, 特に問題無くイメージが作成できました).

作業ディレクトリ(以下では ~/work としています)に移動して

$ lb config
$ sudo -s
# lb build

と唱えましょう. ちょっと時間がかかりますが, 最小限の live イメージが作成されます(イメージをライブ用に squashfs に圧縮するのにそれなりに時間がかかります).

カスタマイズ

$ man lb config

で沢山オプションが表示されます. これを参考に, いろいろ弄って行きます.

auto ディレクトリ

先ず, auto というディレクトリを作成し, その下に config という sh スクリプトを置き, 実行権限を与えます. このファイルが lb config の際に実行されます. config の中で常に有効にする設定をしておくと, いろいろ捗るでしょう.

同様に build とか clean などを置くと, lb build や, lb clean の際に, それらの sh スクリプトが実行されます.

config ディレクトリ

ライブシステムの設定は config ディレクトリで行ないます. 例えば

  • config/package-lists というディレクトリを作成し,
  • 拡張子 .chroot で適当なファイル名を作成し,
  • そのファイル内に, インストールしておきたいパッケージ名を書いておく

なんてすると, lb build 時に必要なパッケージを導入してくれたりします.

具体例

例えば

なんか如何でしょうか?

これに付け加えて,

  • lb config 実行時に,

    $ lb config \
      --bootappend-live \
        "boot=live config locales=ja_JP.UTF-8 keyboard-layouts=jp

とする(もしくは auto/config に書いておく).

  • config/package-lists/japanese-desktop.chroot なんてファイルを用意して 中身に

    task-japanese
    task-japanese-desktop

なんて書いておく

  • lb build でイメージ作成

なんてすると, 日本語 Gnome/Xfce 環境のライブシステムができます.

まとめ

live-build は開発が活発で, 結構頻繁に機能が追加/変更/削除されています (互換性は残して欲しい, とか思ったりもしたりして). 興味のある方は Debian Live Project の ML を眺めたり, ここで公開されている Debian Live Manual なんかを参照して下さい.

live-installer を有効にしてから バリバリに気合入れてカスタマイズしてライブを作成しておくと, 自分好みの素敵環境を一瞬で構築できるインストーラに早変りしたりします (複数台の計算機に install する際にかなり重宝しました).

そんなこんなで.

明日は...誰?