preseed.cfg ファイルを initrd.gz に注入する。
前回まとめたとおり、initrd.gz で起動イメージに preseed を封入してしまえば、とてもインストールは簡単になりました。
この記事ではinitrd + preseed を試した時にやり方をメモメモ。
initrd.gz の取得と展開。
initrd.gz は適当な所から取得しているとします。
わたしは、PXEブート環境を作っているので、 initrd だけ入れ替えることが出来て便利でした。
cd/dvd イメージだと
- DVD イメージをマウント
- initrd を取り出し
- initrd を展開書換
- initrd を再構成
- DVD イメージを再構成
となって、DVDイメージを再構成するため、 file に置いたほうがいいじゃんってなる。
initrdの取得と展開
作業用フォルダの作成と元データコピー
mkdir temp cp ../debian-installer/i386/initrd.gz .
initrd の展開
gunzip < initrd.gz | sudo cpio -i
展開が終わるとこんな感じになる。
ls -l 合計 64 drwxr-xr-x 2 root root 4096 4月 4 02:31 bin drwxr-xr-x 2 root root 4096 4月 4 02:31 dev drwxr-xr-x 11 root root 4096 4月 4 02:31 etc -rwxr-xr-x 1 root root 426 4月 4 02:31 init drwxr-xr-x 2 root root 4096 4月 4 02:31 initrd drwxr-xr-x 11 root root 4096 4月 4 02:31 lib drwxr-xr-x 2 root root 4096 4月 4 02:31 media drwxr-xr-x 2 root root 4096 4月 4 02:31 mnt drwxr-xr-x 2 root root 4096 4月 4 02:31 proc drwxr-xr-x 2 root root 4096 4月 4 02:31 sbin drwxr-xr-x 2 root root 4096 4月 4 02:31 sys drwxrwxr-x 2 root root 4096 4月 4 02:31 tmp drwxrwxr-x 6 root root 4096 4月 4 02:31 usr drwxrwxr-x 6 root root 4096 4月 4 02:31 var
ここに preseed.cfg を追加。展開イメージのroot の置けばいいので楽ですね。
cp /var/www/preseed.cfg .
最後に、 initrd.gz を固めて終わり。
find .| sudo cpio -H newc --create | gzip -9 > ../custom_initrd.gz
これで出来上がり。簡単ですね。
出来上がった initrd.gz で起動してみる。
作ったファイルを、起動用の場所に突っ込んで
mv custom_initrd.gz debian-mine/i386/initrd.gz
pxeboot 用のメニューに書いた。
default syslinux/menu.c32 timeout 20 ontimeout debian-installer-mine label debian-installer-mine menu label ^Install debian auto menu default kernel debian-installer/i386/linux append auto=true vga=788 initrd=debian-mine/i386/initrd.gz -- quiet
まぁPXEブートじゃなくても、grub 起動オプションや起動選択画面で指定したらいいんだけど。
無事に起動することを確認して終わり
本当に放置プレイでインストールが終わるから快適。
次回はネットワーク経由で preseed.cfg をやろうと思います。
PXEブート環境なので、出来る限りネットワークでやりたいですよね。