Linux下使用KVM虚拟机运行MacOS和Checkra1n越狱工具


Note:

未经授权禁止转载!如有公众号等自媒体需要转发,请联系本人。
在这个浮躁的社会,请保留一丝最后的善良。
Email: [email protected]
本文简书链接:https://www.jianshu.com/p/bc9b232f8aae


关键词:

Checkra1n, KVM, Linux, MacOS, IOMMU, AMD


背景:

目前是2019年11月14日,北京时间01点26分。
Checkra1n刚刚发布了v0.9.3 beta版,仅支持MacOS系统。
很多朋友手头上没有Mac设备,于是选择了VM虚拟机和黑苹果方案。
但!
VMware部署好后却被告知无法使用VM虚拟机进行越狱。
tb花钱装了黑苹果,却发现自己是AMD的CPU报错-31。
因而诞生此基于Linux和KVM的Checkra1n越狱方案。


参考及感谢:

@foxlet https://github.com/foxlet/macOS-Simple-KVM
@foxlet https://github.com/foxlet/vmra1n
本教程的基础指导与方案均来自@foxlet


教程开始

本人将跳过Linux系统(Ubuntu)的安装指导,请各位善用百度。


硬件前提与设置
  • 支持AMD-V(AMD)或VT-x(Intel)的主板
  • 支持IOMMU的主板芯片组 (VT-d)
    1、在BIOS主板设置中打开CPU虚拟化支持,
    (例如本人是AMD Ryzen的CPU,则在主板中打开svm选项)
    2、在BIOS主板设置中打开IOMMU支持
    ( 如果你的BIOS带有搜索选项,搜索iommu并设置为“允许”)
软件前提与设置
  • 基于EFI与grub引导的Ubuntu系统,其他发行版Linux也可以
    (这个基本上你安装好Ubuntu就是了)

流程
一、Enable Kernel Features(开启内核支持)

打开终端,依次运行如下命令

sudo apt-get update
sudo apt-get install git

克隆工具的远程仓库,运行如下命令

git clone https://github.com/foxlet/macOS-Simple-KVM.git
git clone https://github.com/foxlet/vmra1n.git

接下来打开grub的iommu引导支持

sudo vi /etc/default/grub

在GRUB_CMDLINE_LINUX_DEFAULT行的引号内添加如下内容:

AMD玩家添加如下内容
iommu=pt amd_iommu=on

Intel玩家添加如下内容
iommu=pt intel_iommu=on

例如我的是(AMD)

添加前
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash "
添加后
GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash iommu=pt amd_iommu=on”

添加好后,ECS :wq 保存,执行如下命令:

sudo update-grub
sudo grub-mkconfig

输入reboot 重启系统

二、Get Some Information(获取USB信息)

重启完毕后,打开终端,输入如下命令

cd vmra1n
./lsiommu.sh

如果步骤一正确操作,此时你的终端会滚动一大堆信息
此时使用grep命令筛选USB信息,即我们想要的信息

./lsiommu.sh | grep USB

例如本人的信息为:

IOMMU Group 12 03:00.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset USB 3.1 xHCI Controller [1022:43bb] (rev 02)
IOMMU Group 16 1d:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) USB 3.0 Host Controller [1022:145c]

找到与USB3.0相关的iommu组(看名字即可)

例如本人的是第二条

IOMMU Group 16 1d:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) USB 3.0 Host Controller [1022:145c]

接下来从此条信息中找到BDF ID 和PCI ID并记下
例如我的BDF ID则是1d:00.3
例如我的PCI ID 则是1022:145c

三、Isolate the Controller(隔离USB控制器)

编辑 rebind.sh

vi rebind.sh

将BIND_PID1和BIND_BDF1更改为步骤二记录的信息:
BIND_PID1则是"(刚刚记录的PCI ID)"
BIND_BDF1则是"0000:(刚刚记录的BDF ID)"

例如我的是
BIND_PID1=“1022 145c”
BIND_BDF1=“0000:1d:00.3”

esc :wq保存
然后sudo运行 rebind.sh

sudo ./rebind.sh

此时你的键盘和鼠标,或者一切在USB3.0接口设备将失效!!!
请重新拔插鼠标和键盘,
或者将他们插在USB2.0接口

