Я пытаюсь передать параметры ядра в виртуальную установку OpenSuSE без ввода их в приглашении к загрузке, используя возможность KVM для прямой загрузки ядра.

Сначала я монтирую установочный DVD следующим образом (чтобы загрузочные файлы были доступны на хосте):

fuseiso openSUSE-12.3-NET-x86_64.iso ~/mnt/cdrom

затем я порождаю виртуальную машину следующим образом (есть больше опций, но я не думаю, что они здесь уместны):

kvm \
 -drive file=./openSUSE-12.3-NET-x86_64.iso,index=1,media=cdrom \
 -kernel ~/mnt/cdrom/boot/x86_64/vmlinuz-xen \
 -initrd ~/mnt/cdrom/boot/x86_64/initrd-xen

Это приводит к сообщению об ошибке:

Direct floppy boot is not supported. Use a boot loader program instead.
Remove disk and press any key to reboot ...

это то же самое сообщение, которое я получил бы, если бы начальный виртуальный диск (initrd) был недействительным. Использование аналогичной установки с установщиком CentOS 6.3 работает нормально. Я использую QEmu-KVM версии 1.0 (с Ubuntu Precise 12.04 в качестве хоста).

Кто-нибудь заставил это работать, и какой initrd вы использовали в этом случае?

2 ответа2

0

Две точки

  1. Может ли ваша виртуальная машина загружаться без KVM, указывающей ядро?
  2. Я не уверен, но если использовать KVM для указания ядра, вы пытались использовать путь, относящийся к корню виртуальной машины, вместо того, чтобы использовать путь, находящийся вне виртуальной машины?
0

Мне удалось (случайно) понять это самому; ядро и начальный RAM-диск находятся в подкаталоге loader/ . Таким образом, команда для запуска должна быть:

kvm \
 -drive file=./openSUSE-12.3-NET-x86_64.iso,index=1,media=cdrom \
 -nographic -vga none \
 -kernel ~/mnt/cdrom/boot/x86_64/loader/linux \
 -initrd ~/mnt/cdrom/boot/x86_64/loader/initrd \
 -append "serial console=ttyS0"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .