知方号

知方号

在QEMU虚拟机和宿主机之间传输文件

在QEMU虚拟机和宿主机之间传输文件

文章目录 1. 使用共享文件夹(推荐)2. 使用网络传输文件(推荐)3. 使用ISO映像

在QEMU虚拟机和宿主机之间传输文件有多种方法,以下是一些常见的方法:

1. 使用共享文件夹(推荐)

首先,在宿主机上创建一个共享目录,然后使用QEMU的-virtfs选项将其挂载到虚拟机上。

在宿主机上创建一个共享目录,例如:

mkdir /mnt/shared

将文件放入此共享目录。

启动QEMU时,将共享目录挂载为一个虚拟文件系统,例如:

qemu-system-arm ... -virtfs local,path=/mnt/shared,mount_tag=host0,security_model=passthrough,id=host0

其中,“-virtfs”选项指定了共享文件夹的参数,“local”表示共享文件夹是本地文件夹,“path”指定了共享文件夹的路径,“mount_tag”指定了共享文件夹在虚拟机中的挂载点,“security_model”指定了安全模型,“id”是共享文件夹的标识符。

在虚拟机内部,挂载共享文件夹,例如:

mkdir -p /mnt/sharedsudo mount -t 9p -o trans=virtio,version=9p2000.L host0 /mnt/shared

其中,“-t”选项指定了文件系统类型,“9p”是QEMU支持的文件系统类型,“trans”指定了传输协议,“version”指定了文件系统版本,“host0”是共享文件夹的标识符,“/mnt/shared”是共享文件夹在虚拟机中的挂载点。

此时,/mnt/shared目录将指向宿主机上的/mnt/shared目录,可以在两者之间传输文件。

tips:每次重启QEMU虚拟机都要重新挂载,可以把上述 mount 命令做成开机自启。

2. 使用网络传输文件(推荐)

通过SSH或其他网络传输工具(如FTP、HTTP等),在宿主机和虚拟机之间传输文件。首先需要在虚拟机上安装SSH服务器(如果没有的话),然后通过虚拟机的IP地址(例如,使用-user-net选项配置的虚拟机网络)访问它。

推荐使用scp命令,或者将QEMU中的22端口映射到宿主机的其他端口上,方便使用Xftp简化操作。

安装SSH服务器:

# 安装openssh-serversudo apt-get install openssh-server# 查看状态sudo systemctl status ssh# 开机自启sudo systemctl enable ssh

编辑 /etc/ssh/sshd_config 文件,解除以下内容的注释

Port 22ListenAddress 0.0.0.0ListenAddress ::PermitRootLogin yesPasswordAuthentication yes

重新加载配置文件

sudo service sshd reload

获取IP地址:

ip addr show 用scp命令 scp file.txt username@:/path/to/destination

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。