.sh文件怎么运行_在 Linux 的 MacOS KVM 上运行 checkran 的详细步骤

国外大神发布的又详细又不懂的教程。

大神说:这不是一件容易的事。如果你不能在Linux中做基本的CLI内容,你最好只等待Windows版的checkra1n。

不建议折腾.....仅供参考

c0c8f505d708b23eddda200453270cc9.png

前提条件:

linux机器启动和运行(不打算回答有关这个问题的问题,在互联网上大量的教程。最好是debian 基于本指南和一个体面的大小的文件夹的完整准确性。我的主文件夹是100 GB 进行比较,但类似35 到40 应该也可以)

QEMU 3.X或更高

主板和CPU 具有完整的VT-x 和VT-d(或AMD 版本:AMD-v 和AMD-Vi)功能(笔记本电脑很可能无法工作)

主板必须具有单独的板载USB 控制器(稍后将对此进行更多介绍)

至少一组USB 2.0 端口(3.0 可以工作,但工作起来非常棘手,您可能需要禁用3.0 端口才能正常工作)

62b39e36fe8d75702ca2dbb82180b0ad.png

制备工作:

确保您在主板BIOS 上启用了VT-x 和VT-

d(或AMD 版本:AMD-v 和AMD-Vi)

(如果您不启用,请查找)。

首先在终端中运行以下命令,这将安装

QEMU,Python and pip根据您拥有的linux 类型选择一个):

sudo apt-get install qemu-system 

qemu-utils python3 python3-pip  # for 

Ubuntu,Debian,Mint,and PopOS.sudo 

pacman -S qemu python python-pip            

# for Arch.sudo xbps-install -Su qemu 

python3 python3-pip   # for Void 

Linux.sudo zypper in qemu-tools qemu-

kvm qemu-x86 qemu-audio-pa 

python3-pip  # for openSUSE 

Tumbleweedsudo dnf install qemu 

qemu-img python3 python3-pip # for 

Fedora

0aa2c33620c2ddfcb92f721052d0dd61.png

接下来是将内核标志传递给GRUB 引导加载程序。在标准文本编辑器中打开/etc/默认/grub 文件。找到它显示

GRUB_CMDLINE_LINUX_DEFAULT的位置,并添加iommu_pt intel_iommu_on,或者如果您有AMD 处理器,iommu_pt amd_iommu_on。

dc518b27f89a15b9945393ab7ac1c152.png

您的文件现在应如下所示:

 # If you change this file,run 'update-

grub' afterwards to update# 

/boot/grub/grub.cfg.

# For full documentation of the options in this file,see:

#   info -f grub -n 'Simple configuration' GRUB_DEFAULT=0GRUB_TIMEOUT_STYLE=hiddenGRUB_TIMEOUT=10GRUB_DI

STRIBUTOR=`lsb_release -i -s 2> 

/dev/null || echo 

Debian`GRUB_CMDLINE_LINUX_DEFAUL

T="quiet splash iommu=pt 

intel_iommu=on"GRUB_CMDLINE_LINUX

="" 

# Uncomment to enable BadRAM filtering,modify to suit your needs

# This works with Linux (no patch required)and with any kernel that obtains

# the memory map information from GRUB (GNU Mach,kernel of FreeBSD ...)

#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" 

# Uncomment to disable graphical terminal (grub-pc only)

#GRUB_TERMINAL=console 

# The resolution used on graphical 

terminal# note that you can use only 

modes which your graphic card 

supports via VBE# you can see them in 

real GRUB with the command 

