新しいXenカーネルを起動していますが、起動プロセスのある時点でマシンが警告なしに再起動するまで、すべて正常に動作します。残念ながら、それが発生する直前にエラーが点滅することはありません。
動作中のカーネルでマシンを起動し、前回の起動のログなどを確認する方法はありますか?
編集:私が気づかなかったのは、実際には画面にエラーがあるということです。再起動する前に非常に速く点滅します。このエラーは、grubの構成に問題があるため、ルートファイルシステムをマウントできないことに関連しています。
Grub.cfgの通常のエントリは次のようになります。
menuentry 'Ubuntu, with Linux 2.6.32-33-server' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,1)'
search --no-floppy --fs-uuid --set 75475e50-82e2-4f74-b860-6cf92c91b42e
linux /vmlinuz-2.6.32-33-server root=/dev/mapper/xenserver-root ro crashkernel=384M-2G:64M,2G-:128M
initrd /initrd.img-2.6.32-33-server
}
/etc/grub.d/40_defaultに以下を追加しました
menuentry 'Xen 4 with Linux 2.6.32.45-xen' --class ubuntu --class gnu-linux --class gnu --class os --class xen {
recordfail
insmod ext2
set root='(hd0,1)'
search --no-floppy --fs-uuid --set=root 75475e50-82e2-4f74-b860-6cf92c91b42e
echo 'Loading Xen 4 ...'
multiboot /xen.gz placeholder
echo 'Loading Linux 2.6.32.45-xen ...'
module /vmlinuz-2.6.32.45-xen placeholder root=/dev/mapper/xenserver-root ro iommu=1
echo 'Loading initial ramdisk ...'
module /initrd.img-2.6.32.45-xen
}
しかし、それは何らかの理由で機能していません。何か案は?
編集:私は20_linux_xenスクリプトも試しました。残念ながら、それは機能していません。これらのエラーを参照してください。
Found linux image: /boot/vmlinuz-2.6.32.45-xen
Found initrd image: /boot/initrd.img-2.6.32.45-xen
Found linux image: /boot/vmlinuz-2.6.32-33-server
Found initrd image: /boot/initrd.img-2.6.32-33-server
/etc/grub.d/20_linux_xen: 57: uses_abstraction: not found
Found linux image: /boot/vmlinuz-2.6.32.45-xen
Found initrd image: /boot/initrd.img-2.6.32.45-xen
/etc/grub.d/20_linux_xen: 156: gettext_printf: not found
gettextがインストールされます。
ubuntu 10.04LTSを使用しています。
起動時にフラッシュされるエラーは次のようなものです"正しいroot = bootカーネルオプションを挿入してください..."
なぜこれがそれほど難しいのか、そしてなぜgrub2 xenの非常に多くの異なる例があるのですか?/bootを前に置くものもあれば/だけのものもあります。/bootを前に置いてみましたが、うまくいきませんでした。また、一部には--set = root uuidがありますが、他のすべての作業エントリには--setuuidがあります。これは別のgrub2バージョンと関係がありますか?
私自身の質問に答えるために。このgrub2エントリは機能しました。
menuentry 'Xen 4 with Linux 2.6.32.45-xen' --class ubuntu --class gnu-linux --class gnu --class os --class xen {
recordfail
insmod ext2
set root='(hd0,1)'
search --no-floppy --fs-uuid --set 75475e50-82e2-4f74-b860-6cf92c91b42e
multiboot /xen.gz placeholder
module /vmlinuz-2.6.32.45-xen placeholder root=/dev/mapper/xenserver-root ro
module /initrd.img-2.6.32.45-xen
}
しかし、カーネルにも問題がありました。だから私はそれを再構築しなければなりませんでした。私がそれをしたら、それはすべて行きました。
grub2-mkconfig
がLinuxカーネルを検出するには、それらにvmlinuz-*
またはkernel-*
という名前を付ける必要があります。一部のスクリプトでは、vmlinux-*
も表示されます。例(...-最後のxenは私のメモです):
/boot/kernel-3.6.2-xen
20_linux_xen
スクリプトにXenカーネルを含めるには、/boot
に、カーネルファイルに対応する正確な名前config-*
のカーネル構成ファイルが含まれている必要があります。例えば:
/boot/config-3.6.2-xen
このファイルを作成するには、zcat /proc/config.gz > /boot/config-[your_version]
を実行するだけで、grub2-mkconfig
を再度実行する必要があります。現時点では、(おそらく)xenカーネルへのシンボリックリンクがいくつかあるため、スクリプトはXenカーネルの重複レコードを生成する可能性があります。したがって、それらを削除し、元のファイル(xen-4.2.0.gz
)のみを残します。 (これが安全であることを願っています。これらのシンボリックリンクの削除が間違っている場合は、以下にコメントを残してください。)
同じ状況がinitrd/initramfsファイルの場合ですが、多くのバリエーションがあります。
カーネルパラメータの追加について説明しました ここ 。
ソース: カーネルの命名 、20_linux_xen:147
、10_linux:194-201