SUSE11.2を実行しています。 Ubuntuは拡張パーティション上にあります/dev/sda5
、しかし私が起動すると私は得る
Error 19: Linux kernel must be loaded before initrd
これはmenu.lstのUbuntuエントリです。
#Don’t change this comment – YaST2 identifier: Original name: none#
title Ubuntu 10.04
root (hd0,4)
kernel /vmlinuz root=/dev/sda5 ro quiet splash
initrd /initrd.img
Vmlinuzファイルが見つからない可能性があります。これは、sda5の/ bootディレクトリにあるためである可能性があります。したがって、行を次のように変更する必要があります。
title Ubuntu 10.04 root (hd0,4) kernel /boot/vmlinuz root=/dev/sda5 ro quiet splash initrd /initrd.img
またはそれがどこか別の場所にある場合、その場所はどこにでも。
(initrd.imgファイルでも同じことをする必要があるかもしれません)
また、ubuntuのvmlinuzファイルとinitrd.imgファイルが正確にこの名前であるかどうかを確認してください。通常、それらにはカーネルバージョンがあり、名前を入力します(つまり、vmlinuz-2.6.35-22-generic)
次のことを試すことができます:
mount /dev/sda5 /mnt
cd /mnt
ls -l boot vmlinuz initrd.img
シンボリックリンクが指す場所が実際に存在し、探している正しいファイルであることを確認してください。
たとえば、私のボックスでは、vmlinuz-> boot /vmlinuz-2.6.32-25-genericです。
txwikingerの回答に記載されているように、適切なファイルを指すようにgrub構成を変更できます。
これをデバッグするもう1つの簡単な方法は、grubでプロンプトを取得することです(grub1でCを押すと、grub2についてはわかりません)。次に、タブ補完を使用して使用可能なファイルを一覧表示し、オンザフライでテストできます。