DebianLive/Build-HOWTO-for-the-Impatient-wheezy
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
//#nomenubar
松本成司 Seiji Matsumoto (matsu AT johnen.shinshu-u.ac.jp)
このページはDebianライブシステムの構築のメモです。
Debian GNU/Linux stable (wheezy)上での作業を前提としています。
lenny用やsqueeze用の古いメモは、[[DebianLive/Build-HOWTO-for-the-Impatient-lenny]]や[[DebianLive/Build-HOWTO-for-the-Impatient-squeeze]]をご覧ください。
詳しくは[[本家の説明:http://live.debian.net/]] や live-build の manpage などを参考にしてください。
感想やお気づきの点があれば松本まで連絡をいただけると幸いです。
目次
#contents
* 必要なツールのインストール [#z4a79440]
# apt-get install live-build live-boot live-config apt-cacher-ng
live-bootとlive-configはライブシステム用のpackageで、ホストシステム(ビルド作業用マシン)
には不要ですが、特に害もないのでインストールしておきます。
ライブ起動時のスクリプトがどうなっているのか調べるときに便利です。
また apt-cacher-ng はプロキシソフトで、複数回ビルドするときには(通常1回では済まない)あると便利です。イメージをテストしたり、CDやDVDにイメージを焼くためにはさらに、qemuなどもインストールしておきましょう。
# apt-get install qemu wodim
* lb config で設定 [#gf17bbbc]
まず作業ディレクトリを用意してそこに移動します。
以下の例では debian-live というディレクトリ名になっていますが、何でもかまいません。
700MBくらいのイメージを作成する場合には、最低でも 4GB くらいの空き容量が必要です。
(ハードディスクの代わりにramdiskを使えばかなり高速にビルドできます)
$ mkdir debian-live
$ cd debian-live
このディレクトリで必要な設定を行っていきます。
といっても実際には、
$ lb config && sudo lb build
でイメージができあがってしまいます。基本的には lb config で設定、 lb build でビルドするだけです(ビルドは管理者権限で)。ただ、デフォルトのままだと日本語パッケージが入りません。以下の例では、日本のミラーサイトを使い、日本語の標準的なデスクトップ環境に加え、nqc と g++ を追加してUSBメモリ用のイメージを作る例を示します。
lb config を実行する際には同時に複数のオプションを指定することができますが、以下では説明をわかりやすくするため一つの設定(一つのオプション)に対して lb config を一回ずつ走らせています。(ただし同じオプションを再度指定すると前の設定が上書きされるの注意)
まずプロキシの設定。プロキシを使わない場合は不要です。
$ lb config --apt-http-proxy "http://localhost:3142"
次にdebファイルをダウンロードするミラーサイトの設定。以下の ftp.jp.debian.org をお近くのミラーサイトに置き換えてください。指定しなければ、自動的に http://ftp.debian.org/debian/ になります。
$ lb config --parent-mirror-bootstrap "http://ftp.jp.debian.org/debian/"
$ lb config --parent-mirror-binary "http://ftp.jp.debian.org/debian/"
$ lb config --mirror-bootstrap "http://ftp.jp.debian.org/debian/"
$ lb config --mirror-binary "http://ftp.jp.debian.org/debian/"
$ lb config --mirror-chroot "http://ftp.jp.debian.org/debian/"
$ lb config --parent-archive-areas "main contrib non-free" \
$ lb config --archive-areas "main contrib non-free" \
ロケールやキーボードなどの設定はブート時のパラメータとして指定します。
$ lb config --bootappend-live \
"boot=live config persistence noeject live-config.utc=no
"live-config.locales=ja_JP.UTF-8 \
live-config.keyboard-model=jp106 \
live-config.keyboard-layouts=jp"
USBメモリなどにデータ(ライブイメージとの差分)を保存できるように persistence オプションもブートパラメータにいれておきます。ついで noeject というオプションを指定しておくと再起動時のメディアの取り外しの確認が省略されます。
バイナリの形式は、デフォルトではiso-hybridになっていますので、CD,DVDだけでなくUSBメモリ用のイメージとしても使用できます。もし何らかの理由で起動に失敗する場合には、次のようにしてバイナリ形式を指定します。CD/DVDに焼く場合は、
$ lb config --binary-images iso
一方、USBメモリの場合は、
$ lb config --binary-images hdd
(iso-hybrid で問題なければ、この設定は不要です)
さらにセクション (main,contrib,non-free) を指定します。
$ lb config --parent-archive-areas "main contrib non-free"
$ lb config --archive-areas "main contrib non-free"
ライブシステムに含めたいパッケージは、config/package-lists/ というディレクトリに .list.chroot という拡張子をつけたファイルに指定します。この時、言語環境も一緒に指定しておくと便利です。
たとえば、xfce-japanese.list.chroot というファイルに
task-japanese
task-japanese-desktop
task-xfce-desktop
nqc
g++
openssh-client
のように指定しておけばxfceを使った日本語デスクトップ環境が揃います。
kdeやgnomeの場合は、task-japanese-gnome-desktop や task-japanese-kde-desktop を指定すれば
よいでしょう。
パッケージリストはいくつあってかまいません。メンテしやすいように適当に分類しておきましょう。
つぎにパッケージリストを指定します。
とにかく .list.chroot という拡張子のついたファイルを作業ディレクトリの下にある config/packages-lists/ に保存しておけば自動的に読み込まれてインストールされます。
ちなみに上記の task-japanese-desktop を指定しない場合には、あらかじめ以下の例のような日本語関連で必要そうなパッケージのリストを japanese.list.chroot というファイル名でこのディレクトリに作成しておくと便利です (日本語化については http://wiki.debian.org/JapaneseEnvironment にまとまった情報があります)。
次にカスタマイズした設定ファイルや Debian のパッケージ管理ツールで管理されていないファイルを config/includes.chroot/ 以下にコピーします
(デフォルトの設定のままでよい場合にはこの作業は不要です)。
例えば、現在使っている /etc/bash.bashrc や /etc/skel/ 以下の初期設定ファイル、 /usr/local/bin/ 以下のファイルなどをビルドするイメージにも入れておきたい場合には、
$ mkdir -p config/includes.chroot/etc/
$ cp /etc/bash.bashrc config/includes.chroot/etc/
$ cp -a /etc/skel/ config/includes.chroot/etc/
$ mkdir -p config/includes.chroot/usr/local/
$ cp -a /usr/local/bin/ config/includes.chroot/usr/local/
のような感じでコピーします。
* lb build でビルド [#i11729a2]
次のコマンドを一発たたくと、それだけでディスクイメージをビルドしてくれます。
$ sudo lb build
これでDebian Liveのイメージ (binary.hybrid.iso)、あるいはCD/DVD専用イメージ (binary.iso) あるいは USBメモリのイメージ (binary.img) がカレントディレクトリにできるはずです。
//ちなみに、2008年9月に某ストアで12,800円で購入した激安サーバ (Celeron 430 - 1.8GHz, 512MB RAM, HD 80GB) を使ってここで紹介した設定例のままビルドした場合、deb ファイルのダウンロード時間を除いて20分程度かかりました((メモリを8GBに増設してRAMディスク上で作業すると12分程度に大幅に短縮されました。パッケージの展開やインストールは劇的に速くなりました。さらに CPUを Q8200に乗せ替えると squashfs を作成する時間が短縮され、6分半ほどでビルドが完了しました))。一方 X61 (T7500 - 2.2GHz, 4GB RAM) では、12分程度でした。
//出来上がったディスクイメージは約400MB、作業ディレクトリはこのイメージを含めて最終的に約2.4GBになりました。
設定を変更して再度ビルドする際には、ビルドの前に lb clean を実行してください。
ただし lb clean --all や lb clean --purge でも config/ 以下のローカルファイルは削除されないので、不必要になったローカルな(=自分でコピーした)ファイルなどは手で削除する必要があります。
# lb clean --all
# lb build
詳しくは man lb_clean を参照してください。
また --purge オプションをつけなければダウンロードした deb ファイルが cache/ に残っているので 2回目以降はダウンロード時間が短縮されるはずです。
* qemuでテスト [#q1c91f17]
$ qemu -cdrom binary.iso
または
$ qemu -hda binary.img
デフォルトでは qemu が使用するメモリは 128MB ですが、作業マシンに余裕があれば以下のように 512MBくらいは用意したほうが快適なエミュレーションができます。
$ qemu -m 512 -hda binary.img
* CD や USBメモリへの書き込み [#fafc9c28]
CDに書き込む場合は、例えば、
# wodim -eject binary.hybrid.iso
とします。一方USBメモリに書き込む場合は、マウントしていない状態で、例えば
# dd if=binary.hybrid.iso of=/dev/sdb
のように of= で書き込み先のUSBメモリのデバイス名を指定します (この例では /dev/sdb)。
このときUSBメモリ内のデータはすべて消去されてしまうので注意してください。
(dd で bs=4M などのオプションをつければコピーのスピードが速くなると思います)。
このイメージはパーティション情報まで含んだイメージなので、書き込み先が /dev/sdb1 ではなくて /dev/sdb になっていることに注意してください。
ddでイメージを書き込むと、USBメモリには新しいパーティションが一つ切られて (例えば /dev/sdb1)、残りは空き領域となっています。
ユーザのデータもこのUSBメモリに保存したい場合には、
この後に home 用のパーティションを追加します。
そのためには cfdisk などのツールを使ってその空き領域に Linux のパーティション (ext3 など) を追加し、そのボリューム名を persistence にします (別のUSBメモリなどのストレージでもボリューム名を persistence にしておけばOKです)。
# cfdisk /dev/sdb
# mkfs.ext3 /dev/sdb2 -L persistence
さらに persistence.conf というファイルをそのボリュームとトップに置きます。
中身は保存したいディレクトリを指定します。例えば
# mount /dev/sdb2 /mnt
# echo "/home" > /mnt/persistence.conf
# umount /mnt
これでライブUSBメモリのできあがりです。簡単!
ちなみに /home だけでなく、/ 以下の変更をすべて保存しておきたい場合には、persistence.confに
/ union
と書いておきます。
これでイメージとの差分が保存されるので、パッケージを追加したい場合や /usr/local/ をカスタマイズしたい場合には便利です。
* 参考リンク [#n52d67d1]
- http://live.debian.net/ (本家)
- http://wiki.debian.org/DebianLive (本家の古いwiki)
//- [[Debian Live 3分クッキング:http://cliplife.jp/clip/?content_id=d068osmn]]
- [[Debian Live 3分クッキング:http://cliplife.goo.ne.jp/play/clip/2hT8dT1Y0CXL]] (Debian開発者のやまねさんによるプレゼン --- とてもわかりやすいです)
- http://www.nofuture.tv/linux/debianlive (のがじゅんさん)
- http://www.sakopc.info/hiki/hiki.cgi?Devian+Live (ksakoさん)
- http://www.mathlibre.org/ (数学ソフト満載のライブシステム)
- http://www.gfd-dennou.org/arch/cc-env/live-usb-dvd/index.htm (数値計算実習用のライブシステム)
- http://tokyodebian.alioth.debian.org/pdf/debianmeetingresume200906-kansai.pdf (関西 Debian 勉強会 資料)
2008年10月24日からのこのページのだいたいの訪問者数:
本日&counter(today);
昨日&counter(yesterday);
合計&counter(all);
終了行:
//#nomenubar
松本成司 Seiji Matsumoto (matsu AT johnen.shinshu-u.ac.jp)
このページはDebianライブシステムの構築のメモです。
Debian GNU/Linux stable (wheezy)上での作業を前提としています。
lenny用やsqueeze用の古いメモは、[[DebianLive/Build-HOWTO-for-the-Impatient-lenny]]や[[DebianLive/Build-HOWTO-for-the-Impatient-squeeze]]をご覧ください。
詳しくは[[本家の説明:http://live.debian.net/]] や live-build の manpage などを参考にしてください。
感想やお気づきの点があれば松本まで連絡をいただけると幸いです。
目次
#contents
* 必要なツールのインストール [#z4a79440]
# apt-get install live-build live-boot live-config apt-cacher-ng
live-bootとlive-configはライブシステム用のpackageで、ホストシステム(ビルド作業用マシン)
には不要ですが、特に害もないのでインストールしておきます。
ライブ起動時のスクリプトがどうなっているのか調べるときに便利です。
また apt-cacher-ng はプロキシソフトで、複数回ビルドするときには(通常1回では済まない)あると便利です。イメージをテストしたり、CDやDVDにイメージを焼くためにはさらに、qemuなどもインストールしておきましょう。
# apt-get install qemu wodim
* lb config で設定 [#gf17bbbc]
まず作業ディレクトリを用意してそこに移動します。
以下の例では debian-live というディレクトリ名になっていますが、何でもかまいません。
700MBくらいのイメージを作成する場合には、最低でも 4GB くらいの空き容量が必要です。
(ハードディスクの代わりにramdiskを使えばかなり高速にビルドできます)
$ mkdir debian-live
$ cd debian-live
このディレクトリで必要な設定を行っていきます。
といっても実際には、
$ lb config && sudo lb build
でイメージができあがってしまいます。基本的には lb config で設定、 lb build でビルドするだけです(ビルドは管理者権限で)。ただ、デフォルトのままだと日本語パッケージが入りません。以下の例では、日本のミラーサイトを使い、日本語の標準的なデスクトップ環境に加え、nqc と g++ を追加してUSBメモリ用のイメージを作る例を示します。
lb config を実行する際には同時に複数のオプションを指定することができますが、以下では説明をわかりやすくするため一つの設定(一つのオプション)に対して lb config を一回ずつ走らせています。(ただし同じオプションを再度指定すると前の設定が上書きされるの注意)
まずプロキシの設定。プロキシを使わない場合は不要です。
$ lb config --apt-http-proxy "http://localhost:3142"
次にdebファイルをダウンロードするミラーサイトの設定。以下の ftp.jp.debian.org をお近くのミラーサイトに置き換えてください。指定しなければ、自動的に http://ftp.debian.org/debian/ になります。
$ lb config --parent-mirror-bootstrap "http://ftp.jp.debian.org/debian/"
$ lb config --parent-mirror-binary "http://ftp.jp.debian.org/debian/"
$ lb config --mirror-bootstrap "http://ftp.jp.debian.org/debian/"
$ lb config --mirror-binary "http://ftp.jp.debian.org/debian/"
$ lb config --mirror-chroot "http://ftp.jp.debian.org/debian/"
$ lb config --parent-archive-areas "main contrib non-free" \
$ lb config --archive-areas "main contrib non-free" \
ロケールやキーボードなどの設定はブート時のパラメータとして指定します。
$ lb config --bootappend-live \
"boot=live config persistence noeject live-config.utc=no
"live-config.locales=ja_JP.UTF-8 \
live-config.keyboard-model=jp106 \
live-config.keyboard-layouts=jp"
USBメモリなどにデータ(ライブイメージとの差分)を保存できるように persistence オプションもブートパラメータにいれておきます。ついで noeject というオプションを指定しておくと再起動時のメディアの取り外しの確認が省略されます。
バイナリの形式は、デフォルトではiso-hybridになっていますので、CD,DVDだけでなくUSBメモリ用のイメージとしても使用できます。もし何らかの理由で起動に失敗する場合には、次のようにしてバイナリ形式を指定します。CD/DVDに焼く場合は、
$ lb config --binary-images iso
一方、USBメモリの場合は、
$ lb config --binary-images hdd
(iso-hybrid で問題なければ、この設定は不要です)
さらにセクション (main,contrib,non-free) を指定します。
$ lb config --parent-archive-areas "main contrib non-free"
$ lb config --archive-areas "main contrib non-free"
ライブシステムに含めたいパッケージは、config/package-lists/ というディレクトリに .list.chroot という拡張子をつけたファイルに指定します。この時、言語環境も一緒に指定しておくと便利です。
たとえば、xfce-japanese.list.chroot というファイルに
task-japanese
task-japanese-desktop
task-xfce-desktop
nqc
g++
openssh-client
のように指定しておけばxfceを使った日本語デスクトップ環境が揃います。
kdeやgnomeの場合は、task-japanese-gnome-desktop や task-japanese-kde-desktop を指定すれば
よいでしょう。
パッケージリストはいくつあってかまいません。メンテしやすいように適当に分類しておきましょう。
つぎにパッケージリストを指定します。
とにかく .list.chroot という拡張子のついたファイルを作業ディレクトリの下にある config/packages-lists/ に保存しておけば自動的に読み込まれてインストールされます。
ちなみに上記の task-japanese-desktop を指定しない場合には、あらかじめ以下の例のような日本語関連で必要そうなパッケージのリストを japanese.list.chroot というファイル名でこのディレクトリに作成しておくと便利です (日本語化については http://wiki.debian.org/JapaneseEnvironment にまとまった情報があります)。
次にカスタマイズした設定ファイルや Debian のパッケージ管理ツールで管理されていないファイルを config/includes.chroot/ 以下にコピーします
(デフォルトの設定のままでよい場合にはこの作業は不要です)。
例えば、現在使っている /etc/bash.bashrc や /etc/skel/ 以下の初期設定ファイル、 /usr/local/bin/ 以下のファイルなどをビルドするイメージにも入れておきたい場合には、
$ mkdir -p config/includes.chroot/etc/
$ cp /etc/bash.bashrc config/includes.chroot/etc/
$ cp -a /etc/skel/ config/includes.chroot/etc/
$ mkdir -p config/includes.chroot/usr/local/
$ cp -a /usr/local/bin/ config/includes.chroot/usr/local/
のような感じでコピーします。
* lb build でビルド [#i11729a2]
次のコマンドを一発たたくと、それだけでディスクイメージをビルドしてくれます。
$ sudo lb build
これでDebian Liveのイメージ (binary.hybrid.iso)、あるいはCD/DVD専用イメージ (binary.iso) あるいは USBメモリのイメージ (binary.img) がカレントディレクトリにできるはずです。
//ちなみに、2008年9月に某ストアで12,800円で購入した激安サーバ (Celeron 430 - 1.8GHz, 512MB RAM, HD 80GB) を使ってここで紹介した設定例のままビルドした場合、deb ファイルのダウンロード時間を除いて20分程度かかりました((メモリを8GBに増設してRAMディスク上で作業すると12分程度に大幅に短縮されました。パッケージの展開やインストールは劇的に速くなりました。さらに CPUを Q8200に乗せ替えると squashfs を作成する時間が短縮され、6分半ほどでビルドが完了しました))。一方 X61 (T7500 - 2.2GHz, 4GB RAM) では、12分程度でした。
//出来上がったディスクイメージは約400MB、作業ディレクトリはこのイメージを含めて最終的に約2.4GBになりました。
設定を変更して再度ビルドする際には、ビルドの前に lb clean を実行してください。
ただし lb clean --all や lb clean --purge でも config/ 以下のローカルファイルは削除されないので、不必要になったローカルな(=自分でコピーした)ファイルなどは手で削除する必要があります。
# lb clean --all
# lb build
詳しくは man lb_clean を参照してください。
また --purge オプションをつけなければダウンロードした deb ファイルが cache/ に残っているので 2回目以降はダウンロード時間が短縮されるはずです。
* qemuでテスト [#q1c91f17]
$ qemu -cdrom binary.iso
または
$ qemu -hda binary.img
デフォルトでは qemu が使用するメモリは 128MB ですが、作業マシンに余裕があれば以下のように 512MBくらいは用意したほうが快適なエミュレーションができます。
$ qemu -m 512 -hda binary.img
* CD や USBメモリへの書き込み [#fafc9c28]
CDに書き込む場合は、例えば、
# wodim -eject binary.hybrid.iso
とします。一方USBメモリに書き込む場合は、マウントしていない状態で、例えば
# dd if=binary.hybrid.iso of=/dev/sdb
のように of= で書き込み先のUSBメモリのデバイス名を指定します (この例では /dev/sdb)。
このときUSBメモリ内のデータはすべて消去されてしまうので注意してください。
(dd で bs=4M などのオプションをつければコピーのスピードが速くなると思います)。
このイメージはパーティション情報まで含んだイメージなので、書き込み先が /dev/sdb1 ではなくて /dev/sdb になっていることに注意してください。
ddでイメージを書き込むと、USBメモリには新しいパーティションが一つ切られて (例えば /dev/sdb1)、残りは空き領域となっています。
ユーザのデータもこのUSBメモリに保存したい場合には、
この後に home 用のパーティションを追加します。
そのためには cfdisk などのツールを使ってその空き領域に Linux のパーティション (ext3 など) を追加し、そのボリューム名を persistence にします (別のUSBメモリなどのストレージでもボリューム名を persistence にしておけばOKです)。
# cfdisk /dev/sdb
# mkfs.ext3 /dev/sdb2 -L persistence
さらに persistence.conf というファイルをそのボリュームとトップに置きます。
中身は保存したいディレクトリを指定します。例えば
# mount /dev/sdb2 /mnt
# echo "/home" > /mnt/persistence.conf
# umount /mnt
これでライブUSBメモリのできあがりです。簡単!
ちなみに /home だけでなく、/ 以下の変更をすべて保存しておきたい場合には、persistence.confに
/ union
と書いておきます。
これでイメージとの差分が保存されるので、パッケージを追加したい場合や /usr/local/ をカスタマイズしたい場合には便利です。
* 参考リンク [#n52d67d1]
- http://live.debian.net/ (本家)
- http://wiki.debian.org/DebianLive (本家の古いwiki)
//- [[Debian Live 3分クッキング:http://cliplife.jp/clip/?content_id=d068osmn]]
- [[Debian Live 3分クッキング:http://cliplife.goo.ne.jp/play/clip/2hT8dT1Y0CXL]] (Debian開発者のやまねさんによるプレゼン --- とてもわかりやすいです)
- http://www.nofuture.tv/linux/debianlive (のがじゅんさん)
- http://www.sakopc.info/hiki/hiki.cgi?Devian+Live (ksakoさん)
- http://www.mathlibre.org/ (数学ソフト満載のライブシステム)
- http://www.gfd-dennou.org/arch/cc-env/live-usb-dvd/index.htm (数値計算実習用のライブシステム)
- http://tokyodebian.alioth.debian.org/pdf/debianmeetingresume200906-kansai.pdf (関西 Debian 勉強会 資料)
2008年10月24日からのこのページのだいたいの訪問者数:
本日&counter(today);
昨日&counter(yesterday);
合計&counter(all);
ページ名: