我最近开始在 M1 Mac 上进行开发,我想虚拟化一个简单的 Linux 系统。Multipass 似乎是一个好主意,直到我为转发端口而苦苦挣扎。
因此我创建了一个非常简单的 qemu 机器,模仿了 multipass 模拟其实例的方式,如下所示:
qemu-system-aarch64 \
-machine virt,highmem=off \
-accel hvf \
-name ubuntu-qemu \
\
-cpu cortex-a72 \
-smp 4 \
\
-m 4096 \
\
-drive file=edk2-aarch64-code.fd,if=pflash,format=raw,readonly=on \
-drive file=ubuntu-os.qcow2,if=virtio \
\
-nographic \
\
-net nic,model=rtl8139 \
-net user,hostfwd=tcp::2222-:22 \
\
-fsdev local,id=projects,path=/Users/cdf/Projects,security_model=none \
-device virtio-9p-pci,fsdev=projects,mount_tag=projects
这将启动一个非常简单的 ubuntu 机器,运行良好,我可以转发端口。
我唯一做不到正确的事情是如何共享文件夹,正如你上面看到的,我正在尝试:
-fsdev local,id=projects,path=/Users/cdf/Projects,security_model=none \
-device virtio-9p-pci,fsdev=projects,mount_tag=projects
在实例上,我创建了一个条目/etc/fstab
来安装projects
projects /home/cdf/projects 9p trans=virtio 0 0
在某种程度上,这似乎是有效的
我可以访问共享,但是无法对共享进行更改:
cdf@ubuntu:~$ ll ./projects
ls: ./projects: Network dropped connection on reset
ls: ./projects/.: Network dropped connection on reset
ls: ./projects/yoco: Network dropped connection on reset
ls: ./projects/cdf: Network dropped connection on reset
total 4
drwxr-xr-x 4 503 dialout 128 Mar 24 07:26 ./
drwxr-xr-x 14 cdf cdf 4096 Mar 26 18:37 ../
drwxr-xr-x 4 503 dialout 128 Mar 24 07:27 cdf/
我也想让所有者和组cdf
像多通道坐骑一样。我不太清楚如何让坐骑正常工作,有人能帮我吗?
答案1
我使用的是 Intel Mac,但在尝试安装 9p 卷时遇到了同样的“重置时网络断开连接”错误。对我来说,version=9p2000.u
在 fstab 中添加此行似乎有帮助。这是基于NixOS 问题中的一条评论。我的完整 /etc/fstab 行如下所示:
Downloads /home/gsf/Downloads 9p _netdev,trans=virtio,version=9p2000.u,msize=104857600 0 0
这是我的qemu命令中的相关参数:
-virtfs local,path=/Users/gsf/Downloads,security_model=none,mount_tag=Downloads
我security_model=none
最终修改了客户机中的用户和组 ID,使其与主机匹配。您可能更幸运security_model=mapped
。我在 gist 中发布了一些有关我的设置的说明使用 QEMU 在 macOS 上安装 Ubuntu VM。