首页 > 编程知识 正文

电脑可以装双系统吗(双系统怎么装)

时间:2023-05-05 05:33:58 阅读:77447 作者:191

KVM是Linux上最成熟的虚拟化框架,利用qemu的虚拟化功能和半虚拟化技术提供强大的IO性能。 常见的用法是直接调用qemu commnad。 可以基于虚拟化框架(如lib virt (虚拟机管理器)/Proxmox )实现对KVM虚拟机的管理。 典型的黑色苹果系统基本上基于物理硬件进行安装,这种系统具有原生性能较好,但与主板硬件(如集成网卡、声卡等)不兼容的缺点。 特别是在CPU特性不兼容的情况下,像ryzen和SLK-X系列那样,需要修改内核,存在很多麻烦。 另外,目前安装方法教程很多,不统一。 特别是调整固件这一步骤有非常多的问题。 另一方面,黑色苹果(传统虚拟机)仅由CPU进行虚拟化,而不是由IO进行虚拟化,这意味着虚拟机无法获得图形加速。 这大大降低了MAC操作系统的实用性。 但是,随着vt-d技术的普及,苹果对AMD GPU的支持越来越好(当然有时eGPU更好),而且近两年矿山热潮大量涌入市场的Polaris 10/11和vevery 当然,vt-d的目的之一是io MMU组越多越好,如果翻译成硬件玩家的术语,就会有更多独立的PCIe界面。 传统io软件(如PS/2 USB键盘和音频)的虚拟化效率低下,需要在用户状态下进行系统调用以读取数据。 通过系统调用输入guest OS。 这个缺点是效率低,实时性差。 同样,基于libusb的USB重定向也是一样的。 有了独立的PCIe USB扩展卡,可以将整个PCIe设备放入虚拟机中,从而获得最高的效率并避免一些问题。 (例如,Hub不能重定向或集成到PCH的某些控制器不能拆分) )。 因此

intelcorei7- 4860 HQ (有特殊的mPCIe设计,可配置edram和iris pro 5200以减少DDR3带宽下降的影响()蓝宝石Z87 Pure Black,稍后将提及)蓝宝石rx 470 16GB专用酒吧的稳定性自不必说,绝对不要买。 只能说来得及。 (500瓦flex电源iMac纯正BCM 3x3 1300Mbps ac交流网卡(支持BT4.1和Hand Off )

前期准备

a.准备安装介质

)安装介质是指安装u盘或光盘。 更抽象的是用于安装的块设备文件。 通常,您可以在现有macOS上准备,然后在App Store中下载当前版本的Installer.app进行安装。 请参阅脚本

准备完成后,将得到一个块设备文件,通常为. iso/.cdr。 都是CD标准的块设备文件。 保存此文件。

b.准备安装平台

显然你进不了空气。 macOS Mojave的最低需求是SSE4.2,这对于AVX512平台来说已经是十年前的事了。 一般来说,SNB之后的CPU平台没有问题。

第二,主板和处理器必须支持vt-d(iommu )技术。 99 )平台支持vt-x,但vt-d可能因为芯片组或固件而未启用。 请务必检查平台兼容性。 否则,无法透过PCIe设备。

内存在4GB以上即可,建议使用16GB-32GB。

显卡由于波矿浪潮的降临,目前有很多支持良好的a卡。 部分n卡可以免驱动器使用,但我强烈不推荐使用n卡。 实用性和麻烦太多,即使可以使用也比a卡麻烦。 同样支持最新的Radeon RX590和Radeon VII。 但是,不支持Ryzen APU的Vega 8/10等。

对于存储,如果主板支持NVMe,则是最好的。 这意味着macOS虚拟机通过IOMMU获取了实际的PCIe存储设备,并完全绕过了Linux内核。 但是,必须注意NVMe设备的兼容性。 最常见的支持是三星970 pro/Evo ()。 否则,还建议访问三星

