3 CD/DVD/USB メモリDebian JP Debian Live るよnetboot

のがたじ

PIC
____________________________________________________________________

3.1 は じ め に

OS ドデスクインストせずメデから直接動して使ライブシステムられてしいですがDebian にも Debian Live というライブシステムがありますDebian Live live-helper 使Debian JP Debian Live 西 Debian DVD する分好みの Debian ライブシステムする方法コツ どをします

3.2 Debian Live Project とは

Debian Live Debian Live Project についてします

Debian Live Project ライブシステムのためのフレムワlive-helper live-initramfs など ライブシステムにまつわるリテ発するプロジクトDebian サブプロジクト です

存のライブシステムストリビとのいはライブシステムリリすることよりフレムワ としてのきをいているところでしうか

live-helper 使られた Debian ライブシステムDebian Live ばれLenny から同時リリされてい ます

3.3 Debian Live

Debian Live 存のライブシステムストリビするようにられており以下徴を います

Debian Live Debian のみでできるようにデザインされていますがApt リポジトリ してることも能です

キテキクチについては現在しているのは i386amd64powerpc だけですが的に Debian しているキテキクチにはする予定ですサポしているDebian だけでなくemdebian ubuntu にもしていますsid –mode ubuntu するとながらも ubuntu live ができ ます。 )

Debian Installer についてはnetinst businesscard インストDebian Live をそくり そのままインストする live サポされていますまたですがDebian Live から直接 Debian インス するためのインスト予定されています

3.4 live-helper について

live-helper とはDebian Live するためのイル名の頭にlh_とついたルスクリプトですというだけ スクリプト多数ありますがこのDebian Live 使するコマンドはた3 ためのlh_config」 、 のためのlh_build」 、 レクトリクリンナするlh_cleanだけ です

りのスクリプト3 つのスクリプトからじて適宜ばれるのでする必要はありま せん

3.5 Debian Live

それでは live-helper 使Debian Live についてします

3.5.1 live-helper インスト

live-helper すでに Debian リポジトリされているのでaptitude などを使インストします インストについてのですがlive-helper Suggests Recommends された使する 多いので無ければすべてインストしておいてください

live-helper インスト

 # aptitude --with-recommends install live-helper
3.5.2

Debian Live のためのレクトリしますここでは live-work 名づけてりました

レクトリ

 $ mkdir live-work

Debian Live イルイルすべてカレントデレクトリかれますよく使レクトリ Debian Live をおこなうとこれらのイルイル収集がつかなくなるのでには レクトリしまし

3.5.3 まず Debian Live てみる

には lh_config コマンド使いますレクトリりて lh_config します

$ cd debian-live/
$ lh_config

config scripts レクトリされたはずですレクトリ味についてはほどするのでまずは Debian Live してみましsudo lh_buildします(lh_config コマンド必要になるのでコマン sudo をつけてします)

$ sudo lh_build

マシントワにもよりますが 15 分〜30 分ほどで binary.isobinary.listbinary.package というイル できているはずです他には binarycachechroot というレクトリができています

できていなければsudo lh_clean途中レクトリしてからもうしてみてくだ さい

 $ ls -la
 drwxr-xr-x  6 jun  jun        296 2009-06-24 16:24 .
 drwxr-xr-x 10 jun  jun        320 2009-06-24 16:08 ..
 drwxr-xr-x  2 root root       640 2009-06-24 16:24 .stage
 drwxr-xr-x  6 root root       176 2009-06-24 16:24 binary
 -rw-r--r--  1 root root 132192256 2009-06-24 16:24 binary.iso
 -rw-r--r--  1 root root      2171 2009-06-24 16:24 binary.list
 -rw-r--r--  1 root root     11123 2009-06-24 16:23 binary.packages
 drwxr-xr-x  6 root root       184 2009-06-24 16:08 cache
 drwxr-xr-x 20 root root       600 2009-06-24 16:24 chroot
 drwxr-xr-x 22 jun  jun        936 2009-06-24 16:08 config
