あなたのディストリビューションはUbuntuのように見えましたよね?その場合、initrd を作成するコマンドは次のとおりです。
(現在のディレクトリがカーネル ソース コードを含むディレクトリと同じであると仮定します)
update-initramfs -c -k `cat include/config/kernel.release`
続いて:
update-grub
initrd と rootfs のロジックは (大まかに) 次のようになります。
最初に blkid と df を実行します。
blkid
/dev/sda5: UUID="251ce906-e4db-4eac-a2c7-58d5e1ed86a3" TYPE="reiserfs"
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda5 24412432 22360832 2051600 92% /
none 2959228 2352 2956876 1% /dev
rootfs が /boot がある reiserfs にあることがわかります。したがって、これは、カーネルのロード時に reiserfs カーネル モジュールが存在する必要があることを意味します。そうしないと、vmlinuz カーネル イメージが好む /boot を読み取ることができません。したがって、initrd はこの目的のためのものです。
initrd (いつでも gunzip -c existing_initrd_file | cpio -idmv を実行できます) を使用して内容を展開し、すべての fs.*ko ファイルを調べます。私は:
./lib/modules/2.6.32-33-generic/kernel/fs/reiserfs/reiserfs.ko
./lib/modules/2.6.32-33-generic/kernel/fs/nfs_common/nfs_acl.ko
そして、それを設定ファイルと一致させてみてください:
CONFIG_REISERFS_FS=m
しかし、CONFIG_REISERFS_FS=y を実行した場合、initrd 内に reiserfs.ko は必要ありません。
要約すると、現在の問題は、initrd ファイルが見つからないか、コマンドラインで initrd ファイルが指定されている場合、必要な fs カーネル モジュールが initrd にないため、/boot ディレクトリを読み取ることができません。
はい、これも完全には正しくありません。grub2 が関係している場合、/boot/grub には /boot ディレクトリをロードするための独自の fs カーネル モジュールが含まれ、grub.cfg にはモジュールをロードするために必要な insert reiserfs ステートメントが含まれます。申し訳ありませんが、説明するには詳細が多すぎます。