Handoff/AirDrop高度依赖于特定于BCM (apple自定义)的网卡,特别是Apple Watch解锁功能。 因此,主板需要mini PCIe/M.2连接器。 请注意,连接器必须具有PCIe链路,并且不支持mSATA。 其二,USB (来自PCI

e 1x 的 mPCIe 是没有 USB 的)支持, 通常现在的主板 M.2 x4 接口只有 SATA 和 PCIe. M.2 普通网卡接口/mPCIe 网卡接口一般能正常使用. 特别注意 Z390 等 Intel 最新平台的网卡 M.2 接口采用了 CNVi 链路层, 虽然接口与普通网卡兼容, 但是不能支持普通 PCIe 网卡, 这种设备只能走 PCIe 转接板+USB连线启动. 如果你的主板有独立于网卡且不可拆卸的蓝牙 USB dongle, 请在固件设置中禁用, 不然会让 BCM 蓝牙被禁用.

如果你不在意 handoff, macOS 能驱动一大堆 BCM 网卡和 BCM 芯片的蓝牙, 包括一些 BCM 芯片的万兆网卡. macOS 有标准蓝牙 dongle 驱动的支持, 不过即便能用也有一些问题.

有线网卡上默认的 e1000 就能自动驱动, Realtek 的网卡则需要 patch. 不建议直通千兆网卡. macOS 曾经在 Sierra 之前有 virtio 的支持, 但是现在已经不可用. 万兆网卡务必检查兼容性, 包括对于 SR-IOV 的支持.

同时为了最好的性能, 强烈建议直通 USB 控制器而不是 USB 设备重定向(延迟会大很多). 但是要注意 Intel 平台的 XHCI/EHCI 虽然可以分在不同 IOMMU, 但是实际上都是牵一发动全身, 你为了网卡上的蓝牙(特别是 ITX 平台), 就可能得将所有 USB 接口通入虚拟机中. AMD 的 Ryzen 和 PCH 都有 USB, 所以能够独立转发. 这里的解决方案是通过 PCIe 增加网卡, 比如 PCIe/mPCIe 转 USB 3.0. 但是 mPCIe 转 USB 2.0 和 M.2 转 USB 3.0 均依赖于 PCH 的 USB Bus. 如果需要同时接多个虚拟机可以考虑再添加 USB 扩展卡, 如 ASMedia 的 USB 3.1 gen2 PCIe 扩展卡(USB 3.1 bus 可以直通进 macOS).

声卡上如果你有正常的 A/N/I 卡, 进入系统打 kext patch 就能够获得不错的 HDMI/DP 音频. VoodoHDA 可以用来支持基于 qemu 虚拟的 ich9-hda 声卡, 或者是来自 PCIe 直通的声卡设备. USB redirect 的音频质量比较一般, 和 qemu 模拟的声卡同样有延迟较大的问题. 有的较新的主板配置了 PCIe to PCI bridge, 可以直通以通过 PCI 接入 USB/1394(Firewire)设备, 从而兼容老音频介面.

雷电直通我暂未尝试, 这个需要后续探索.

安装宿主系统

参考教程

宿主系统选择上尽可能选择内核新, 软件包新, 且比较稳定的发行版, 如 Arch Linux(文档多), OpenSUSE, Ubuntu. 一般不建议安装图形界面, 因为rzdst USB 设备全部直通, 显卡直通了之后宿主的操作性就差很多.

配置完毕系统后就要安装 qemu 和 vfio(用于穿透), 以及 qemu 的管理框架 libvirt(virt-manager), Proxmox 理论上也是可用的, 但是我不是特别想用.

启用 IOMMU

首先确保在固件设置中开启 IOMMU. 由于一般情况下直通的是 A/N 卡, 将默认显卡设置为 IGD(iGPU), 并开启 igdmultimonitor. 这通常在 chipset 选项:

然后修改 /etc/default/grub, 找到 GRUB_CMDLINE_LINUX_DEFAULT 或者 GRUB_CMDLINE_LINUX, 加入 intel_iommu=on 或者 amd_iommu=on. 保存文件, 并通过 update-grub 或者 grub2-mkconfig -o <你的 grub.cfg 的位置> 保存.

配置 vfio

由于我们需要让设备直通虚拟机, 那就不能让宿主机的驱动去接管这些硬件, 我们需要一个 dummy 驱动模块去接管这些要被直通的硬件.首先执行 lspci --nnk, 找到你想要直通的设备的 ID, 并且注意每个设备所在组的其他设备(编辑文件 /etc/modprobe.d/vfio.conf.

options vfio-pci ids=<PCI 地址,...> disable_vga=1

但是为了避免 initrd 引入的内核模块中 vfio 位于物理驱动的后面, 这里有两套方案:1.根据 lspci --nnk 的内容, 找到每个设备对应的驱动, 如 RX470D 及其 HDMI 音频设备:

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev ff) Kernel driver in use: amdgpu Kernel modules: amdgpu 01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] [1002:aaf0] (rev ff) Kernel driver in use: snd_hda_intel Kernel modules: snd_hda_intel