3.5.4 イメジフイル認する

生成されたイルbinary.iso というイルがありますこれが Debian Live CD イメジフ ですそれでは動テストをおこないますがCD-R などにんでのテストマシン動しなけ ればいけませんしライトワンスメデ使うのはにもくないのでマシン使認し ます

では qemu 使いましたがKVM VirtualBoxVMware Player などきなソフト使てかまいません qemu 使そのままのではいのであらかじめ速化ネルモジkqemu んでおいてくだ さい

kqemu

 # m-a a-i kqemu
 # modprobe kqemu

qemu Debian Live する

 $ qemu -cdrom binary.iso -boot d -m 256

qemu Debian Live 動したでしうかコンソ想像していたもの だいぶかけ離れたれたといます

これがDebian Live ですここから分なりのえて分オリジナルDebian Live ます

3.6 Debian Live

さてこれから的な Debian Live りますがDebian Live されるておくとより的確 することができるのでします

Debian Live には lh_build コマンド使いますがlh_build 4 つのコマンドしそれぞれのをおこない ますその 4 つのコマンド以下になります

  1. debootstrap によるスシステムインスト(lh_bootstrap)
  2. スシステムchroot して必要ソフトインストをおこなう (lh_chroot)
  3. されたシステムつのイルにまとめ動できるバイナリイメ(lh_binary)
  4. されたバイナリイメ必要ならばをまとめたイメ(lh_source)

このように bootstrap chroot binary source それぞれのステにおいてをすること ができます

イルconfig レクトリ以下にありますがcommonbootstrapchrootbinarysource 5 つのイル lh_config からするので直接しません

それレクトリではchroot ステしたものはchroot_」 、 binary ステしたものは binary_それぞれの表すプリフクスがついているのでにしながらじたをしていき ます

3.6.1

Debian Live lh_config コマンド使いますlh_config –help してみまし

$ lh_config --help

ものすごいてきましたがすべてをする必要はありませんをしなければ使われるので 必要のみしていきます

  $ lh_config \
        --binary-images iso \
        --distribution lenny \
        --language ja \
        --bootappend-live "quiet locale=ja_JP.UTF-8 keyb=jp kmodel=jp106" \
        --mirror-bootstrap "http://ftp.jp.debian.org/debian/" \
        --mirror-chroot "http://ftp.jp.debian.org/debian/" \
        --mirror-chroot-security "http://security.debian.org/" \
        --mirror-binary "http://ftp.jp.debian.org/debian/" \
        --mirror-binary-security "http://security.debian.org/"

からします

–binary-images 生成するバイナリイメしますiso にも usb-hdd などできます–distribution にはストリビlenny していますsqueeze 現在ネルパがあるのでれま せん–language 言語ですIceweasel OpenOffice.org のように言語があるときの判断利用され ま す

–bootappend-live Debian Live 動時トパラメしますここではネルする quietロケにしていますquiet Debian Live パラメですパラ live-initramfs /usr/share/doc/live-initramfs/parameters.txt してくだ さい

–mirror Apt しますミラそれぞれのステできますががない分けて する必要はないのでftp.jp.debian.org security.debian.org しています

と て も 長 か た で す が こ れ を す る の は で す し な い よ う に す る に は ど う し た ら い い の で し うか

lh_config した存する config レクトリのほかにscripts レクトリ生成されていた ことをえているでしうかその scripts レクトリのための config スクリプトとしてきま

