Google Code Prettify

2006年6月16日

mkinitrd はどこに行くのだろう

debian etch で initrd イメージを作ろうとし、何も考えず mkinitrd を実行したのだが、ルートファイルシステムが LVMの論路ボリュームのシステムが上手く立ち上がらなかった。

しばらく熟考後、分かったことだがカーネルパラメータ root= の指定方法に問題があったようだ。 論理ボリュームを /dev/VG01/LV01 で指定するか /dev/mapper/VG01-LV01 で指定するかで正しく立ち上がるかの挙動が違う。

/dev/VG01/LV01で起動できるもの

  1. sarge initrd-tools
  2. etch yaird
  3. centos mkinitrd

/dev/mapper/VG01-LV01で起動できるもの

  1. sarge initrd-tools
  2. etch yaird
  3. etch mkinitramfs
  4. 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 件のコメント:

久しぶりの投稿

かなり期間が空いてしまったが、ブログを再開してみようと思う。 2013年3月が直前の投稿だったが、頻繁に更新していた時期が 2011年11月までなので、8年間ぶりとなる。 8年間なにをしていたのかと言えば、2回転職して未だにIT技術者の職を得ている。 その...