Паника ядра при загрузке в RedHat Linux под VMWare Fusion: файловая система не найдена

Это должно быть просто. Тем не менее, это дает мне ад.

Проблема
Я скомпилировал последнее ядро, и когда я перезагружаю свой компьютер, возникает паника ядра, связанная с файловой системой.

Вопрос
Как заставить новое ядро ​​распознавать файловую систему VMWare? Где-то должна быть какая-то настройка, которая позволяет установке Linux знать, что «жесткий диск» на самом деле не диск, а файл, представляющий виртуальную машину.

Предыстория
Прежде всего, я не гуру Linux. Я впервые компилирую ядро. Что я сделал, чтобы решить эту проблему:

  • Скачал версию ядра 2.6.34 с kernel.org
  • Распаковал исходник в директорию
  • Следуйте инструкциям по установке здесь:
  • http://www.cyberciti.biz/tips/compiling-linux-kernel-26.html
  • Basically, ran: make menuconfig, make, make modules, make modules_install, make install, reboot
  • I didn't really change anything in the make menuconfig section

После перезагрузки произошла ошибка:

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!

Среда
Я использую Red Hat Enterprise Linux Server (2.6.18-194.3.1.el5PAE) под VMWare Fusion Version 3.1.0 (261058) на MacBook Pro с OS X v10 .5.8 с процессором Intel Core Duo с тактовой частотой 2,8 ГГц и 4 ГБ памяти DDR3 1067 МГц. Виртуальной машине выделено 2 ядра процессора и 2048 МБ памяти. Параметр жесткого диска виртуальной машины указывает на файл «Red Hat Enterprise Linux 5.vmdk» с параметром «Тип шины», установленным на «SCSI», «Размер диска» равным 40 ГБ и установленным флажком «Разделить на файлы 2 ГБ».

Когда я использую следующий файл /boot/grub/menu.lst, все работает отлично, за исключением того, что он загружается в неправильное ядро ​​(2.6.18-194.3.1.el5PAE вместо 2.6.34):

# 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, что мне нужно изменить? Я не могу понять этого!

Любые предложения приветствуются!


person gMale    schedule 07.07.2010    source источник
comment
это точно не имеет отношения к VMware. попробуйте просмотреть свой .config в дереве исходных текстов, чтобы проверить, есть ли там CONFIG_BLK_DEV_LOOP = y? Это не имеет ничего общего с файловой системой VMware. ядро генерирует файл и знает, какая файловая система будет работать. также используйте команду installkernel для установки ядра, а затем отредактируйте запись в файле config menu.lst grub.   -  person Ramadheer Singh    schedule 09.07.2010


Ответы (3)


Ваше ядро, вероятно, не может загрузить модули, необходимые для размещения ваших томов.

Я предполагаю, что ваш initrd находится не в нужном месте. Он должен находиться в том же каталоге, что и установленное ядро.

Также не рекомендуется следовать инструкциям Debian для системы RedHat. В общем, это нормально, но вы делаете что-то относительно специфичное для дистрибутива.

person James Roth    schedule 08.07.2010
comment
Спасибо за ваш ответ. В каталоге / boot есть файлы img initrd для каждого ядра. Полагаю, проблема в другом? Ваш комментарий заставляет меня задуматься, есть ли какой-то модуль VMWare, который мне нужно установить, который существует в других ядрах. Я начну разбираться в этом (или, по крайней мере, пытаться!) - person gMale; 08.07.2010
comment
Что касается учебника, он был одним из лучших, которые я мог найти в отношении ядра 2.6, и, поскольку во вступлении указано, инструкции остаются такими же для любого другого дистрибутива, за исключением команды apt-get, которую я использовал (используя yum для всех apt -получить разделы). Я с радостью следую руководству по redhat, если бы смог найти достойное, охватывающее 2.6. Все, с чем я столкнулся, были либо для 2.4, либо для RedHat 8/9 (вместо Enterprise 5), либо для Fedora, и они не работали должным образом. - person gMale; 08.07.2010
comment
Вы видите какие-либо признаки запуска модулей SCSI? - person James Roth; 08.07.2010

У меня была аналогичная проблема.

Ядро было намного старше железа. Жесткий диск был подключен по умолчанию SATA. Я перенастроил (в BIOS или в VM.Properties) оборудование для подключения через IDE. У меня сработало, я счастлив :)

person Yuriy Litvin    schedule 02.10.2013

Я получил ошибку ядра в другой ситуации. У меня была рабочая станция RHEL 5.5, на которой произошел сбой BIOS / материнской платы. Поэтому я переместил диск ОС на другой идентичный ПК (Dell T5500) и на другой, выпущенный на одно поколение назад (Dell T5400). Я делал это раньше, поскольку Linux содержит драйверы для многих материнских плат, и компьютер обычно загружается сразу. Обе паники ядра были идентичны. Я был очень удивлен. Я рассказал о вашем разрешении другу, и он вспомнил настройку BIOS, из-за которой это могло произойти. Мы изменили BIOS-> Диски -> Работа SATA-> RAID SATA на RAID AHCI. После изменения этой настройки BIOS оба ПК загрузились с ОС RHEL5.5 HD !! На замененных ПК была установлена ​​ОС Windows. Он сказал мне, что Windows нужна настройка ATA BIOS, а Linux - другая. Кто знал!

person SanMarz    schedule 25.09.2016