0

これは単純なはずです。それでも、それは私に地獄を与えています。

問題
最新のカーネルをコンパイルしましたが、ボックスを再起動すると、ファイルシステムに関連するカーネルパニックが発生します。

質問
新しいカーネルにVMWareファイルシステムを認識させるにはどうすればよいですか?「ハードドライブ」が実際にはドライブではなく、実際には仮想マシンを表すファイルであることをLinuxインストールに知らせる設定がどこかにあるはずです。

背景
何よりもまず、私はLinuxの第一人者ではありません。カーネルをコンパイルするのはこれが初めてです。この問題を解決するために私がしたこと:

  • kernel.orgからカーネルバージョン2.6.34をダウンロードしました
  • ソースをディレクトリに解凍しました
  • こちらのインストール手順に従ってください。
  • http://www.cyberciti.biz/tips/compiling-linux-kernel-26.html
  • 基本的に、実行:make menuconfig、make、make modules、make modules_install、make install、reboot
  • makemenuconfigセクションでは実際には何も変更していません

再起動すると、次の行に沿ってエラーが発生して失敗しました。

No volume groups found
Volume group "VolGroup00" not found
Unable to access resume device (/dev/VolGroup00/LogVol01)
mount: could not find filesystem '/dev/root'
setuproot: moving /dev failed: No such file or directory
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
switchroot: mount failed: No such file or directory
Kernel panic - not syncing: Attempted to kill init!

環境
2.8GHzIntel CoreDuoプロセッサを搭載したOSXv10.5.8を搭載したMacBookProで動作するVMWareFusionバージョン3.1.0(261058)でRed Hat Enterprise Linux Server(2.6.18-194.3.1.el5PAE)を実行しています。 4GB 1067MHzDDR3メモリ。仮想マシンには、2つのプロセッサコアと2048MBのメモリが割り当てられます。VMハードディスク設定は、「バスタイプ」が「SCSI」に設定され、「ディスクサイズ」が40Gbに設定され、「2Gbファイルに分割」オプションがチェックされたファイル「RedHatEnterpriseLinux5.vmdk」を指します。

次の/boot/grub/menu.lstファイルを使用すると、間違ったカーネル(2.6.34ではなく2.6.18-194.3.1.el5PAE)で起動することを除いて、すべてが完全に機能します。

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.34)
    root (hd0,0)
    kernel /vmlinuz-2.6.34 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
    initrd /initrd-2.6.34.img
title Red Hat Enterprise Linux Server (2.6.18-194.3.1.el5PAE)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-194.3.1.el5PAE ro root=/dev/VolGroup00/LogVol00 rhgb quiet
    initrd /initrd-2.6.18-194.3.1.el5PAE.img
title Red Hat Enterprise Linux Server (2.6.18-194.el5PAE)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-194.el5PAE ro root=/dev/VolGroup00/LogVol00 rhgb quiet
    initrd /initrd-2.6.18-194.el5PAE.img

次のファイルを使用すると(最後の行がコメント化され、他のいくつかの小さな編集が加えられています)、正しいカーネルを起動しようとしますが、上記のカーネルパニックで起動が失敗します。

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.34)
    root (hd0,0)
    kernel /vmlinuz-2.6.34 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
    initrd /initrd-2.6.34.img
    savedefault
    boot
#title Red Hat Enterprise Linux Server (2.6.18-194.3.1.el5PAE)
#   root (hd0,0)
#   kernel /vmlinuz-2.6.18-194.3.1.el5PAE ro root=/dev/VolGroup00/LogVol00 rhgb quiet
#   initrd /initrd-2.6.18-194.3.1.el5PAE.img
#title Red Hat Enterprise Linux Server (2.6.18-194.el5PAE)
#   root (hd0,0)
#   kernel /vmlinuz-2.6.18-194.el5PAE ro root=/dev/VolGroup00/LogVol00 rhgb quiet
#   initrd /initrd-2.6.18-194.el5PAE.img

ある場合には、VMWareのファイルシステムをうまく理解できるのに、他の場合には理解できないのか、私にはわかりません。私は何が欠けていますか?選択すべき特別なVMWare関連のコンパイルオプションはありますか?VMWare Fusion側に変更が必要なものはありますか?私はこれを理解することはできません!

すべての提案は大歓迎です!

4

3 に答える 3

6

私も同様の問題を抱えていました。

カーネルはハードウェアよりはるかに古いものでした。ハードドライブはSATAのデフォルトで接続されていました。IDEで接続するようにハードウェアを(BIOSまたはVM.Propertiesで)再構成しました。それは私のために働いた、私は幸せです:)

于 2013-10-02T16:58:57.167 に答える
1

カーネルは、ボリュームを見つけるために必要なモジュールをロードできない可能性があります。

私の最善の推測は、あなたのinitrdが正しい場所にないということです。インストールされているカーネルと同じディレクトリにある必要があります。

また、RedHatシステムのDebianの指示に従うのは良い考えではありません。一般的には問題ありませんが、比較的ディストリビューション固有の処理を行っています。

于 2010-07-08T02:30:01.683 に答える
0

別の状況でカーネルパニックが発生しました。BIOS/マザーボードに障害が発生したRHEL5.5ワークステーションがありました。そのため、OSドライブを同じPC(Dell T5500)と1世代前の別のPC(Dell T5400)に移動しました。Linuxには多くのマザーボード用のドライバーが含まれており、PCは通常すぐに起動するため、これは過去に行ったことがあります。両方のカーネルパニックは同じでした。とてもびっくりした。私はあなたの解決策を友人に話しました、そして彼はこれを引き起こす可能性のあるBIOS設定を思い出しました。BIOS->ドライブ->SATA操作->RAIDSATAをRAIDAHCIに変更しました。このBIOS設定を変更した後、両方のPCがRHEL5.5OSHDで起動しました。交換用のPCには以前にWindowsが搭載されていました。彼は、WindowsにはATA BIOS設定が必要であり、Linuxには他の設定が必要であると私に言いました。誰かわかったね!

于 2016-09-25T06:04:15.287 に答える