scripts/config

 #!/bin/sh

 MIRROR_DEBIAN="http://ftp.jp.debian.org/debian/"
 MIRROR_SECURITY="http://security.debian.org/"

 BOOTOPTION_LIVE="quiet locale=ja_JP.UTF-8 keyb=jp kmodel=jp106"

 lh_config noautoconfig \
        --binary-images iso \
        --distribution lenny \
        --language ja \
        --bootappend-live "${BOOTOPTION_LIVE}" \
        --mirror-bootstrap ${MIRROR_DEBIAN} \
        --mirror-chroot ${MIRROR_DEBIAN} \
        --mirror-chroot-security ${MIRROR_SECURITY} \
        --mirror-binary ${MIRROR_DEBIAN} \
        --mirror-binary-security ${MIRROR_SECURITY}
        ${@}

この scripts/config スクリプトlh_config コマンドしたときscripts/config スクリプト存在すれば的に されされるみになています

これをわざわざのかかることをしているのはなぜ?もいるといますそれにはクリ らのビルドビルド動化つの由があります

クリからのビルドですがlive-helper 生成したイルわりませんがこの どうでし? オプシされたりしいオプシされるかもしれません イル使いつづけているとそれらにづかないままできないにも無用トラブルむかもしれま せん

それらをけるためにもconfig レクトリしてたに生成する必要があります

もうビルド動化ですがライブシステムでは同一うものがしいことがありますたとえ CD イメUSB メモリなどです

そのときオプシしてることは率がいのでするスクリプトしておきのみ 2 せばクリかつ必要イメすることができます

scripts/config スクリプト続いてlh_build コマンドからされる scripts/build スクリプトlh_clean コマンド される scripts/clean スクリプトておきまし

scripts/build スクリプトではビルドログ生成されるイメをわかりやすくするためイル名に めるようにしscripts/clean スクリプトconfig レクトリレクトリするようにしてい ます

scripts/build

 #!/bin/sh

 IMAGE_PREFIX=debian_live-binary
 BUILDDATE=‘date +%Y%m%d%H%M%S‘

 lh_build noautoconfig 2>&1 | tee ${IMAGE_PREFIX}-${BUILDDATE}.buildlog

 # rename files
 if [ -f binary.iso ]; then
    mv binary.iso ${IMAGE_PREFIX}-${BUILDDATE}.iso
 elif [ -f binary.img ]; then
    mv binary.img ${IMAGE_PREFIX}-${BUILDDATE}.img
 fi
 [ -f binary.list ] && mv binary.list ${IMAGE_PREFIX}-${BUILDDATE}.list
 [ -f binary.packages ] && mv binary.packages ${IMAGE_PREFIX}-${BUILDDATE}.packages

scripts/clean

 #!/bin/sh

 lh_clean noautoconfig --all ${@}

 # Remove generated files
 rm -f config/binary config/bootstrap config/chroot config/common config/source

 # Remove empty directories in config tree
 if ls config/*/ > /dev/null 2>&1
 then
rmdir --ignore-fail-on-non-empty config/*/
 fi

 if [ -d config ]
 then
rmdir --ignore-fail-on-non-empty config
 fi

これで lh_config するといつでも分のからすることができますsudo lh_build sudo lh_clean するとログをとりながらビルドしたりクリンナもできます

さて動化といえば Makeということで単ですが Makefile してみましたsudo lh_build なんて長くたなくて make するだけでビルドできますしほんのえるときも Makefile することができるので てもになりました

Makefile

 all: config build

 config: clean
        lh_config

 build:
        sudo lh_build

 clean:
        sudo lh_clean

 distclean: clean
        sudo lh_clean --purge
        sudo rm -f *.iso *.img *.list *.packages *.buildlog *.md5sum

もうつついでにgit live-helper レシピするととてもですがその以下のような.gitignore しておくとよいでし

 *.buildlog
 *.img
 *.iso
 *.list
 *.md5sum
 *.packages
 *~
 .*~
 .stage/
 binary/
 cache/
 chroot/
 config/binary
 config/bootstrap
 config/chroot
 config/common
 config/source

3.7 Debian Live カスタマイズ

ができあがたので的なカスタマイズについてべます

3.8

分好みの Debian Live にするためにめることはでしするにはいくつか 法はありますがします

