我重新编译了 Debian 内核,并启用了所需的选项QEMU/9psetup使用 Homebrew 安装了 QEMU (8.2.1),并按如下方式启动它:
/usr/local/bin/qemu-system-x86_64 \
-M accel=hvf \
--cpu host \
-hda /Users/lucas/.debian/debian.img \
-m 8G \
-smp 4 \
-nographic \
-net nic \
-net user,hostfwd=tcp::3000-:3000,hostfwd=tcp::2222-:22 \
-virtfs local,path="$HOME",mount_tag=host0,security_model=passthrough,id=host0 \
但是,host0
使用以下命令挂载时,只有root
用户才能以只读模式访问该文件夹。
mount -t 9p -o trans=virtio,version=9p2000.L host0 /mnt/
答案1
要使用p9
,security_model=passthrough
必须以超级用户身份启动 QEMU。如果您想以普通用户身份使用它,则需要切换到security_model=mapped-xattr
。
/usr/local/bin/qemu-system-x86_64 \
-M accel=hvf \
--cpu host \
-hda /Users/user/.debian/debian.img \
-m 8G \
-smp 4 \
-nographic \
-net nic \
-net user,hostfwd=tcp::3000-:3000,hostfwd=tcp::2222-:22 \
-virtfs local,path=$HOME,mount_tag=share,security_model=mapped-xattr,id=share,fmode=0644,dmode=0755`
此外,您还需要使用bindfs
来翻译 macOS 和 Linux 元数据,如下所示https://github.com/utmapp/UTM/discussions/4458#discussioncomment-3818945
sudo bindfs --map=501/1000:@20/@1000 /mnt/macOS /home/user/macOS
但是,在该链接中fstab
,当在挂载完成之前执行 bindfs 时,分区未挂载。要解决此问题,需要添加选项x-systemd.automount
(https://unix.stackexchange.com/a/490282/421376)。
share /mnt/macos 9p trans=virtio,version=9p2000.L,rw,_netdev,nofail 0 0
/mnt/macos /home/user/macOS fuse.bindfs map=501/1000:@20/@1000,nonempty,x-systemd.requires=/mnt/macos,x-systemd.automount 0 0