Wednesday, February 20, 2013, 01:39 - OS / Linux
Posted by ELIN
要件は
・小さくする
・NILFS2を使えるようにする
・起動直後にrsync daemonが動くようにする

live-helperを使った1cd-Linuxの作成方法自体は日本語圏でもぐぐればそれなりに出てくるが、パッケージの追加方法は書かれていても除外方法が書かれていない(英語圏でも見当たらない、言う程調べてないが)
幸いlb(lh_config/lh_buildだのlhだの書いてあるが、今はlb)やその実体の中身は単なるシェルスクリプトで、実体は/usr/share/live/build/scripts/build/以下にある
順番に読んでいくとconfig/bootstrapのLB_BOOTSTRAP_EXCLUDEがそれだとわかり、最終的にdebootstrapの--excludeとして与えられる

試しに
debootstrap --print-debs squeeze .
で出力されるパッケージを全て突っ込んでみたが、最低必要とされるパッケージは無視されるようで、例えばbase-filesは確実に入る
またaptは除外できるが必須のようで、aptを含めない場合lb buildで失敗する
実際にやってみて余り変化はないようだが、aptを除く全て書いておくと若干小さくなる

逆にパッケージの追加は簡単で、config/chroot_local-packageslists/以下に.listなるファイルを作成し、必要なパッケージを記述すればいい
もしくはlb configの--packagesで与える
例えばNILFS2がほしいので
lb config --packages=nilfs2-tools
とする

起動直後にrsync daemonを動かすには
・/etc/rsyncd.confを作る
・/etc/default/rsyncのRSYNC_ENABLEを書き換える
上記2つの手順が必要になる

前者はconfig/chroot_local-includes/etc/以下にrsyncd.confを配置すれば自動的に含めてくれる
つまりconfig/chroot_local-includes/が1cdの/に対応している

後者も同じ方法でいけそうな気がするが、config/chroot_local-hooks/以下にスクリプトを書いておくとiso作成時に走らせることができるので、それで書き換えることにした
例えば
#!/bin/sh

sed -i 's/^\(RSYNC_ENABLE\)=.*/\1=true/' /etc/default/rsync

をconfig/chroot_local-hooks/rsyncd.shとしてchmod +xする
ちなみにこのスクリプトはchrootされてから走る

これでめでたく完成

実際に動かしたのはこちら

参考
http://yakushi.shinshu-u.ac.jp/robotics/?DebianLive%2FBuild-HOWTO-for-the-Impatient
http://www.sakopc.info/hiki/hiki.cgi?Devian+Live
add comment ( 13683 views )
Thursday, February 14, 2013, 11:24 - Misc
Posted by ELIN
VM ESXiを稼働させたのとTurnkey Linuxといういい感じのオモチャを見付けたので、それを使ってぶろぐの移行と、Simple PHP Blogの更新が止まってしまったようなので、色々と改造して(しすぎて互換性がなくなってしまったので)新規にぶろぐをつくったというわけです。
3 comments ( 8684 views )

<<First <Back | 1 | 2 | 3 | 4 |