2013-08-26 4 views
3

Я скомпилировал ядро ​​Linux (стабильное) из дерева и получил initrd и bzImage. Я пытаюсь запустить его на эмуляторе qemu, но у меня возникли проблемы с определением раздела корневой файловой системы. (Я знаю, что это раздел, загруженный для запуска initrd from).Невозможно запустить образ ядра Linux на qemu

Моя система Ubuntu 12.04 установлена ​​через Wubi на Windows.

Команда я использую это

qemu-system-x86_64 -kernel bzImage -initrd initrd.img-3.11 -append "root=/no-clue-what-to-put" 

Я знаю корень аргумент, который определяет, где корневой раздел. Любая помощь для получения этого изображения, работающего на qemu, будет оценена по достоинству.

+0

try put root =/dev/ram –

+0

Это не работает/dev/ram на самом деле не является partit и, следовательно, его не найдено – maverick

+0

Это позволит вам использовать ram в качестве корневого раздела. В вашей системе у вас ее нет, но она зависит от конфигурации ядра. –

ответ

1

ли вам на самом деле имеют образ диска и корневой файловой системы, чтобы дать QEMU и ядро?

Для загрузки Linux-системы вам нужно больше, чем ядро ​​linux. Для qemu вам нужна корневая файловая система, содержащаяся в образ виртуального диска. Это будет содержать программы, для которых ядро ​​«контролирует руки», когда оно загружается, обычно «init» или «systemd».

Таким образом, вам необходимо создать образ qemu-диска, который содержит корневую файловую систему. Если вы создали его так, чтобы корневая файловая система находилась на первом разделе вашего виртуального диска, вы можете указать виртуальный диск как параметр qemu с «-hda/path/to/qemu/disk/image», и вы можете скажите ядру использовать первый раздел этого виртуального диска с «-append» root =/dev/sda1 »(он также может быть/dev/vda1 или/dev/hda1 в зависимости от того, какой образ диска вы создали).

Так что ваша последняя команда будет выглядеть примерно так:

QEMU-системы x86_64 -kernel bzImage -initrd initrd.img-3,11 -hda/путь/к/ваш/QEMU/диск/образ -append «корень =/dev/sda1 "

2

Здесь отсутствует компонент параметры ядра должны быть переданы, Как вы используете -initrd того initialramdisk вам необходимо пройти rdinit =/(ваше-приложение Исполняемое)

вы можете пройти rdinit=/sbin/init или rdinit=/bin/sh попробовать это

qemu-system-x86_64 -kernel bzImage -initrd initrd.img-3.11 -append "root=/dev/ram rdinit=/sbin/init"

+0

Я думаю, что это действительно должен быть комментарий, а не ответ. – Dariusz

+0

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. – Dariusz

+0

@ Дариуш благодарю вас за предложение –

Смежные вопросы