新しいマシンに直面し、何らかの理由で(アイドル状態にならないように)自分でカーネルをコンパイルする必要がある場合、カーネルパニックが発生します。
カーネルのパニックは非常に厄介です。起動時のパニックはさらに厄介です。ログのないパニックは、ハードディスクがないと特に厄介です。
問題を解決するためにいくつかのだまし方法を提供します:(以下の内容はredhatシステム用ですが、ほとんどの方法は一般的です)
起動プロセスについて簡単に説明します。
1 Power On Maybe Err:Worlds Collides
2 BIOS Maybe Err:Worlds Collides
3 Load Grub From MBR Maybe Err:See nothing
4 load Grub and show it Maybe Err:Grub loads failed
5 Grub reads menu.list Maybe Err:Grub loads failed
6 Grub loads kernel image Maybe Err:Grub loads failed
7 kernel mounts root filesystem Maybe Err:PANIC
8 kernel runs init Maybe Err:PANIC
9 init runs scripts to start Maybe Err:PANIC
まず、どのリンクがパニックを引き起こしたかを確認する必要があります。ログが比較的完全である場合は、通常、手がかりに基づいて上記のリンクが原因で発生した問題を判断できます。通常、パニックはstep7、step8、およびstep9リンクで発生します。
以下は、step7およびstep8パニックのいくつかのトリックを提供します
1234 | title CentOS (2.6.32-358.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/vg_localhost-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_localhost/lv_swap crashkernel=128M LANG=zh_CN.UTF-8 rd_LVM_LV=vg_localhost/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM debug selinux=0 acpi=0 initrd /initramfs-2.6.32-358.el6.x86_64.img |
---|
これは、キャラクターをテストするときです。状況がどうであれ、最も可能性の高い問題を最初に取り除く必要があります。さらに、redhatシステムは「rhgbquiet」などのパラメーターをカーネルの最後に追加し、それらをすべて削除します。起動時に、画面を凝視して疑わしい出力があるかどうかを確認します。システムは記録せずに短時間で大量のログを出力する可能性があるため、ログ出力レートと一時停止時間を設定する必要があります。詳細なパラメータについては、以下を参照してください。
https://wiki.archlinux.org/index.php/Boot_debugging
redhatシステムの後の段階で、dracutを使用してinitrdイメージを作成しました。dracutに関するマニュアルは次のとおりです。
http://people.redhat.com/harald/dracut-rhel6.html#lsinitrd
デバッグスイッチはここにあります:
https://fedoraproject.org/wiki/How_to_debug_Dracut_problems
rdshellを設定し、パニック後にdracutが提供するシェルにジャンプし、dmesgと入力してログ情報を表示できます。
http://free-electrons.com/blog/find-root-device/
その他の参考資料:
http://www.tuxradar.com/content/how-fix-linux-boot-problems
Recommended Posts