前言
在前段时间,我分享了使用定制OVMF固件,实现PVE环境UEFI模式直通核显并显示BIOS画面,文章链接https://imacos.top/2023/10/09/152/ 。我个人感觉这种方式通用性还是比较高的,缺点就是会改动到PVE原本您的OVMF文件,同时使用了vbios_gvt_uefi.rom,此rom是多年前的通用版UEFI rom,对Intel 11代之后处理器兼容性不是很好可能会出现花屏等情况,那本期就介绍给大家另外的一种核显直通显示输出的方式,来规避这两个问题,原理就是用PVE自带OVMF,再加上通用IGD与GOP来实现。本文我还是以英特尔核显来介绍具体的操作步骤.
非常重要:
1.如果您之前定制过OVMF固件实现的直通,需要将定制的文件复原,否则可能会导致本次定制rom后直通不成功
2.如果你之前修改过PVE下的很多模块,也有可能会导致定制rom后直通不成功,这种情况建议重新安装PVE环境
本文的内容理论上适用于Intel 4-14代与amd的cpu核显(也许支持Intel14代更高版本)
PVE版本为:Proxmox Virtual Environment 8.0.4
内核版本:Linux6.2.16-6-pve
BIOS默认已经开了虚拟化vt-d, iommu相关直通设置,没开的自己进BIOS设置
本文内容的介绍是基于你已经安装了PVE并开启了iommu直通基础上介绍(下文也会附上开启iommu方式)
如果你还没有安装PVE,可以参考我前几期的教程附上链接:
Proxmox(PVE)系统环境搭建安装教程:https://imacos.top/2023/07/18/pve/
PVE下如何启用 PCI直通显卡GPU/iGPU/USB/声卡AUDIO等硬件直通教程:https://imacos.top/2023/07/31/pci/
PVE下macOS苹果系统PCI直通AMD 580显卡硬件直通实例提取显卡rom教程:https://imacos.top/2023/08/01/580/
操作流程概览图:
我电脑的BIOS设置(主要是就csm还有Graphics两处,每个人的或许不一样,BIOS设置不对,也是无法直通成功的)
工具
AFUWIN5.12
balenaEtcher
winpe.dmg
UBU 1.79.17
edk2-BaseTools-win32-master(PlatformGOPPolicy.efi、IgdAssignmentDxe.efi、通用igd.efi)
winscp/Transmit
cpu型号 | 是否验证 | 下载地址 | 提取码 | 备注 |
i3 8130U | 是 | 百度网盘 | zw8x | 理论适用所有8代 |
i3 10105 | 是 | 百度网盘 | 5fm4 | 理论适用所有10代 |
i5 8265U | 否 | 百度网盘 | qka2 | 理论适用所有8代 |
i7 9700 | 是 | 百度网盘 | 41fs | 理论适用所有9代 |
J4125 | 否 | 百度网盘 | 7t89 | |
J6413 | 否 | 百度网盘 | 9w4r | |
AMD Ryzen™ 3 5400U | 是 | 百度网盘 | geyj | 理论适用AMD5000系列 |
AMD Ryzen™ 7 5700U | 是 | 百度网盘 | f28n | 理论适用AMD5000系列 |
i3_6100U | 是 | 百度网盘 | 3tgs | 理论适用所有6代( i7-6700HQ测试可用) |
n100 | 是 | 百度网盘 | 8hes | 来源于“蛋炒饭 i”投稿 |
AMD 3k-7k核显直通全系列 | 是 | 百度网盘 | g8pc | 通用-理论适用AMD3-7系列核显 |
Intel 11-14代核显直通 | 是 | 百度网盘 | fnem | 通用-理论适用Intel 11-14代核显 |
文件解压密码:imacos.top
所有工具在本文下载地址中,如果你使用的cpu型号在以上列表,可以直接使用已经修改好的rom文件,如果你有修改好的rom文件,也欢迎您联系站长,发送到邮箱271638927@qq.com中,站长将分享在本文中,提供给更多的人使用。上述的是否验证栏里有否的,如果你使用了,也欢迎在评论区留言是否使用成功,后续还会持续更新定制更多rom.
视频教程
获取 BIOS
并提取 GOP
注:如果您无法通过以下方式提取您物理机BIOS,物理bios可以到华擎官网下载与自己同代处理器的都可以通用 https://www.asrockind.com/zh-cn/single-board-computer
1.获取物理机BIOS(AMD的处理器也可以通过此方式提取)
如果你的电脑设备型号官网提供bios下载,请直接下载使用(无需提取设备的bios)
如果你的设备官网不提供bios下载(或者你找不到同设备的bios),那就使用AFUWIN5.12提取设备bios
建议使用AFUWIN5.12(win10完美运行)版本,下载后并在win10系统(已经测试在winpe也行)上提取bios,运行软件点下存储就可以。因为软件是win10或winpe环境才可以运行,所以你需要在设备上安装个win10或者用winpe系统环境下运行提取。不管是安装win10或者用winpe系统都比较简单,我这里就不介绍安装方式了。下载文件中包含了winpe的dmg文件,可以使用balenaEtcher写入到你的U盘中使用。(AFUWIN软件运行经过我测试,他不支持根目录文件夹名称有中文字符的情况运行,所以我们将文件夹重新命名为英文字符)
在win10上运行这个软件点“储存”就能获取物理机的bios文件
把存储的bios文件命名为bios.rom
2.从bios.rom中提取intel核显相关的IntelGopDriver.efi模块
把下载UBU 1.79.17工具解压,把存储的bios.rom拷贝进ubu软件目录下(直接网站下载的bios不需要命名拉进ubu目录)
接着运行UBU.bat(如果显示卡住不动的话多敲两次回车或者空格),打开你下载的BIOS文件。(如果UBU.bat程序cmd中没找到或者检测到bios,需要手动选择打开bios文件)

