Использование каталога в качестве initrd в QEMU

1548
kasperd

Есть ли способ использовать каталог в качестве initrd при загрузке QEMU?

Я знаю, как использовать -kernelи -initrdфлаги для QEMU, чтобы загрузить ядро и INITRD без необходимости сначала создать загрузочное устройство, содержащее эти два файла. Теперь мне интересно, если есть способ пропустить шаг использованияcpio для создания файла initrd.

Обычно при внесении изменений в каталог, содержащий все файлы для моего initrd. Я бы проверил их, запустив

(cd initrd ; find . | cpio --quiet -R 0:0 -o -H newc) | gzip >initrd.gz qemu-system-i386 -kernel /boot/vmlinuz -initrd initrd.gz 

Можно ли как-то добиться того же, не создавая файл initrd в файловой системе?

До сих пор я пробовал следующее:

qemu-system-i386 -kernel /boot/vmlinuz -initrd initrd 

в результате ядро ​​запускается, но при попытке смонтировать корневую файловую систему.

qemu-system-i386 -kernel /boot/vmlinuz -initrd <( cd initrd ; find . | cpio --quiet -R 0:0 -o -H newc) 

в результате QEMU умирает с:

qemu: error reading initrd /dev/fd/63: Illegal seek 
6

1 ответ на вопрос

0
Virtually Nick

Я подозреваю, что нет - насколько я могу судить по документации QEMU, он не поддерживает чтение ядра или initrd из stdin, что, по сути, вы пытались сделать с помощью перенаправления. Я полагаю, что Qemu ожидает фактический дескриптор файла (основанный на ошибке / dev / fd / 63), так что вам, вероятно, не повезло. Вы можете спросить в списке рассылки Qemu или на канале IRC и посмотреть, есть ли какой-то конкретный опыт, чтобы выполнить то, что вы пытаетесь сделать, но я предполагаю, что вам придется восстанавливать его каждый раз.

Я уже отправил реализацию этой функции в список рассылки. Но не было никакого ответа. kasperd 7 лет назад 1

Похожие вопросы