initrdから実際のinitに実行を渡すときに問題が発生し、/dev/mapperにデバイスがありません。

initrdから実際のinitに実行を渡すときに問題が発生し、/dev/mapperにデバイスがありません。

Gentooでは(ついに)initrdとLILOを使用して暗号化されたシステムを起動できました。

私はこのガイドを使用しましたhttp://whitehathouston.com/documentation/gentoo/initramfs_howto.htm

ただし、システムの起動が完了すると、/dev/mapper/cryptvg-rootが見つからないようです。なぜですか? ls -al /dev/mapperを実行すると、「control」ファイルのみが表示されます。しかし、mountは/dev/mapper/cryptvg-rootが/にマウントされていると言います。

コントロールを渡す前に、initrdの/ devファイルシステムを実際のルートファイルシステムに再マップするために何かを追加する必要があるかもしれません。だから私はこれを追加しました:

mount -o move /dev /mnt/root/dev

switch_root を実行する前に。

ただし、ブートが完了しても/dev/mapper/cryptvg-rootはまだありません。

switch_root 実行前と実行中に制御権を正しく渡すにはどうすればよいですか?

重要な場合:

/dev/sda1 = /boot (暗号化されていません) /dev/sda2 = / (暗号化されています)

答え1

initramfsを構築するにはdracutを使用することをお勧めします。あなたがコース全体を学ぶためにそこにいない限り、私は推測します。

現在の問題の場合は、udevがinitramfsで実行されて物理ドライブを見つけ、ルートfsを切り替えてすべての物理デバイスノードを作成して正しく実行されていることを確認してください。

答え2

遅すぎましたが、switch_rootの後に「dmsetup mknodes」を実行すると、/ dev / mapperの下にデバイスノードが表示されます。 checkfsとfsckを実行する前に、これを行ったことを確認してください。詳細については、Gentooボードのトピック940802を参照してください。

関連情報