UBU会自动分析你的bios文件。
根据提示按2,再按S提取VBT和GOP。GOP如上文所说的,是用于UEFI固件点亮显示器的。VBT是用于传统BIOS模式的。这里不需要,只不过你如果需要将机型设置为q35,则可以使用VBT。
在ubu的Extracted目录下有个GOP文件夹,里面最终目录分别有IntelGopDriver.efi文件和vbt.bin文件。IntelGopDriver.efi文件就是我们需要的。
注:
- intel提取出来的名称为:IntelGopDriver.efi
- amd提取出来的名称为:AMDGopDriver.efi
合并efi并生成rom
将提取出来的IntelGopDriver.efi(amd提取出来的名称为:AMDGopDriver.efi)放入edk2-BaseTools-win32-master目录,同时这里还会用到核显的厂商与设备ID,ID可以通过在PVE Shell下执行 lspci -nn 命令,会列出有VGA的一行,最后的数字就是ID,如[8086:5917]。
Windows系统下打开cmd(或者powershell都行),cd进入到edk2-BaseTools-win32-master目录下运行下面命令,这个工具用于合并转换出1个rom
AMD核显合成方法:
.\EfiRom.exe -f 0xaaaa -i 0xbbbb -b .\vbios.bin -e .\AMDGopDriver.efi -o xxxx.rom # 命令行中amd核显一定先是-b vbios.bin然后-e gop.efi这个顺序,-f和-i为核显的厂商编号aaaa、设备编号bbbb,比如 -f 0x1002 -i 0x164c,后面-o xxxx.rom是输出文件名。
intel 11-14代平台仅支持ovmf+i440fx机型合成方法:
.\EfiRom.exe -f 0xaaaa -i 0xbbbb -e .\IntelGopDriver.efi .\igd.efi -o xxxx.rom # -f和-i为核显的厂商编号aaaa、设备编号bbbb,比如 -f 0x8086 -i 0x5917,后面-o xxxx.rom是输出文件名。
intel 4-10代平台核显直通(以下只支持ovmf+i440fx机型,q35机型使用提取的vbios文件),需要以下几个文件:IntelGopDriver.efi(amd的名称为:AMDGopDriver.efi)使用ubu工具从bios里提取出来,IgdAssignmentDxe.efi,PlatformGOPPolicy.efi,合成方法:
.\EfiRom.exe -f 0xaaaa -i 0xbbbb -e .\IntelGopDriver.efi .\IgdAssignmentDxe.efi .\PlatformGOPPolicy.efi -o xxxx.rom # -f和-i为核显的厂商编号aaaa、设备编号bbbb,比如 -f 0x8086 -i 0x3e98,后面-o xxxx.rom是输出文件名。
合并多个efi,达到一个rom通用多设备,以11代以上的为例(IntelGopDriver.efi文件名可自定义)
.\EfiRom.exe -f 0x8086 -i 0xffff -e .\IntelGopDriver11900.efi .\IntelGopDriver12600t.efi .\IntelGopDriver14900k.efi .\igd.efi -o xxxx.rom
通用igd.efi来源附上github项目地址https://github.com/gangqizai/igd
拓展一下EfiRom程序参数命令的其他含义
Options: -o FileName, --output FileName 最后输出文件名字,不指定也是输出 xxx.rom File will be created to store the output content. -e EfiFileName 使用什么efi文件,可以多个 EFI PE32 image files. -ec EfiFileName 使用什么efi文件,可以多个,并压缩 EFI PE32 image files and will be compressed. -b BinFileName 使用什么传统rom bin文件,可以多个 Legacy binary files. -l ClassCode Hex ClassCode in the PCI data structure header. -r Rev Hex Revision in the PCI data structure header. -n Not to automatically set the LAST bit in the last file. -f VendorId 厂商代码,比如intel为0x8086 Hex PCI Vendor ID for the device OpROM, must be specified -i DeviceId 设备代码 One or more hex PCI Device IDs for the device OpROM, must be specified -p, --pci23 Default layout meets PCI 3.0 specifications specifying this flag will for a PCI 2.3 layout. -d, --dump Dump the headers of an existing option ROM image. -v, --verbose Turn on verbose output with informational messages. --version Show program's version number and exit. -h, --help Show this help message and exit. -q, --quiet Disable all messages except FATAL ERRORS. --debug [#,0-9] Enable debug messages at level #.
将获取到的显卡rom上传到PVE的指定目录中(PVE开机状态),上传路径:/usr/share/kvm
win下推荐上传工具:WinSCP下载地址https://winscp.net/eng/index.php
Mac下我使用的上传工具是Transmit.app,本站下载地址:https://imacos.top/2024/01/15/transmit-5-for-mac-v5-9-2/
PVE开启iommu直通
1.打开PVE节点的shell,输入命令:
要忽略 dmesg 输出中的一些烦人的错误, 请运行以下命令(# 这一步对于直通来说不是必需的,但有助于保持干净。)
nano /etc/modprobe.d/kvm.conf options kvm ignore_msrs=Y report_ignored_msrs=0 # 按 Ctrl + X,然后按 Y + Enter 保存更改。
2.启动内核IOMMU支持
IOMMU(Input-Output Memory Management Unit)是一种硬件功能,用于管理设备对系统内存的访问。启用 IOMMU 后,可以在虚拟机中直接访问物理设备,并允许虚拟机独立于主机操作系统运行
nano /etc/default/grub # 将以下行粘贴到其中,并在旧标签前面添加一个注释标签#,以下为常用的一些写法。 # 对于 Intel CPU GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction pci=nommconf" # 对于 AMD CPU GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction pci=nommconf" 或者 GRUB_CMDLINE_LINUX_DEFAULT="quiet initcall_blacklist=sysfb_init" 注意,对于 AMD CPU:initcall_blacklist=sysfb_init 屏蔽掉pve7.2以上的一个bug,方便启动时候就屏蔽核显等设备驱动。pve8的grub里面不需要加入amd_iommu=on pcie_acs_override=downstream,multifunction这些参数,一般默认就开启了,如果后面直通不成功,在加上这些参数。 # 其他的一些写法(如果是AMD处理器,将intel改为amd) GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1 video=efifb:off" # 这是GVT模式,也就是共享模式,少部分cpu支持,但体验很好 GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off" # 这是独占模式,都支持,但显示器没有pve的控制台输出,也只能直通个一个虚拟机 GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction" GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction" GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" #本期教程我使用的就是这个 # 参数释义 1.iommu=pt:启用 Intel VT-d 或 AMD-Vi 的 IOMMU。这是一种硬件功能,用于管理设备对系统内存的访问。在虚拟化环境中,启用 IOMMU 后,可以将物理设备直通到虚拟机中,以便虚拟机可以直接访问硬件设备。“iommu=pt”不是必须的,PT模式只在必要的时候开启设备的IOMMU转换,可以提高未直通设备PCIe的性能,建议添加。 2.initcall_blacklist=sysfb_init:禁用 sysfb_init 内核初始化函数。这个函数通常用于在内核启动过程中初始化系统帧缓冲。在使用 GPU 直通的情况下,这个函数可能会干扰直通操作,因此需要禁用它。 3.i915.enable_gvt=1:启用 Intel GVT-g 虚拟 GPU 技术。这个选项用于创建一个虚拟的 Intel GPU 设备,以便多个虚拟机可以共享物理 GPU 设备。启用 GVT-g 需要在支持虚拟 GPU 的 Intel CPU 和主板上运行,并且需要正确配置内核和虚拟机。想开启GVT-g的就添加这条,显卡直通的就不要添加了。 4.initcall_blacklist=sysfb_init:屏蔽掉pve7.2以上的一个bug,方便启动时候就屏蔽核显等设备驱动; 5.pcie_acs_override=downstream,multifunction:便于iommu每个设备单独分组,以免直通导致物理机卡死等问题 6.pci=nommconf:意思是禁用pci配置空间的内存映射,所有的 PCI 设备都有一个描述该设备的区域(您可以看到lspci -vv),访问该区域的最初方法是通过 I/O 端口,而 PCIe 允许将此空间映射到内存以便更简单地访问。
3.使用以下命令更新 grub
update-grub
更新后可以重启电脑
4.主机重新启动并运行后,运行以下命令,验证是否开启iommu
dmesg | grep -e DMAR -e IOMMU -e AMD-Vi # 如果没有输出,则说明有问题。你应该看到这样的东西;“DMAR: IOMMU enabled” # 另外一种验证方式 dmesg | grep iommu # 出现如下例子。则代表成功 [ 1.341100] pci 0000:00:00.0: Adding to iommu group 0 [ 1.341116] pci 0000:00:01.0: Adding to iommu group 1 [ 1.341126] pci 0000:00:02.0: Adding to iommu group 2 [ 1.341137] pci 0000:00:14.0: Adding to iommu group 3 [ 1.341146] pci 0000:00:17.0: Adding to iommu group 4 # 此时输入命令 find /sys/kernel/iommu_groups/ -type l # 出现很多直通组,就代表成功了。如果没有任何东西,就是没有开启
5.对于某些平台,可能需要允许不安全中断。运行以下命令
nano /etc/modprobe.d/iommu_unsafe_interrupts.conf # 添加以下行;请注意,此选项可能会使您的系统不稳定。 options vfio_iommu_type1 allow_unsafe_interrupts=1
6.启用必要的内核模块,运行以下命令
nano /etc/modules # 添加以下行; vfio vfio_iommu_type1 vfio_pci vfio_virqfd
7.将驱动程序模块列入黑名单,以使虚拟机能够完全访问显卡等。运行以下命令
nano /etc/modprobe.d/pve-blacklist.conf # 添加以下行; blacklist nouveau blacklist nvidia blacklist nvidiafb blacklist snd_hda_codec_hdmi blacklist snd_hda_intel blacklist snd_hda_codec blacklist snd_hda_core blacklist radeon blacklist amdgpu blacklist i915 options vfio_iommu_type1 allow_unsafe_interrupts=1 # 如果有重复项,记得删除,解释:屏蔽三大显卡驱动,屏蔽hdmi声音驱动;options
8.通过设备ID绑定vfio-pci
#执行 lspci -nn 命令,您应该看到如下内容,找到有vga标识的一行,记录核显VendorID 和 DeviceID,这里的两个ID后续定制rom也会用到 “0x:00.x VGA compatible controller … [1234:5678]” “0x.00.x Audio Device … [1234:5678]” # 无需记下 GPU 音频 ID。 “0x.00.x USB controller … [1234:5678]”
nano /etc/modprobe.d/vifo.conf
# 添加以下行; options vfio-pci ids=8086:5917
9.更新模块并重新启动主机以应用更改
update-initramfs -u -k all
reboot
10.注意:
我这里分享一下我在直通的时候遇到的一个问题,大家一定要注意,我们在没有做PVE直通的操作前,PVE画面的输出是会显示像这张图片上的样式
有PVE登录的IP地址,一旦你做了PVE直通的操作后,重启PVE,如果直通操作成功的话,是一定不会看到PVE登录的IP地址,我这里,操作直通成功重启后的画面是如下图这样的
也许你的直通操作成功后,画面样式与我的会有一定的区别,但是请记住,如果你操作直通后通过上述介绍的,在PVE的Shell节点下验证成功了,但是PVE开机画面还是会显示登录的IP地址,这种情况一定是直通的启动内核IOMMU支持代码不对,换一种写法继续尝试,直到PVE重启看不到登录的IP地址才算成功。
虚拟机创建注意事项
1.【重要】准备事项提醒
正如前言说的一样,本文是基于你已经安装了PVE基础上介绍
如果你还没有安装PVE,可以参考我前几期的教程附上链接:
Proxmox(PVE)系统环境搭建安装教程:https://imacos.top/2023/07/18/pve/
PVE下如何启用 PCI直通显卡GPU/iGPU/USB/声卡AUDIO等硬件直通教程:https://imacos.top/2023/07/31/pci/
2.关于虚拟机创建配置
直通Intel核显
所选的虚拟机类型必须为i440fx 7.2版本或者最新以上机型(不能选q35!)
系统类型可选择为推荐使用Linux,Windows或其他类型可能会导致安装核显驱动后,出现43错误,驱动不成功。
固件类型选择ovmf UEFI
TPM选择开启,安全启动随意
CPU类型选HOST,否则可能会出现装不上驱动
光驱选择ide,硬盘选择sata硬盘或者也可以scsi(选择ide和sata是为了核显直通打游戏需要,你也可以坚持选其他),其他保持默认设置
创建后进入Options,打开QEMUGuestAgent和UseLocalTimeforUTC以获得更好体验
直通amd核显
基本与Intel核显一致,只不过所选的虚拟机类型必须为q35,这是特别需要注意的一点
3.直通虚拟机环境设置
虚拟机创建后先不要启动,为创建的虚拟机添加核显pcie,将显示设置为无 none。并同时添加负责声音的pcie设备。在PVE的SHell节点下执行命令
nano /etc/pve/qemu-server/100.conf
100是你创建直通核显虚拟机的ID
进入后在配置文件中增加一行,这行用于设置核显额外参数,包括把设备地址设置为02.0,设置x-igd-gms大小并启用x-igd-opregion。
args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=1 -set device.hostpci0.x-igd-opregion=on
同时修改hostpci0开头的这一行,这行用于添加核显,开启 legacy-igd 模式,加载 romfile。
hostpci0: 0000:00:02,legacy-igd=1,romfile=xxxx.rom
然后,一定记得把虚拟机的 显卡改为 None,避免虚拟显卡和直通的核显争抢总线地址。
这里上一下我完整的虚拟机配置,可以参考一下
agent: 1 args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=0x2 -set device.hostpci0.x-igd-opregion=on bios: ovmf boot: order=virtio0;ide2;net0 cores: 4 cpu: host efidisk0: local-lvm:vm-100-disk-0,efitype=4m,size=4M hostpci0: 0000:00:02.0,legacy-igd=1,romfile=i3_10105_igd_efi.rom hostpci1: 0000:00:1f.3 ide2: none,media=cdrom memory: 4096 meta: creation-qemu=8.0.2,ctime=1698238750 name: i44fx net0: virtio=BA:A1:1D:08:A9:5B,bridge=vmbr0,firewall=1 numa: 0 ostype: l26 scsihw: virtio-scsi-single smbios1: uuid=b3176867-4e41-4637-b3c1-a68810d70644 sockets: 1 tpmstate0: local-lvm:vm-100-disk-1,size=4M,version=v2.0 vga: none virtio0: local-lvm:vm-100-disk-2,cache=writeback,discard=on,iothread=1,size=32G vmgenid: fb5d54dc-02a5-44c2-8a04-2649d69249b2
启动虚拟机后,正常就可以看到PVE BIOS的开机画面,此时你可直通USB键盘,并按ESC进入UEFI设置,所有直通的操作就完成了。
注:只有Intel核显才需要添加args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=1 -set device.hostpci0.x-igd-opregion=on这一行参数,amd核显不需要,amd的将这行参数修改为:-cpu host,hypervisor=off (可以解决启动报错关于cpu方面的问题),如过你使用amd安装mac,那么还需要添加-set device.hostpci0.bus=pci.0 -set device.hostpci1.bus=pci.0 -set device.hostpci0.addr=0x01.0 -set device.hostpci1.addr=0x02.0 ,用于解决黑苹果卡900的参数.
结束语
正常情况操作完后,不管后续要安装Liunx、win、mac或其他系统,直通出画面就都没有问题了,只不过安装不同的操纵系统,在配置上会有一定的变动。
关于win系统安装,我自己测试的安装成功后,直接安装显卡驱动,没有什么问题,显卡工作正常。win系统安装请看我之前发布的教程(https://imacos.top/2023/09/07/pve-windows-11/)
关于黑苹果系统的安装,前期给大家介绍PVE安装macOS系统(https://imacos.top/2023/07/29/pve-macos/),机型选择的是q35,但是本文介绍的因特尔核显直通必须选择i440fx,经过站长的测试,选择i440fx也一样可以安装macOS系统,大致思路就是将dmg带OC引导的镜像写入U盘中,直接直通U盘后使用U盘安装,这种方式与安装黑苹果的方式完全一致。具体详细的教程,预计后续会出一期,专门来讲这个点。或者直接使用本站点已经安装好的的macOS备份恢复版本https://imacos.top/category/pve/pvemac/需要注意的是,i440fx 机行需要修改配置文件的args:这一行,我列出来,大家可以参考
args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=0x2 -set device.hostpci0.x-igd-opregion=on -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu host,vendor=GenuineIntel,+invtsc,+hypervisor,kvm=on,vmware-cpuid-freq=on
附:PVE使用常见问题及使用合集链接
PVE OC Mac系统:https://imacos.top/category/pve/pvemac/
Proxmox(PVE)系统环境搭建安装教程https://imacos.top/2023/07/18/pve/
定制OVMF固件实现PVE环境UEFI模式直通Intel核显并显示BIOS画面可以外接显示https://imacos.top/2023/10/09/152/
PVE(Proxmox VE) 启动各种报错问题合集篇(持续更新)https://imacos.top/2023/09/17/89/
PVE(Proxmox VE) 使用常见问题及笔记合集篇(持续更新)https://imacos.top/2023/09/17/2-2/
PVE(Proxmox)安装macOS苹果系统遇到的一些错误经验分享(持续更新)https://imacos.top/2023/08/27/macos/
PVE(Proxmox VE)安装Windows 11虚拟机直通独立显卡https://imacos.top/2023/09/07/pve-windows-11/
PVE下macOS苹果系统PCI直通AMD 580显卡硬件直通实例提取显卡rom教程https://imacos.top/2023/08/01/580/
PVE下如何启用 PCI直通显卡GPU/iGPU/USB/声卡AUDIO等硬件直通教程https://imacos.top/2023/07/31/pci/
PVE环境安装macOS苹果系统https://imacos.top/2023/07/29/pve-macos/
文件解压密码:imacos.top
评论6