Это должно быть просто. Тем не менее, это дает мне ад.
Проблема
Я скомпилировал последнее ядро, и когда я перезагружаю свой компьютер, возникает паника ядра, связанная с файловой системой.
Вопрос
Как заставить новое ядро распознавать файловую систему 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, что мне нужно изменить? Я не могу понять этого!
Любые предложения приветствуются!