それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

initrd.gz をカスタマイズしてpreseed.cfg で自動インストール

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 起動オプションや起動選択画面で指定したらいいんだけど。

無事に起動することを確認して終わり

f:id:takuya_1st:20150404031408j:plain:w300

本当に放置プレイでインストールが終わるから快適。

次回はネットワーク経由で preseed.cfg をやろうと思います。

PXEブート環境なので、出来る限りネットワークでやりたいですよね。