All Articles

MAC UTM 虚拟机使用

1. 前言

一般来说使用MAC操作系统都会安装一个WIN虚拟机,来协助一些需要WIN的操作。因为之前的MAC也是使用的Intel的芯片,所以可以直接在虚拟机里安装x86的WIN,这样基本上就覆盖了最经典的使用场景。

而最新的M1 MAC是ARM架构,且因为Rosetta不支持虚拟化,就导致了很多主流的虚拟机软件,类似Parallels都不支持在M1的MAC上安装x86架构的WIN10。

所以一旦有需求要使用x86的Windows,那就不能使用那些主流的虚拟机软件了,只能找一些偏门的软件。

2. 介绍

实际上可选的并不多,或者说最后我就只找到了QEMU,而在其基础上进行封装的UTM应该说是最佳选择了。

相关链接:

3. 安装

关于在MAC上安装UTM并安装虚拟操作系统的方法,参考这篇就够了:Install Ubuntu ARM64 on Apple M1

因为这篇讲的是如何安装ARM64架构的虚拟操作系统,因此对于需要安装x86虚拟系统的用户需要自行调整:

  1. In System, select the “ARM64 (aarch64)” architecture, and specify the amount of memory. At least half of your computer’s total memory is recommended for performance.

在这里选择x86_64,而不是ARM64。其他都一致即可。最后不要忘记在虚拟机内安装:sudo apt install spice-vdagent spice-webdavd

4. 文件共享

因为装过一次之后就没怎么使用过UTM了,而且也没打算装第二次。这里就留点之前的笔记:

关闭虚拟机
在面板里选择共享目录
重开虚拟机
curl http://127.0.0.1:9843/ 查看是否有可访问内容
sudo apt install davfs2
mkdir -p /home/jonathan/mnt
sudo mount -t davfs -o uid=jonathan -o gid=jonathan http://127.0.0.1:9843/ /home/jonathan/mnt
sudo mount -t davfs http://127.0.0.1:9843/ /home/jonathan/mnt
skip username & password, no such setting

使用umount来卸载挂载盘
sudo umount /home/jonathan/mnt
会显示 target is busy
需要安装工具来查看使用者
sudo apt install psmisc
查看使用情况
fuser -mv /home/jonathan/mnt
杀掉使用者进程
fuser -kv /home/jonathan/mnt

自启动装载:
https://github.com/utmapp/UTM/wiki/Useful-tips#permanently-via-fstab

cat << EOF | sudo tee -a /etc/fstab

# UMT webdav server
http://localhost:9843 /home/jonathan/mnt davfs _netdev,user,uid=jonathan,gid=jonathan 0 0
EOF

cat << EOF | sudo tee -a /etc/davfs2/secrets

# fake credentials for UMT webdav server
/home/jonathan/mnt hello world
EOF

sudo mount /home/jonathan/mnt

5. 端口转发

主要还是为了虚拟机和宿主机之间能像两台主机一样进行ssh连接:

网络面板有个高级设置,勾选
下面会有个新建,使用TCP,然后guest(虚拟机)设置0.0.0.0端口22,主机(宿主机)设置127.0.0.1端口52222
重新启动虚拟机,然后自宿主机上进行ssh登录
ssh jonathan@localhost -p 52222

EOF

Published 2021/10/5

Some tech & personal blog posts