Debian Liveメモ

Debian Liveメモ
このページは、以前設置していたWikiにあったページを移植しました。変わっている情報については書き直すつもりですが、現時点では古い情報の記録としてお読みください。
ページ内でlh_config
やlh_build
と書かれている部分は古い表記です。lb config
やlb build
のように読み替えてください。
Debian Liveとは
ライブシステム作成フレームワークlive-build
を用いて作成された、ハードディスクにインストールせずにライブ起動するDebianです。
ライブシステムの起動はCDやDVDだけではなく、USBメモリやネットワークブートで起動することも可能です。
live-buildなどのツールはDebianの公式サブプロジェクトのDebian Live Projectが制作しています。 詳しい情報については、マニュアルを見るかDebian Wikiからたどると良いでしょう。
- Wiki: DebianLive - Debian Wiki: https://wiki.debian.org/DebianLive
- 公式イメージ: Debian -- Live install images: https://www.debian.org/CD/live/index.en.html
- 公式ページ: Debian -- Debian Live: https://www.debian.org/devel/debian-live/index.en.html
- マニュアル: 英語版 / 日本語版
このページでは、Debian Liveについての記録を残しています。
ツールの説明(解説が古いので要注意)
- live-build
- live-build(とlive-boot/live-config)を使うと、Debianを使ったLive CD(DVD/USBメモリ/ネットワークイメージ)を作成できます。
- live-boot/live-config
- live-buildを使って作成されたライブイメージに組み込まれるライブ起動を補助する起動スクリプトです。live-initramfsは、live-helper 2.xから完全に書き直されてlive-bootとlive-configに分けられました。
live-installer/live-install-launcher現在はディストリビューションに依存しないインストーラーCalamaresインストーラーが使われていますlive-installerはDebian Installer(d-i)を使ってDebian Liveの内容をインストールするd-iのモジュールです。live-install-launcherはd-iをライブ上から起動するユーティリティです。どちらも制作途中です。
ライブイメージなど
置いていません。
オープンソースカンファレンスなどで配布したDebian Liveのイメージを置いてます。
それぞれのイメージの説明については関西Debian勉強会Wikiを参照してください。
CD/DVDのイメージからUSBメモリの作成にはUNetBootinを使うと良いでしょう。
live-helperのレシピはgithubに置いてます。
詳しい作り方を知りたい人向けの資料はこちら
関西Debian勉強会で発表した文書が、関西Debian勉強会Wikiに置いているので、こちらをご覧ください。
FAQ
- Q: 日本語が使える公式ライブイメージはありますか?
- A:
公式には配布してません。自分で作成するかDebian勉強会で配布したライブイメージをご利用ください。公式ライブイメージでも一応日本語は使えます。しかし、調整されていないので調整されたものを使いたい場合は自分で作成する必要があります。
Debian Live 2.0/3.0の変更点
live-helperとlive-initramfsががらっと変わってきているのでメモ。live-helperのtodoはこのへん。
live-helperlive-build
- 作成コマンドが
lh_hoge
という形式からlh hoge
というアンダーバーを含まない形式に変更
1.xのときはlh_hoge
という形で直接スクリプトを呼び出して使っていたのが、コマンド本体は/usr/share/live-helper/helpers/
に移動し、lh
コマンドからスクリプトを呼び出す形に変わりました。
live-helper
からlive-build
に名前が変わりました
これによってlh
コマンドがlb
コマンドに変わりました。
- オプションの有効/無効の指定が
enabled
/disabled
からtrue
/false
に変更
オプションの指定が変わりましたが、エラーが出ないので気をつけましょう。
- 自動化スクリプトの置き場が
script
ディレクトリからauto
ディレクトリに移動
基本設定やクリーンアップスクリプトを置いていたscript
スクリプトディレクトリがauto
ディレクトリに変更されました。
auto
スクリプトからの呼び出しオプションがnoautoconfig
からnoauto
に変更
ループに入るので気がつくと思いますが、auto
ディレクトリのスクリプトからlive-helper
を呼び出す際につけるオプションがnoautoconfig
からnoauto
に変わりました。
- パッケージのセクションを指定する
--categories
オプションが--archive-areas
に変更
mainやcontribなどのパッケージセクションを指定する--categories
オプションが--archive-areas
に変わりました。
- パッケージリストの指定方法の変更
1.x系ではconfig/chroot_local-packageslists/
にパッケージリストを置いて、--packages-lists
オプションで置いたリストの名前を指定する方式でしたが、config/chroot_local-packageslists/
にhoge.list
という名前で置くだけで適用されるようになりました。
--syslinux-menu
オプションが増えた
menuとvesamenuの他にgfxbootもありますが中身が空っぽなのでこれから実装予定。
- live-initramfsパッケージがlive-bootとlive-configのパッケージに分かれました
initramfs内でliveシステムのブートやパッケージの設定をするスクリプト集のlive-initramfsが、ブート時のスクリプトlive-bootとそれ以外のシステム設定のlive-configの二つに分かれました。これにより以前の起動オプションは「boot=live」のみでしたが、「boot=live live-config」の二つが必要になり、このあとに必要なオプションを付け加えることになります。live-bootは従来のSystemV(init)だけでなく、systemdやupstart対応版もあります。
live-installerとlive-installer-launcher
現在はCalamaresインストーラーが使われています
live-installerはDebian Liveの内容をそのままDebian Installerからハードディスクにインストールします。 インストール作業としては、ハードディスクのパーティションを切って、rootのパスワードとユーザー名とパスワードを指定するだけなので、とても楽にDebianのインストールができます。
live-installer-launcherは、Debian Live上かDebian Installerを起動するもので、現在は動くだけの状態で、まともに使えませんが、使えるようになればubuntuやfedoraのようにLive上から手軽にインストールできるようになると思います。
Web上からDebian Liveが作成できます
なくなりました。
http://live-helper.debian.net/ にアクセスして、liveの設定して、作成されたイメージ通知用のメールアドレスを入力すると、Web上からDebian Liveを作成できます。
ただ、2010年7月現在、live-helper 2.xが激変してる最中なので、きちんと作成するにはlive-helperで作成するときと同じ知識が必要になるのが欠点でしょうか。安定すれば変わると思うので、普通の人はしばらくの辛抱です。
Tips
apt-cacher-ngなどのキャッシュプロキシを利用する
apt-cacher-ngなどのパッケージキャッシュプロキシを利用している場合は、プロキシの設定をするとパッケージ取得が短縮されます。
lb config --apt-http-proxy http://localhost:3142/ --apt-ftp-proxy http://localhost:3142/
aptitudeのタスクを利用して日本語環境をインストールする
Debian Liveに日本語環境をインストールするとき、わざわざ日本語のパッケージリストを作っていましたが、aptitudeのタスクを利用すればリストを作る必要はありません。
lb config --tasksel aptitude --tasks "japanese japanese-desktop"
このようにすると日本語環境もインストールできます。
指定できるタスクの一覧はtasksel-dataパッケージに入っているdebian-tasks.desc(/usr/share/tasksel/debian-tasks.desc
)に書かれています。
ネットワーク越しに起動するDebian Liveをつくる
PXEブートでネットワーク越しに起動するDebian Liveを作ります。
Debian Liveのイメージを置くサーバーの設定は、ネットワーク越しにDebianインストーラを起動する設定とほぼ同じなので参考にしてください。
- 4.5. TFTP ネットブート用ファイルの準備: https://www.debian.org/releases/stable/amd64/ch04s05.ja.html
Debian Liveの作成
基本的には通常のDebian Live作成と変わりませんがバイナリイメージタイプにnet
、イメージを置く母艦サーバーのアドレス--net-root-server
とパス--net-root-path
を指定して作成します。
lb config -b net --net-root-server "192.168.0.3" --net-root-path "/srv/debian-live"
ビルドするとbinary-net.tar.gz
というアーカイブファイルができます。
サーバーの設定
母艦となるサーバーの設定です。起動させるにはdhcpとtftp、nfsが必要になります。
インストール
sudo aptitude install dhcp3-server tftpd-hpa nfs-kernel-server
dhcpサーバーの設定
/etc/dhcp/dhcpd.conf
にdhcpの範囲などを書く
# option definitions common to all supported networks...
option domain-name "nofuture.tv"; ← ドメイン名を書く
option domain-name-servers 192.168.0.1, 192.168.0.100; ← ネームサーバーを書く
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.51 192.168.0.61 ; ← レンジは192.168.0.51から192.168.0.61
option routers 192.168.0.100; ← ゲートウェイを書く
}
host tftpclient {
hardware ethernet 00:0f:1f:13:e0:1f; ← ブートさせたいマシンのMACアドレスを書く
filename "pxelinux.0"; ← Debian Installerのファイル名
}
/etc/default/isc-dhcp-server
にdhcpサーバーに使うインターフェース名を書く。
INTERFACES="eth0" ←インターフェース名を書く
再起動する
service isc-dhcp-server restart
tftpの設定
/etc/default/tftpd-hpa
の設定を変更します。
TFTP_DIRECTORY="/srv/tftpboot" ← デフォルトでは"/srv/tftp"になっているのを変更
作成したDebian Liveのイメージbinary-net.tar.gz
を/srv
以下に展開します。
cd /srv/
sudo tar xvfj binary-net.tar.gz
tftpdを再起動します
sudo service tftp-hpa restart
nfsの設定
NFSはPXEブートでカーネル起動後に、Debian Liveイメージ本体をマウントするために必要になります。
/etc/exports
に以下の設定を書きます。
/srv/debian-live *(ro,async,no_root_squash,no_subtree_check)
設定を反映させます。
sudo exportfs -rv
クライアントマシンの設定
BIOSの設定をネットワークブートするように変更します。
トラブルシューティング
- PXEブートしたときdhcpでアドレスが取れているか確認
dhcpd.conf
にPXEブートさせたいファイル名はtftpのルートから書く- ×:
filename "/srv/tftp/pxelinux.0"
- ○:
filename "pxelinux.0"
- ×:
/etc/default/isc-dhcp-server
はデフォルトでは空になっているので、きちんとインターフェース名を書く- カーネル起動後に起動しないときは、NFSの設定を見直す
live-helperを使ってubuntu liveを作る(2009/09/03)
(2010/07/19追記) live-helperを使ったubuntuのライブシステム作成は、のがたがgihyo.jpで書いた記事が参考になると思います。
- Ubuntu Weekly Recipe:第113回 Debian Liveのlive-helperを使ってUbuntu Liveを作成する|gihyo.jp … 技術評論社
- Ubuntu Weekly Recipe:第114回 Debian Liveのlive-helperを使ってUbuntu Liveを作成する (2)|gihyo.jp … 技術評論社
しばらく前から、ubuntuの人がDebian Live MLにパッチを投げてて、作れるようになってたのでメモ。
作業用ディレクトリを作る
live-helperは設定ファイルやディレクトリをカレントディレクトリに作ってくれるので、専用の作業ディレクトリを作って、そこで作業をするのがよいかと思います。
mkdir ubuntu-live
cd ubuntu-live/
live-helperのlh_configコマンドで設定する。
ここがキモですね。lh_config
コマンドはライブシステムの設定をおこなうコマンドですが、--mode
オプションにubuntuと指定することでubuntu liveが作成されます。
lh_config \
--mode ubuntu \
--binary-images iso \
--bootappend-live "quiet splash tz=Asia/Tokyo utc=no -- debian-installer/language=ja console-setup/layoutcode?=jp console-setup/modelcode?=jp106" \
--bootloader grub \
--language ja \
--mirror-binary "http://ubuntutym.u-toyama.ac.jp/ubuntu/" \
--mirror-binary-security "http://security.ubuntu.com/ubuntu/" \
--mirror-bootstrap "http://ubuntutym.u-toyama.ac.jp/ubuntu/" \
--mirror-chroot "http://ubuntutym.u-toyama.ac.jp/ubuntu/" \
--mirror-chroot-security "http://security.ubuntu.com/ubuntu/" \
--packages "ubuntu-desktop ubuntu-minimal ubuntu-standard language-pack-ja language-support-ja language-pack-gnome-ja ubiquity"
ライブシステムを作成する
lh_buildコマンドを実行すれば作成作業が始まります。マシンの早さや作成するライブシステムの規模にもよりますが、30分から1時間程度かかります。
sudo lh_build
完成
lh_buildを実行したディレクトリにbinary.isoという名前のファイルがライブシステムのイメージです。
カスタムカーネル入りDebian Liveを作る簡単な方法(2008/10/16)
以前、推測していたことは正しかったらしく、確認してみるとカスタムカーネル入りDebian Liveを作成することができました。
- linux-image-2.6.26.6-rt11_20081016.1_i386.deb
- aufs-modules-2.6.26.6-rt11_0+20080719-4+20081016.1_i386.deb
- squashfs-modules-2.6.26.6-rt11_3.3-7+20081016.1_i386.deb
を使う場合、まず、config/chroot_local-packages/
ディレクトリにカスタムカーネルのパッケージとaufsとsquashfsのモジュールパッケージを置きます。
次に設定を変更します。
LH_LINUX_PACKAGES
にnone
、LH_PACKAGES
はインストールするパッケージ名、rtパッチを当てたカーネルなどを使う場合は、カーネル名以下にrt11のようにsuffixがついているので、LH_LINUX_FLAVOURS
に指定しておきます。
lh_config --linux-packages "none" --linux-packages "linux-image-2.6.26.6-rt11 aufs-modules-2.6.26.6-rt11 squashfs-modules-2.6.26.6-rt11" --linux-flavours "rt11"
もしくはconfig/chroot
の以下の箇所を変更します。
# $LH_LINUX_FLAVOURS: set kernel flavour to use
# (Default: autodetected)
LH_LINUX_FLAVOURS="rt11"
# $LH_LINUX_PACKAGES: set kernel packages to use
# (Default: autodetected)
LH_LINUX_PACKAGES="none"
# $LH_PACKAGES: set packages to install
# (Default: empty)
LH_PACKAGES="linux-image-2.6.26.6-rt11 aufs-modules-2.6.26.6-rt11 squashfs-modules-2.6.26.6-rt11"
これでlh_build
すればカスタムカーネルが使われます。