debian etch で initrd イメージを作ろうとし、何も考えず mkinitrd を実行したのだが、ルートファイルシステムが LVMの論路ボリュームのシステムが上手く立ち上がらなかった。
しばらく熟考後、分かったことだがカーネルパラメータ root= の指定方法に問題があったようだ。 論理ボリュームを /dev/VG01/LV01 で指定するか /dev/mapper/VG01-LV01 で指定するかで正しく立ち上がるかの挙動が違う。
/dev/VG01/LV01で起動できるもの
- sarge initrd-tools
- etch yaird
- centos mkinitrd
/dev/mapper/VG01-LV01で起動できるもの
- sarge initrd-tools
- etch yaird
- etch mkinitramfs
- fedora core 4 mkinitrd
yaird は System.map/config が無いと上手く initrdイメージが生成できない。xen用カーネルにはまだこれらのファイルが含まれていないのでmkinitramfs でしか作れない。作れても root=の指定を間違うと立ち上がらない。で、小一時間悩むと。
fedora/centosにはfstabに明示的に論理ボリュームのデバイス名を記述してないと正しいinitrdイメージができない。で、これまた小一時間悩むと。
救いなのは、etch mkinitramfs で作成したものは、ほぼ全てのHDDドライバ/RAID/LVMが含まれるので、root=の指定次第でほぼ正しいルートパーティションをマウントした状態でinitに制御がわたせるので、
緊急用のカーネルイメージには最適ですね。fedora/centosの復旧とかに使えて便利でしたねぇ。というか、fedora/centosのmkinitrdが貧弱すぎ。
0 件のコメント:
コメントを投稿