`vbeinfo'#GRUB_GFXMODE=640x480 

# Uncomment if you don't want GRUB to 

pass "root=UUID=xxx" parameter to 

Linux#GRUB_DISABLE_LINUX_UUID=tru

# Uncomment to disable generation of recovery mode menu entries

#GRUB_DISABLE_RECOVERY="true" 

# Uncomment to get a beep at grub start

#GRUB_INIT_TUNE="480 440 1"

3be787229a448f0271daebb8984bd377.png

之后在终端sudo update-grub中运行并重新启动。现在,您已经传递了正确的内核标志,并准备好转到下一步。

在sudo apt-get install git中运行以下内容,然后sudo git clone 

找到名为"vmra1n"的文件夹,并打开其中的终端。运行sudo ./lsiommu.sh如果成功,您将获得PCIe 设备及其IOMMU 组的列表。如果没有输出,请仔细检查BIOS 设置。

例如:

IOMMU Group 14 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 14 03:00.1 SATA controller [0106]: Advanced Micro Devices,Inc. [AMD]300 Series Chipset SATA Controller [1022:43b7](rev 02)

IOMMU Group 18 27:00.3 USB controller [0c03]: Advanced Micro Devices,Inc. [AMD]Zeppelin USB 3.0 Host controller [1022:145f]

某些组包含多个设备。在自己的组中查找USB 控制器,并记下BDF ID(本例中为27:00.3和PCI ID(本例中1022:145f

隔离USB 控制器

rebind.sh用自己的方式更改PID 和BDF 的值,然后保存它。在vmra1n 打开终端并运行sudo ./rebind.sh

这将关闭一组USB 端口,因此根据需要将任何输入设备(即鼠标、键盘)重新定位到其他端口。作为格式的示例: 

BIND_PID1="1022 145f" 

BIND_BDF1="0000:27:00.3" 

在QEMU 中设置虚拟机

      找到一个名为"macOS-简单-KVM"的文件夹,并在那里打开一个终端。运行sudo ./jumpstart.sh --catalina.(需要互联网连接)。如果你想拥有那个特定的OSX版本,你可以换掉。它现在将开始下载一个文件BaseSystem.img注意:如果您已经下载了BaseSystem.img则可以跳过此功能。BaseSystem.dmg你需要转换它与在文件夹中dmg2img工具。

      完成后,使用qemu -img创建一个空硬盘,并将名称和大小更改为任何随你所愿。例如:qemu-img create -f qcow2 MyDisk.qcow2 64G

     创建后,编辑./basic.sh并将以下内容添加到文件末尾,"MyDisk.qcow2"是您在上一张映像中为虚拟硬盘选择的名称   

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

drive=SystemDisk \

     完成后,打开终端并运行sudo ./basic.sh并等待QEMU 打开。进入QEMU 后,使用箭头键在三叶草引导器中选择"从基于MacOS 的系统启动"。

      现在应该等待,直到你启动到MacOS实用程序。这可能需要一些时间。完成后,打开磁盘实用程序并选择您创建的虚拟磁盘。它还应显示您选择的大小。如果磁盘上有任何分区(不应该)取消分区。接下来,单击"格式"并将其重命名为所需的任何格式,然后选择MacOs 扩展格式(已记录)。格式化它并退出磁盘实用程序。选择"重新安装MacOS 的副本",然后单击"继续",这将需要一点时间,但最终您应获得许可协议,然后它会要求您选择一个磁盘来安装MacOS。单击您刚才格式化的磁盘并开始安装。然后,它将下载MacOS(从Apple 服务器),并将其安装到您选择的磁盘上。根据您的互联网速度,这可能需要一段时间。下载完成后,开始点击下一步,并做提示告诉你。

安装完成后,关闭QEMU。

连接USB 控制器

将以下内容basic.sh将host=XX:XX.X替换为较早的BDF ID。 

-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 \ 

ae0467810601240cb419d612fd67cc55.png

正在运行检查1n

运行sudo ./basic.sh以引导到VM 中。现在,您应该能够将iDevice 连接到分配的USB 端口(在主机中禁用的USB 端口)。下载checkra1n 并按照应用程序中的步骤操作。

最后!就这样!如果您已正确完成所有操作,您的iDevice 应在DFU 模式下被识别,并且checkra1n 将运行!

故障排除(问题出现时将更新)

Please ensure all devices within the iommu_group are bound to their vfio bus driver. 

选择的USB 控制器位于具有多个设备的组中,rebind.sh在具有相同组号的其他rebind.sh或者使用ACS 修补程序(对于高级用户)。您无需将设备附加到VM,只需重新绑定它们。

iommu doesn't work properly when enabled in BIOS 

如果可能更新BIOS,较旧的主板可能有早期实现的问题。

9e33f8b151703db3843ab797aabb9ed2.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值