【ShuQiHere】如何在 Linux 上虚拟化 macOS Catalina
【ShuQiHere】
📜 目录
- 背景介绍
- 准备工作
- 安装 Quickemu 和依赖项
- 下载 macOS Catalina 安装镜像
- 手动移动缺失的文件
- 启动虚拟机
- 常见问题与解决方案
- 总结
背景介绍
🌍 macOS 虚拟化(Virtualization)是一种在非 Apple 硬件(如 Linux 设备)上运行 macOS 的方法,可以帮助用户在 Linux 环境中体验 macOS 系统。无论你是开发者、设计师,还是单纯好奇者,虚拟化都能让你在同一台计算机上运行多个操作系统,极大地提升工作效率和灵活性。
由于 Apple 的政策和 macOS 的硬件要求,在非 Apple 硬件上虚拟化 macOS 需要一些额外的步骤和配置,尤其是对于 macOS Catalina(2019 年发布)这样的旧版本。本教程将详细介绍如何在 Linux 上使用 Quickemu 和 QEMU 来虚拟化 macOS Catalina。
准备工作
🖥️ 硬件要求
确保你的计算机满足以下硬件要求,以获得流畅的虚拟化体验:
- 处理器(Processor):Intel Core i5 / AMD Ryzen 5 或更高,建议至少 4 核,支持虚拟化技术(如 Intel VT-x 或 AMD-V)。
- 内存(RAM):至少 8GB,建议 16GB,以确保虚拟机和主机系统都能流畅运行。如果你打算运行多个应用程序,建议更多的内存以提升性能。
- 磁盘空间(Disk Space):至少 50GB 的可用存储空间。macOS 安装和后续更新可能需要大量空间,因此建议准备 100GB 以上。
- 图形处理器(GPU):虽然虚拟化主要依赖 CPU 和内存,但拥有支持硬件加速的 GPU 可以提升图形性能,特别是在运行图形密集型应用时。
🔧 软件要求
- Linux 系统(Linux OS):推荐使用 Ubuntu 22.04 或其他基于 Debian 的发行版。其他发行版如 Fedora 或 Arch Linux 也可以使用,但配置步骤可能会有所不同。
- Quickemu 和 QEMU:用于管理和运行虚拟机的软件。Quickemu 是一个封装了 QEMU 的脚本,简化了虚拟机的配置和启动过程。
安装 Quickemu 和依赖项
要开始虚拟化 macOS Catalina,首先需要安装 Quickemu 及其依赖项。
1. 通过 PPA 安装 Quickemu
对于基于 Debian 的系统(如 Ubuntu),可以通过添加 PPA 来安装 Quickemu:
sudo apt-add-repository ppa:flexiondotorg/quickemu
sudo apt update
sudo apt install quickemu
💡 提示:PPA 是个人维护的软件仓库,可以更方便地安装一些特定版本的软件包。但请确保你信任该 PPA 的维护者,以避免潜在的安全风险。
2. 手动安装依赖项
除了 Quickemu,还需要安装一些其他工具和库,以确保虚拟化环境的正常运行:
sudo apt install git qemu jq mesa-utils pciutils procps python3 genisoimage usbutils util-linux sed socat spice-client-gtk libtss2-tcti-swtpm0 xdg-user-dirs zsync unzip
这些工具的作用如下:
- git:用于从代码仓库获取软件。
- qemu:底层虚拟化软件,提供硬件模拟。
- jq:用于处理 JSON 数据,常用于脚本自动化。
- mesa-utils 和 spice-client-gtk:用于图形显示和远程桌面协议支持。
- genisoimage:用于生成 ISO 文件。
- 其他工具:如
sed
,socat
等,用于系统配置和网络通信。
下载 macOS Catalina 安装镜像
使用 Quickemu 的 Quickget 工具可以轻松下载 macOS 的恢复镜像。
在终端中运行以下命令下载 macOS Catalina 的安装镜像:
quickget macos catalina
⚠️ 注意:下载过程可能需要一些时间,具体取决于你的网络速度。此外,你可能会遇到一些网络错误,尤其是在下载 OpenCore 和 OVMF 固件时,提示“Failed to connect to raw.githubusercontent.com”。这是由于网络连接或防火墙的限制导致的。你可以尝试以下解决方法:
- 使用 VPN:切换到不同的网络,或者使用 VPN 服务绕过网络限制。
- 手动下载:从其他设备或网络环境下手动下载所需的文件,然后手动移动到相应目录。
手动移动缺失的文件
如果 Quickget 无法成功下载 OpenCore 和 OVMF 文件,可以手动从已有的资源目录中移动这些文件。假设这些文件位于 /home/你的用户名/Downloads/OSX-KVM-master/
,你可以使用以下命令将它们移动到 macos-catalina 目录中:
# 移动 OpenCore.qcow2 文件到 macos-catalina 目录
mv /home/你的用户名/Downloads/OSX-KVM-master/OpenCore/OpenCore.qcow2 /home/你的用户名/macos-catalina/# 移动 OVMF_CODE.fd 文件到 macos-catalina 目录
mv /home/你的用户名/Downloads/OSX-KVM-master/OVMF_CODE.fd /home/你的用户名/macos-catalina/# 移动 OVMF_VARS-1920x1080.fd 文件到 macos-catalina 目录
mv /home/你的用户名/Downloads/OSX-KVM-master/OVMF_VARS-1920x1080.fd /home/你的用户名/macos-catalina/
🔍 解释:
- OpenCore:这是一个开源的引导加载程序,允许 macOS 在非 Apple 硬件上启动。它通过模拟 Apple 的固件和驱动程序,绕过 macOS 的硬件限制。
- OVMF(Open Virtual Machine Firmware):基于 UEFI 的固件,用于支持 QEMU 等虚拟化环境中的现代操作系统启动。它提供了与真实硬件类似的启动环境,确保 macOS 能够正常启动。
如何获取这些文件?
如果你没有现成的 OpenCore 和 OVMF 文件,可以从以下资源获取:
- OSX-KVM GitHub 仓库:https://github.com/kholia/OSX-KVM
- 这是一个社区维护的项目,提供了详细的 macOS 虚拟化指南和所需的资源文件。请确保从官方仓库获取最新和安全的文件。
启动虚拟机
文件准备就绪后,你可以启动虚拟机。使用 Quickemu,启动过程变得非常简便:
quickemu --vm macos-catalina.conf
💡 提示:启动后,你会看到 macOS 安装界面。按照屏幕上的提示完成 macOS 的安装过程。这个过程可能需要一些时间,具体取决于你的硬件性能。确保你为虚拟机分配了足够的 CPU 和内存资源,以提高安装速度和运行性能。
配置文件说明
macos-catalina.conf
文件包含了虚拟机的配置参数。你可以根据需要编辑这个文件,以调整虚拟机的性能和功能。例如:
cpu_cores="4"
ram="16G"
display_resolution="2560x1600"
- cpu_cores:分配给虚拟机的 CPU 核心数。更多的核心数可以提升虚拟机的性能,但也会占用主机的资源。
- ram:分配给虚拟机的内存大小。确保虚拟机有足够的内存运行 macOS 及其应用程序。
- display_resolution:设置虚拟机的显示分辨率,以适应你的屏幕。
常见问题与解决方案
在虚拟化 macOS Catalina 的过程中,你可能会遇到一些常见问题。以下是一些常见问题及其解决方案:
1. 网络错误导致无法下载 OpenCore 文件
问题描述:运行 quickget
命令时,提示“Failed to connect to raw.githubusercontent.com”。
解决方法:
- 使用 VPN:尝试连接到不同的网络,或者使用 VPN 服务绕过网络限制。
- 手动下载:从其他设备或网络环境下手动下载 OpenCore 和 OVMF 文件,然后按照上述“手动移动缺失的文件”步骤进行操作。
2. “Failed to start OpenCore image” 错误
问题描述:启动虚拟机时,出现“Failed to start OpenCore image”错误。
解决方法:
-
重置 NVRAM:NVRAM(非易失性随机存取存储器)存储了系统配置数据。尝试重置 NVRAM 可以解决引导问题。
qemu-system-x86_64 -L . -m 8192 -cpu Penryn,vendor=GenuineIntel,kvm=on,+sse3,+sse4.2,+aes,+xsave,+avx,+xsaveopt,+xsavec,+xgetbv1,+avx2,+bmi2,+smep,+bmi1,+fma,+movbe,+invtsc \ -machine q35,accel=kvm,usb=off -smp 4,cores=4 \ -device isa-applesmc,osk="insert-your-OSK-here" \ -smbios type=2 \ -drive if=pflash,format=raw,readonly,file=OVMF_CODE.fd \ -drive if=pflash,format=raw,file=OVMF_VARS.fd \ -vga std -device ich9-intel-hda -device hda-output \ -drive id=ESP,if=none,format=qcow2,file=OpenCore.qcow2 \ -device ide-hd,bus=ide.2,drive=ESP \ -drive id=SystemDisk,if=none,file=macos-catalina.qcow2,format=qcow2 \ -device ide-hd,bus=ide.0,drive=SystemDisk \ -netdev user,id=net0 -device e1000-82545em,netdev=net0 \ -monitor stdio
-
检查配置文件路径:确保
macos-catalina.conf
文件中 OpenCore 和 OVMF 文件的路径正确。路径错误可能导致引导失败。
3. 安装过程中的权限错误
问题描述:在安装过程中,出现“Package Authoring Error”或其他权限相关错误。
解决方法:
- 忽略错误:这些错误通常与缺少某些 Apple 内部组件有关,但不会影响虚拟化安装的成功。你可以暂时忽略这些错误,继续观察安装进度。
- 以管理员权限运行:确保你以具有足够权限的用户身份运行虚拟机,避免权限不足导致的问题。
4. CPU 和内存调整
问题描述:虚拟机运行缓慢或资源不足。
解决方法:
-
增加 CPU 核心数和内存:编辑
macos-catalina.conf
文件,调整cpu_cores
和ram
参数。例如:cpu_cores="4" ram="16G"
-
确保主机有足够资源:在分配更多资源给虚拟机之前,确保主机系统有足够的剩余资源,以避免影响主机的性能。
5. 无法识别 USB 设备
问题描述:虚拟机无法识别连接的 USB 设备。
解决方法:
-
检查 USB 配置:确保虚拟机配置文件中正确配置了 USB 控制器和设备。例如,在
macos-catalina.conf
文件中添加:-device usb-ehci,id=ehci \ -device usb-kbd \ -device usb-mouse
-
安装必要的驱动程序:在 macOS 虚拟机中,确保已安装所需的 USB 驱动程序,以支持不同类型的 USB 设备。
总结
💡 在 Linux 上虚拟化 macOS Catalina 的过程需要一些耐心和细心配置,但最终可以帮助你在非 Apple 设备上体验 macOS 系统。这对于开发者、设计师和 macOS 爱好者来说是一个非常有价值的项目。
通过本教程,你学会了如何配置环境、安装必要的依赖项、下载并手动移动文件,以及启动虚拟机并解决常见问题。尽管这个过程可能看起来有些复杂,但每一步都是值得的,因为它将使你能够在 Linux 系统上享受 macOS 的独特体验。🚀✨
额外建议
- 定期备份:在配置和运行虚拟机时,定期备份关键文件和配置,以防止数据丢失或配置错误。
- 保持软件更新:确保你的 Linux 系统、Quickemu 和 QEMU 都保持最新版本,以获得最佳的兼容性和性能。
- 参与社区:加入相关的论坛和社区(如 OSX-KVM GitHub),获取最新的资源、技巧和支持。
如果你在虚拟化过程中遇到任何问题,可以参考本文中的解决方案,也可以在评论区留下你的问题,我们会尽力帮助你解决!🔧🛠️
希望你能成功虚拟化 macOS Catalina 并享受这个过程!🎉🍏
资源链接
- OSX-KVM GitHub 仓库:https://github.com/kholia/OSX-KVM
- Quickemu 官方文档:https://quickemu.app/
- QEMU 官方网站:https://www.qemu.org/
感谢阅读!如果你觉得这篇文章对你有帮助,请分享给更多需要的朋友,并在下方留言交流你的经验和问题。