是否可以在不运行 QEMU 的情况下将文件复制到 QEMU 映像?

Posted

技术标签:

【中文标题】是否可以在不运行 QEMU 的情况下将文件复制到 QEMU 映像?【英文标题】:Is it possible to copy files to QEMU image without running QEMU? 【发布时间】:2022-01-17 21:43:03 【问题描述】:

我正在使用 QEMU 运行 CI。在我开始运行测试之前,我通过运行将文件复制到 QEMU 中,等待它完成启动,将文件从 HOST 复制到 QEMU 映像中,然后关闭会话(文件在映像中)。之后,我开始运行我的测试...... 是否可以在不运行 QEMU 的情况下将文件复制到 QEMU 映像并等待它启动?

【问题讨论】:

是的,您可以挂载映像并将文件复制到挂载的文件系统中。如何 - 取决于您的图像具有什么格式以及您使用的主机操作系统。 我在目标上使用 Ubuntu 20.04,在主机上使用 Ubuntu 18。 【参考方案1】:

在此链接中找到答案 https://gist.github.com/shamil/62935d9b456a6f9877b5

第 1 步 - 在主机上启用 NBD

modprobe nbd max_part=8

第 2 步 - 将 QCOW2 连接为网络块设备

qemu-nbd --connect=/dev/nbd0 /var/lib/vz/images/100/vm-100-disk-1.qcow2

第 3 步 - 查找虚拟机分区

fdisk /dev/nbd0 -l

第 4 步 - 从 VM 挂载分区

mount /dev/nbd0p1 /mnt/somepoint/

第 5 步 - 完成后,卸载并断开连接

umount /mnt/somepoint/
qemu-nbd --disconnect /dev/nbd0
rmmod nbd

【讨论】:

以上是关于是否可以在不运行 QEMU 的情况下将文件复制到 QEMU 映像?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不删除源文件的情况下将数据从 HDFS 加载到配置单元?

是否可以在不运行我自己的服务器的情况下将 opengraph 发布到用户的墙/feed/ticker 上?

是否可以在不使用 LoadLibrary 的情况下将函数“复制”到另一个进程中并在线程中执行它?

是否可以在不使用 jsp:include 的情况下将 jspf 文件添加到 jsp 页面?

如何在不复制数据的情况下将 OpenCV Mat 发送到 MATLAB 工作区?

如何在不导致复制的情况下将 char 数据附加到 std::vector