3.8.1 する

APT リポジトリにあるするには–packages オプシ使います方法 スペべていきます

 lh_config --packages "PACKAGE PACKAGE2 "

するにはconfig/chroot_local-packages/レクトリdeb –packages オプシ 名をします

3.8.2 ジリストする

–packages オプシではまとまするにはいくつも名をべないといけないので不便 ですよく使われるデスクトなどのジリストデフルトされているので–packages-lists オプシ 使します

ジリスト/usr/share/live-helper/lists/をごください

 lh_config --packages-lists "gnome"

分でしたい名をべたジリストconfig/chroot_local-packageslists/レクトリ –packages-lists オプシすることもできます

FILEという名前ジリスト

 config/chroot_local-packageslists/FILE

 $ cat  config/chroot_local-packageslists/FILE
 lv manpages-ja nkf
 iceweasel-l10n-ja
 openoffice.org-help-ja openoffice.org-l10n-ja
 ttf-kochi-gothic ttf-kochi-mincho ttf-sazanami-gothic ttf-sazanami-mincho ttf-vlgothic
 uim uim-applet-gnome uim-prime uim-qt uim-qt3

–packages-lists オプシFILEします

 lh_config --packages-lists "FILE"

ジリスト

ジリストめる

 #include <gnome>
 iceweasel

キテクチ分岐する

 #if ARCHITECTURE amd64
 ia32-libs
 #endif

セクシ分岐する

 #if SECTIONS contrib non-free
 vrms
 #endif
3.8.3 APT リポジトリする

APT リポジトリするにはconfig/chroot_sources/レクトリApt-line いたイル名を する GPG イルきます

Apt-line いたイル名は chroot ステbinary ステすることができchroot ステ 張子.chroot」 、 binary ステでは張子.binaryにしますGPG イル張子.gpgにしておき ます

 restricted-debian_multimedia.chroot
 restricted-debian_multimedia.chroot.gpg
 restricted-debian_multimedia.binary
 restricted-debian_multimedia.binary.gpg

リングパする
GPG リングパとしてされている–keyring-packages オプシリングパ します

 lh_config --keyring-packages "debian-archive-keyring debian-multimedia-keyring"
3.8.4 イルする

ではなくイルそのものをするconfig/chroot_local-includes/レクトリイルきます イルとしてはレクトリ造がそのままコピされるので/usr/local/bin/hoge というイル config/chroot_local-includes/レクトリ立て usr/local/bin/レクトリその hoge きます

/usr/local/bin/hoge レクトリ

 $ ls chroot_local-includes/usr/local/bin/
 hoge
3.8.5 ネルパする

ネルパしてインストするには–linux-packages オプシ–linux-flavours オプシ ます

 lh_config --linux-packages "linux-image-2.6 aufs-modules-2.6 squashfs-modules-2.6" --linux-flavours "686"

カスタムカネルパする
カスタムカネルパするにはネルにもイルシステム透過的にねる aufs/unionfs Kernel 2.6.28 ネルsquashfs 使うなら squashfs などをする必要があ ります

  1. したconfig/chroot_local-packages/レクトリ
  2. –linux-packages オプシ”none”–linux-packages オプシしたそれぞれを –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"

3.9 カスタマイズ

したならしましにもさまざまなパタがあるので ます

3.9.1 ルスクリプトする

Debian Live のため使われる法はルスクリプトすることですインストから イルなどほぼなんでもうことができます

ルスクリプトするにはconfig/chroot_local-hooks/レクトリさせたいルスクリプト ます

スクリプト(Iceweasel する)

 #!/bin/bash
 set -e

 ICEWEASEL_PREFS=/etc/iceweasel/profile/prefs.js

 cat << _EOL_ >>${ICEWEASEL_PREFS}

 /* Debian Live tune */
 user_pref("browser.cache.disk.parent_directory","/tmp");
 user_pref("browser.cache.disk.capacity", 5000);
 user_pref("browser.startup.homepage", "http://www.debian.or.jp/");
 _EOL_