四、安装MacOS

依次运行如下命令安装依赖

cd
cd macOS-Simple-KVM
sudo apt-get install qemu-system qemu-utils python3 python3-pip

步骤一:

运行如下命令,开始下载BaseSystem.dmg

./jumpstart.sh --mojave

Linux下使用KVM虚拟机运行MacOS和Checkra1n越狱工具_第1张图片

步骤二:

运行如下命令,部署qemu虚拟机

qemu-img create -f qcow2 MyDisk.qcow2 32G

接着编辑basic.sh,将下面两行添加至末尾

-drive id=SystemDisk,if=none,file=MyDisk.qcow2
-device ide-hd,bus=sata.4,drive=SystemDisk \

ecs :wq保存
sudo 运行 basic.sh 开启虚拟机!

sudo ./basic.sh

步骤三:

如果上面没有错误,接下来将会看到熟悉的Clover
键盘左右选择 “Boot macOS Install from macOS Base System"
直接回车

经过漫长的引导进入了此界面
Linux下使用KVM虚拟机运行MacOS和Checkra1n越狱工具_第2张图片

(接下来的步骤简单说)

  • 进入最下面的Disk Utility
  • 在左边选择31-32GB的分区,选择Erease,名称自定,格式选择APFS
  • 完成后退出Disk Utility
  • 选择Install macOS
  • 选择刚刚格式化好的分区,开始安装

(现在就是拼网速的时候了)
(如果提示无网络连接,请右上角关闭虚拟机,再运行一次 sudo ./basic.sh 重新开启虚拟机)
Linux下使用KVM虚拟机运行MacOS和Checkra1n越狱工具_第3张图片

下载完成后会自动黑屏重启

第二次进入Clover选择
"Boot macOS Install Prebooter from Preboot"!!!(切记,别进错了)

引导进入背景为黑色,且只有进度条和倒计时的界面
代表正在安装

经过30分钟漫长等待,虚拟机再自动黑屏重启一次
这次选择
Boot macOS from (你刚才分区的名字)
此分区就是安装好的Mac系统

接下来就是常规的MacOS安装后的配置,这里我就不详述
成功后进入MacOS主界面,这部分结束

五、将USB控制器注入至MacOS虚拟机内

如果虚拟机在运行,请将其关闭
返回至Ubuntu的终端
输入如下命令

cd
cd macOS-Simple-KVM
vi basic.sh

在文件的末尾行添加如下内容

-device pcie-root-port,bus=pcie.0,multifunction=on,port=1,chassis=1,id=port.1
-device vfio-pci,host=XX:XX.X,bus=port.1 \

XX:XX.X处填写刚刚记录的BDF ID

例如我的是1d:00.3 ,则我填写后的结果是

-device pcie-root-port,bus=pcie.0,multifunction=on,port=1,chassis=1,id=port.1
-device vfio-pci,host=1d:00.3,bus=port.1 \

Ecs + :wq 保存

然后输入

sudo ./basic.sh

重新进入虚拟机

六、完成你的越狱工作

将iPhone使用USB3.0口连接至电脑,
如果你的操作正确,MacOS虚拟机内将提示设备接入,并且要求下载基本依赖包

完成后,iTunes将会弹出,提示设备接入。

此时关闭iTunes。

访问Checkra1n主页,下载最新版越狱工具。

按照流程完成越狱操作。

Linux下使用KVM虚拟机运行MacOS和Checkra1n越狱工具_第4张图片

本教程结束


重启Linux后如何进入MacOS虚拟机系统进行越狱

如果你已完成安装,且成功越狱过,那么在下次进入Linux系统时,只需打开终端输入如下命令

cd
cd vmra1n
sudo ./rebind.sh

(此时你的键盘和鼠标,或者一切在USB3.0接口设备将失效)
(请重新拔插鼠标和键盘,或者将他们插在USB2.0接口)
继续

cd
cd macOS-Simple-KVM
sudo ./basic.sh

熟悉的MacOS又回来了


你可能感兴趣的:(Linux下使用KVM虚拟机运行MacOS和Checkra1n越狱工具)