环境

  • debian server(无桌面)
  • kvm虚拟机

安装

安装黑苹果

  • 安装依赖

    sudo apt-get install qemu-system qemu-utils python3 python3-pip
  • 下载git仓库macOS-Simple-KVM

    git clone https://github.com/foxlet/macOS-Simple-KVM.git
  • 初始化镜像和初始化kvm硬盘(建议至少120G以上)

    cd macOS-Simple-KVM
    #可能会失败,重复到成功
    ./jumpstart.sh
    qemu-img create -f qcow2 MyDisk.qcow2 120G
  • 启动黑苹果

    HEADLESS=1 MEM=8G CPUS=4 SYSTEM_DISK=MyDisk.qcow2 ./headless.sh
  • 使用VNC软件连接debian服务器

  • 安装黑苹果

    先初始化硬盘,后安装镜像,初始化安装可能会失败,重复到可以为止

桥接网络

  • 安装依赖
    apt install bridge-utils
    apt install uml-utilities
    apt install net-tools
  • 编辑启动脚本macos.sh

    #启动桥接网卡,ens192为物理网卡,请自行修改
    brctl addbr br0
    ip addr flush dev ens192
    brctl addif br0 ens192
    tunctl -t tap0 -u root
    brctl addif br0 tap0
    ifconfig ens192 up
    ifconfig tap0 up
    ifconfig br0 up
    #dhclient -v br0
    ifconfig br0 192.168.3.28 netmask 255.255.255.0
    route add default gw 192.168.3.1

    #启动黑苹果
    cd /root/macOS-Simple-KVM
    sh startmacos.sh
  • 复制headless.sh文件为startmacos.sh,并修改相关参数,以下为个人修改参考

    #!/bin/bash

    OSK="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
    VMDIR=$PWD
    OVMF=$VMDIR/firmware

    qemu-system-x86_64 \
    -enable-kvm \
    -m 12G \
    -machine q35,accel=kvm \
    -smp 4,cores=4 \
    -cpu Penryn,vendor=GenuineIntel,kvm=on,+sse3,+sse4.2,+aes,+xsave,+avx,+xsaveopt,+xsavec,+xgetbv1,+avx2,+bmi2,+smep,+bmi1,+fma,+movbe,+invtsc \
    -device isa-applesmc,osk="$OSK" \
    -smbios type=2 \
    -drive if=pflash,format=raw,readonly,file="$OVMF/OVMF_CODE.fd" \
    -drive if=pflash,format=raw,file="$OVMF/OVMF_VARS-1024x768.fd" \
    -vga qxl \
    -usb -device usb-kbd -device usb-tablet \
    -netdev tap,id=net0,ifname=tap0,script=no,downscript=no \
    -device vmxnet3,netdev=net0,id=net0,mac=52:54:00:0e:0d:20 \
    -device ich9-ahci,id=sata \
    -drive id=ESP,if=none,format=qcow2,file=ESP.qcow2 \
    -device ide-hd,bus=sata.2,drive=ESP \
    -drive id=InstallMedia,format=raw,if=none,file=BaseSystem.img \
    -device ide-hd,bus=sata.3,drive=InstallMedia \
    -drive id=SystemDisk,if=none,file=MyDisk.qcow2 \
    -device ide-hd,bus=sata.4,drive=SystemDisk \
    -nographic -vnc :0 -k en-us

开机启动

  • 创建服务,创建文件/lib/systemd/system/macos.service

    [Unit]
    Description=macos
    [Service]
    Type=simple
    ExecStart=/usr/bin/sh /root/macos.sh
    User=root
    [Install]
    WantedBy=multi-user.target
  • 开机启动

    systemctl enable macos

参考文献