修改 /etc/blacklist.conf, 加入你不想要的驱动:

blacklist i915 blacklist amdgpu ...

2.修改 /etc/mkinitcpio.conf, 这里参考 archliux wiki, 因为操作比较复杂, 但是相对于直接屏蔽, 能够实现更复杂的配置.随后执行 update-initramfs 或 mkinitrd, 重新生成 initrd, 随后重启.启动后检查配置lspci --nnk :

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev ff) Kernel driver in use: vfio-pci Kernel modules: amdgpu 01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] [1002:aaf0] (rev ff) Kernel driver in use: vfio-pci Kernel modules: snd_hda_intel

这说明被 vfio-pci 接管.随后即可在 virt-manager/qemu 中穿透该设备.

macOS 系统安装

在初步测试环境下, 不建议使用 libvirt 管理虚拟机.

此时建议透过 VNC 或者在有 XFoward 的环境下 ssh 到目标宿主机.通过 qemu-img create -f qcow2 mac_hdd.img 128G 创建一个 128GB 声明容量的 qcow2 块设备文件.将先前准备的安装介质 ISO 复制到 OSX-KVM 的目录. 修改 boot-macOS-Mojave.sh, 对应好各个块设备的文件名:-drive id=MacDVD,if=none,snapshot=on,media=cdrom,file=./'<刚才的安装介质.iso>' 启动这个脚本, 你就能看到 qemu 的视频回传窗口, 此时 USB 鼠标驱动能够正常启动. 进入 Clover 之后选择进入 macOS installer. 进入安装环境后先进入 disk utility 格式化刚才准备的 128GB 块设备为 APFS 格式. 完成后完成系统安装. 安装之后重启, 理论上正常能够进入系统.

同样的方法, 修改 boot-passthrough.sh, 注意 PCIe 设备的 ID 需要和你的显卡和 HDMI 音频设备一致. 由于这个 qemu 脚本中不包含 VGA 输出设备, 所以不输出到 qemu 窗口是正常的.如果你的显卡并没有输出画面到显示器, Clover 固件阶段可以通过提供的 serial console 进行操作. 正常情况下启动的时候会出现 tianocore 的欢迎 logo.

很多 AMD 矿卡修改了 VBIOS, 这会在没有 CSM 支持和强制 SecureBoot 的环境下无法在固件界面点亮. 在 Windows 系统下可能会碰到 error code 43 问题, 需要通过 patch driver 解决.OVMF 没有提供任何 CSM 支持, 所以修改 VBIOS 的矿卡是无输出的. techpowerup 能找到很多 GPU 的 VBIOS, 但是刷入前一定要备份原有 VBIOS, 并注意显存颗粒兼容情况.Linux/macOS 系统内的驱动对于 mod VBIOS 能够兼容

正常情况下能够进入 macOS. 由于该脚本内没有包含任何输入设备(OSX-KVM 的 clover 块设备内不包含 PS/2 驱动), 所以是无法进行操作的, 除非进行 USB 设备重定向或者穿透 PCIe 上的 USB 控制器. 前者性能较差, 后者通常会失去对于宿主的控制, 除非你的设备有多个完全独立的 USB bus.成功进入 macOS 后可以开始根据之前的参数修改 macOS-libvirt.xml. 参考 核心绑定调整 vCPU 和 CPU 的对应关系, 并且正确的传递 CPU 的拓扑(即 socket/core/thread), 以达到最大性能.随后: virsh --connect qemu:///system define macOS-libvirt.xml此时可以通过 virt-manager 启动虚拟机. 注意此时在图形界面下添加 PCIe 穿透更加方便. 需要添加的设备有:

AMD 显卡及附属音频设备BCM PCIe 无线网卡USB 控制器(需要包含 PCIe 网卡的 USB 蓝牙部分)...

进入系统后就是给一些驱动打 patch、洗白等操作, 这里不再赘述.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。