3.9.2 てる

にはルスクリプトして sed えてもいいですがてたほうがもあります てるには chroot から patch -p1 てられるようにチフイルconfig/chroot_local-patches/ レクトリきます

チフイル(/etc/dhcp3/dhclient.conf する)

 *** chroot/etc/dhcp3/dhclient.conf.orig 2009-04-12 23:03:36.000000000 +0900
 --- chroot/etc/dhcp3/dhclient.conf      2009-04-12 23:05:05.000000000 +0900
 ***************
 *** 23,30 ****
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes;
  #require subnet-mask, domain-name-servers;
 ! #timeout 60;
 ! #retry 60;
  #reboot 10;
  #select-timeout 5;
  #initial-interval 2;
 --- 23,30 ----
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes;
  #require subnet-mask, domain-name-servers;
 ! timeout 0;
 ! retry 0;
  #reboot 10;
  #select-timeout 5;
  #initial-interval 2;
3.9.3 debconf をする

/etc にあるなどはルスクリプトえることができますがdebconf db 納めれられているの 直接えることはできませんそのconfig/chroot_local-preseed/レクトリdebconf いて ますdebconf debconf-utils 納められている deboconf-get-selections 使 ます

FUSE(Filesystem in Userspace) 使うためにfuse グル録するには

  1. debconf して config/chroot_local-preseed/user-default-groups.preseed
     $ sudo debconf-get-selections | grep user-default-groups > config/chroot_local-preseed/user-default-groups.preseed
  2. fuse グル
     user-setup      passwd/user-default-groups      string  audio cdrom dialout floppy video plugdev netdev powerdev scanner fuse
3.9.4 トロについて

トロについては i386/amd64 では syslinux grub 選択できます

トロスプラするにはsyslinux config/binary_syslinux/レクトリgrub config/binary_grub/レクトリきます

grub についてですがusb-hdd では grub インストがまだサポされていないのでsyslinux しか使うことができ ません誰かいてみませんか

3.9.5 スプラスクリについて

ストリビ動時スプラスクリ表示していますがDebian Live でも能ですsplashy usplash インストして–bootappend-live オプシ”vga=788 splash”えてくださいvga 部分 フレムバなので適宜してください

3.9.6 されるイルレクトリについて

lh_config lh_build するイルレクトリ以下のようになります



2: Debian Live レクトリ


.stage/ フラグ納められる


config/ 納められる


scripts/ のための configbuildclean スクリプト


cache/ などをされる


chroot/ chroot イメレクトリ


binary/ binary イメレクトリ



3.10 その他、 したことなど

3.10.1 Debian Live 使ていて存するには

Debian Live 使ていて存しておきたいことがあります

その全体存するには live-rwムデレクトリのみを存するなら home-rw というラベル名でext2/3 したをあらかじめしておき動時トパラメpersistent をつけて動すると 的にそれぞれのマウントします

しないlive-snapshot コマンド使うと存できるようなのですが persistent をつけてもなぜかんでくれないので誰か live-snapshot 使ていたらえてくだ さい

3.10.2 live-helper Debian Live 連パ

Debian Live 連するについては以下のようになります

Debian

Debian Live Project のみで(Debian )

Debian Live 発はとてもいので味があるならDebian Live Project されているスナプシ git のものを使うとよいでしスナプシなどはDebian Live Project リンクペ *1 されています

live-helper Debian 存しないようにられていますDebian システムでも以下たしていれば live-helper 使Debian Live することができます

3.11 まとめ

Debian Live 使ていてのまとまがあまりないので張っいてみましたがいかがでしたでしうか? CD/DVD/USB メモリ動にきましたがトワしのlive-helper 造などまだまだ き き れ な い 部 分 て い る の で そ れ は ま た め て と い う こ と で の お 立 て れ ば さ い わ い です