虚拟机镜像迁移需用符号链接实现:先复制镜像到外置盘,再删除原文件夹,最后在原路径创建指向外置盘的绝对路径软链接,确保虚拟机软件正常识别且I/O走外置盘。
把虚拟机镜像文件(如 .pvm、.vmwarevm 或 .qcow2)用符号链接方式迁移到非系统盘,核心是保持原路径可用、实际数据存于外置盘、不破坏虚拟机软件识别逻辑。这不是简单复制粘贴,而是通过软链接“欺骗”系统和虚拟机软件,让它以为文件还在原处。
虚拟机镜像迁移前的准备
- 确认目标外置盘已格式化为 APFS(推荐)或 Mac OS 扩展(日志式),并已挂载(例如
/Volumes/MySSD)。 - 关闭所有正在运行的目标虚拟机,避免文件被占用或写入中断。
- 查清当前虚拟机包的真实存储路径:
- Parallels Desktop 默认在
~/Parallels/ - VMware Fusion 默认在
~/Documents/Virtual Machines/ - VirtualBox 默认在
~/VirtualBox VMs/ - QEMU/KVM 镜像常放在自定义路径(如
~/VMImages/),需手动确认。
- Parallels Desktop 默认在
用终端创建符号链接迁移镜像
以 Parallels Desktop 的 Windows 11.pvm 为例,将它从系统盘迁至外置 SSD:
# 1. 先完整复制到外置盘(保留所有隐藏文件和权限) cp -R ~/Parallels/"Windows 11.pvm" /Volumes/MySSD/ # 2. 移除原位置的整个文件夹(⚠️不是删快捷方式,是删原包) rm -rf ~/Parallels/"Windows 11.pvm" # 3. 在原位置重建指向外置盘的符号链接 ln -s "/Volumes/MySSD/Windows 11.pvm" ~/Parallels/"Windows 11.pvm"
完成之后:
利用 macOS 原生能力实现本地语音识别与合成。通过 yap (Apple Speech.framework) 进行语音转文字,通过 say + ffmpeg 进行文字转语音。完全离线,无需 API 密钥。具备音质检测与智能选声功能。
- Parallels Desktop 控制中心仍显示该虚拟机,双击可正常启动;
- 所有快照、备份、配置均保持有效;
- 实际读写发生在
/Volumes/MySSD/,系统盘仅保留几 KB 的链接文件。
注意事项与常见问题
-
不要用 Finder 拖拽代替
cp -R:Finder 复制可能忽略隐藏文件(如.pvs、.hdd内部元数据),导致虚拟机无法加载。 -
链接路径必须用绝对路径:
ln -s不支持相对路径跨卷,/Volumes/MySSD/开头不可省略。 -
如果虚拟机软件报“文件损坏”或“无法识别”:
- 检查外置盘是否启用“忽略所有权”(右键盘符 → “显示简介” → 勾选“忽略此卷宗的所有者”);
- 确保外置盘未休眠或意外断开(macOS 可能自动卸载未活动卷宗);
- 重启虚拟机软件,有时缓存未刷新会导致识别延迟。
-
多虚拟机批量处理:可写简短脚本统一操作,例如:
for vm in ~/Parallels/*.pvm; do name=$(basename "$vm") cp -R "$vm" /Volumes/MySSD/ rm -rf "$vm" ln -s "/Volumes/MySSD/$name" "$vm" done
迁移后验证是否生效
- 打开“访达”,进入
~/Parallels/,点击该.pvm文件,按Cmd+I查看“通用”栏——“种类”应显示“符号链接”,“位置”指向/Volumes/MySSD/…; - 启动虚拟机,打开内部磁盘工具(如 Windows 的磁盘管理),观察写入性能是否明显提升(说明 I/O 已走外置盘);
- 在虚拟机中存一个测试文件,回到 macOS 终端执行:
ls -l "$(readlink ~/Parallels/"Windows 11.pvm")/Snapshots/"
若能列出快照目录内容,说明链接完全穿透、功能完整。
不复杂但容易忽略

















