如何在 qemu 机器上使用持久存储

How to use persistent storage on a qemu machine

我使用 this 指南编译了一个 linux ARM 映像和一个根 FS(使用 buildroot,而不是 busybox)。我能够 运行 使用 rootFS 成功地制作图像。但是,如果我在 /root 中创建一个文件,如果我退出机器并再次 运行 它就会消失。我希望能够更改 rootFS,例如,创建文件和安装包,我已经用尽了谷歌搜索如何为此目的添加 --drive 或 --device。 另外,我希望能够使用存储来共享主机和来宾之间的文件。

这是我当前使用的 qemu 命令行:

qemu-system-arm -M vexpress-a9 -dtb 
<linux>/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -kernel 
<linux>/arch/arm/boot/zImage -append "console=ttyAMA0 root=/dev/sda" 
-initrd ~/buildroot-2018.05/output/images/rootfs.cpio --nographic 
<somedir>/hd0.img

其中 hd0.img 是使用 qemu-img 创建的。

我希望得到答复以及对正在发生的事情进行更深入的解释。

谢谢!

对于 vexpress-a9,唯一可用的磁盘是模拟 SD 卡。您可以使用“-drive if=sd,cache=writeback,file=yoursd.img”设置一个。请注意,模拟的 SD 不是很快。此外,您还需要确保您的来宾内核编译了 SD 控制器和 SD 卡支持,并且您的 initrd 将挂载并转向它。

对于具有更灵活选项(支持更多 RAM、性能更好的磁盘和网络等)的 QEMU VM,您应该查看 'virt' 开发板。 'vexpress-a9' 仅在您特别想要 运行 在该开发板的仿真上使用的图像时才真正推荐。