/dev/sda1
(/
)と/dev/sda2
(拡張、/dev/sda5
は/home
、/dev/sda6
はスワップ)にDebianシステムがあります。 Gentooを並行してインストールしたいので、sda2を縮小して、Gentooをインストールした/dev/sda3
と、Gentooの/dev/sda4
として機能する/home
を作成しました。
Disk /dev/sda: 931.5 GiB, 1000204885504 bytes, 1953525167 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xeb362e8f
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 29296639 29294592 14G 83 Linux
/dev/sda2 29298686 1673951231 1644652546 784.2G 5 Extended
/dev/sda3 1673951232 1735391231 61440000 29.3G 83 Linux
/dev/sda4 1735391232 1953523711 218132480 104G 83 Linux
/dev/sda5 29298688 35547135 6248448 3G 82 Linux swap / Solaris
/dev/sda6 35549184 1673949183 1638400000 781.3G 83 Linux
Partition table entries are not in disk order.
/dev/sda1
で現在のgrub2インストールを使用したかったので、Gentooのハンドブックの「ブートローダー」セクションをスキップしました。インストールが完了した後、Debianを起動してupdate-grub
を実行すると、Gentooがメニューに正常に追加されました。 。ただし、起動すると、カーネルパニックが発生し、ルートデバイスを開くことができないというメッセージが表示されます。
fstab Debianの場合、 fstab Gentooの場合。 Gentooのfstabを編集してDebianのようなUUIDを使用しようとしましたが、役に立ちませんでした。また、grubでGentooのブートオプションを編集してみました。元の:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Gentoo Base System release 2.2 (on /dev/sda3)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-1c46e4aa-e486-48ba-8f61-1484ed899e1e' {
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//sas/disk@0,msdos3' --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 1c46e4aa-e486-48ba-8f61-1484ed899e1e
else
search --no-floppy --fs-uuid --set=root 1c46e4aa-e486-48ba-8f61-1484ed899e1e
fi
linux /boot/vmlinuz-4.1.12-gentoo root=/dev/sda3
}
submenu 'Advanced options for Gentoo Base System release 2.2 (on /dev/sda3)' $menuentry_id_option 'osprober-gnulinux-advanced-1c46e4aa-e486-48ba-8f61-1484ed899e1e' {
menuentry 'Gentoo Base System release 2.2 (on /dev/sda3)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-4.1.12-gentoo--1c46e4aa-e486-48ba-8f61-1484ed899e1e' {
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//sas/disk@0,msdos3' --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 1c46e4aa-e486-48ba-8f61-1484ed899e1e
else
search --no-floppy --fs-uuid --set=root 1c46e4aa-e486-48ba-8f61-1484ed899e1e
fi
linux /boot/vmlinuz-4.1.12-gentoo root=/dev/sda3
}
}
### END /etc/grub.d/30_os-prober ###
set root="/dev/sda3"
とset root="sda3"
を使ってみましたが、正直なところ、それが何を意味するのかわかりません。パニックメッセージに関連しているようです。では、ここで何が起こっているのでしょうか。 USB経由で接続された外付けハードドライブ(/dev/sda
)から起動していることは言及する価値があります(私の内部のものは失敗しました)。 Gentooのインストールはエラー/警告なしで完了しました。カーネルに何かをコンパイルするのを忘れたとは思いませんが、可能だと思います... ext4、SCSI、USBのサポート(モジュールとしてではなく)含まれていると確信しています。
カーネル構成を見ると、最新のシステムがinitrdなしで起動するために必要なすべてのものを有効にしたようですが、古いコンピューターを使用しています。 lshw
の出力で、ISAブリッジとPentiumM 1.4CPUがあることに気づきました。
私の推測では、CONFIG_PATA_MPIIX、ATA_GENERIC、PATA_LEGACYなどのPATAオプションがありませんが、推測ゲームをプレイする代わりに、次のようにします。
uSBドライブを接続した状態でDebianシステムを起動します。lsmod
カーネル構成(= y)を実行するために追加する必要があるものを確認するか、出力を投稿してください。ヒントを提供できるかもしれません。
または、このサイト http://kmuto.jp/debian/hcl/ を使用して、次の結果を貼り付けます。lspci -n
Gentooで通常カーネルを構成する方法は次のとおりです。
それでも機能しない場合は、ドライブがDebianでは/ dev/sdaを取得していますが、Gentooでは他の何か(/ dev/sdbかもしれません)を取得していると思います。これを修正する最も簡単な方法は、/ etc/fstabのUUID =と、カーネルに渡すブートローダー引数のPARTUUID =を使用することです。 partUUIDはblkidの出力から見つけることができます。
USBデバイスの検出は、ここ数年非同期プロセスです。すべてのドライバーがコンパイルされていて、スクリーンショットにUSBストレージデバイスが列挙されていることが示されている場合でも、USB大容量ストレージドライバーの初期化が完了する前に、カーネルがルートファイルシステムをマウントしようとしていると思われます。
Grubconfigがinitramfsのロードを指定していないようです。
Gentooの詳細についてアドバイスすることはできませんが、私が使用しているDebianシステムが、正しい答えを見つけるのに役立つほど類似していることを願っています。 Debianでは、initramfsスクリプトは、必要なブロックデバイスをマウントできるようになるまでブートプロセスを停止します。
私の知る限り、コアinitramfsスクリプトの1つであるDebianでは、/ scripts/localには、udevを起動し、ルートデバイスが列挙されるのを待つために必要なロジックがあります。具体的には、local_device_setup()関数を意味します。 ここ を参照してください。
Gentooには類似のシステムがあると思いますか?
David Kingが示唆しているように、原因はおそらくカーネルドライバが欠落していることです。 SB大容量ストレージを機能させるために必要なカーネルオプションのリストです。 gentoo livecdからgentooシステムにchrootしてみてください (おそらくこれはGentooで詳細に説明されています)ハンドブック) 。そこで、カーネルを再構成して再コンパイルすることができます (Gentooハンドブックで非常によく説明されています) 。 initramfsを作成した場合は、再作成することを忘れないでください。そうしないと、新しくコンパイルされたカーネルとドライバーが起動時に使用できなくなります。
SATAドライバーがGentooカーネルにコンパイルされていない(またはモジュールとしてコンパイルされていない)ようです。私に関係する行は、添付したスクリーンショットの約半分のところにあります。
正しい「root =」オプションを追加してください。使用可能なパーティションは次のとおりです。
ただし、使用可能なパーティションはリストされていません。私にとって、Gentooが物理ディスクとまったく通信できないという悲鳴があります。 Debianでlshw
を実行すると、どのようなSATAコントローラーが見つかるかわからない場合。これにより、カードが何であるかだけでなく、使用しているカーネルドライバー(SATAセクションの下の「configuration:driver =」行を探してください)もわかるので、Gentooカーネルに追加できます。