У меня есть рабочий образ QEMU, эмулирующий ARM vexpress-a9, и я запускаю его так:
sudo qemu-system-arm -m 512M -M vexpress-a9 -D qemu.log -d unimp -kernel buildroot-2019.02.5/output/images/zImage -dtb buildroot-2019.02.5/output/images/vexpress-v2p-ca9.dtb -append "console=ttyAMA0,115200 kgdboc=kbd,ttyAMA0,115200 ip=dhcp nokaslr" -initrd buildroot-2019.02.5/output/images/rootfs.cpio -nographic -net nic -net bridge,br=mybridge -s
Теперь я хотел бы добавить жесткий диск для постоянного хранения, а затем передать управление из rootfs на основе busybox initrd в полноценную версию, предлагаемую с Linux. Поэтому я добавляю его в командную строку
sudo qemu-system-arm -m 1024M -M vexpress-a9 -D qemu.log -drive if=none,format=raw,file=disk.img -kernel buildroot-2019.02.5/output/images/zImage -dtb buildroot-2019.02.5/output/images/vexpress-v2p-ca9.dtb -append "console=ttyAMA0,115200 kgdboc=kbd,ttyAMA0,115200 ip=dhcp nokaslr" -initrd buildroot-2019.02.5/output/images/rootfs.cpio -nographic -net nic -net bridge,br=mybridge -s
Конечно, я сначала создаю образ диска и форматирую его как ext2: qemu-img create disk.img 10G && mkfs.ext2 -F disk.img
Из сообщений журнала я вижу, что это вообще не удалось обнаружить. Может кто-нибудь подвести итог, как блочные устройства работают с Qemu. Я знаю, что старая -hda
была изменена на более новую -drive
, которая может сочетать громоздкую спецификацию передней и задней частей по отдельности. Но я не знаю основ и почему у меня возникает эта проблема.
В основном я ищу switch_root
от initrd до полноценной корневой файловой системы Linux, но это только первый шаг.
1 ответ
Из сообщений журнала я вижу, что это вообще не удалось обнаружить.
Это потому, что вы не создали устройство QEMU, подключенное к этому диску.
Может кто-нибудь подвести итог, как блочные устройства работают с Qemu.
У вас есть интерфейсы, которые представляют какое-то оборудование для гостя, и у вас есть серверы, которые взаимодействуют с резервным хранилищем на хосте. Вы создаете интерфейс с опцией -device
и блокируете бэкэнд с опцией -drive
. Вы даете диску идентификатор и ссылаетесь на этот идентификатор с устройства. Например. вот как я подключаю устройство virtio-blk-pci к образу диска на моей виртуальной машине: -device virtio-blk-pci,drive=vd0 -drive file=rootfs.ext2,format=raw,id=vd0
.
qemu-system-arm -device help
предоставит вам список поддерживаемых типов устройств, а qemu-system-arm -device <specific-device-type>,help
покажет подробную справку по свойствам specific-device-type
.
Похожие вопросы
Новые вопросы
arm
Этот тег используется для вопросов, связанных с ARM (Advanced Riss Machine) семейством компьютеров; Это машины или электроника, работающие на процессорных процессорах ARM или системы с использованием ядра руки. Для вопросов, связанных с Azure, используйте [Azure-Resource-Manager].