如何在 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' 仅在您特别想要 运行 在该开发板的仿真上使用的图像时才真正推荐。
我使用 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' 仅在您特别想要 运行 在该开发板的仿真上使用的图像时才真正推荐。