Sanallaştırma kavramı artık her yerde; Docker, Virtualbox, Hyper-V ve Vmware gibi araçlar bunun popülerliğinde büyük rol oynuyor. Sanallaştırma, bilgisayar donanım platformu, işletim sistemi, depolama aygıtı veya ağ kaynakları gibi bir şeyin sanal versiyonunu oluşturma süreci olarak tanımlanabilir. Oluşturulan sanal oturumlar daha sonra birden fazla işletim sistemini veya uygulamayı tek bir fiziksel makinede çalıştırmak için kullanılabilir, böylece kaynak kullanımında daha fazla esneklik ve verimlilik sağlanır.
OSX-KVM İle Kurulum
Gereksinimler
- Modern bir Linux dağıtımı. Örneğin Ubuntu 22.04 LTS 64-bit veya üstü.
- QEMU >= 6.2.0
- Intel VT-x / AMD SVM desteğine sahip bir CPU (grep -e vmx -e svm /proc/cpuinfo)
- SSE4.1 desteğine olan bir CPU
- AVX2 desteğine sahip bir CPU
Not: Eski AMD işlemcilerin sorunlu olduğu biliniyor ancak modern AMD Ryzen işlemciler gayet iyi çalışıyor.
Kurulum Hazırlığı
CLI yöntemi (birincil). Yükleme işlemini başlatmak için OpenCore-Boot.sh betiğini çalıştırmanız yeterlidir.
- QEMU ‘yu ve diğer paketleri yükleyin.
sudo apt-get install qemu uml-utilities virt-manager git \
wget libguestfs-tools p7zip-full make dmg2img tesseract-ocr \
tesseract-ocr-eng genisoimage vim net-tools screen -y
Bu adımı Linux dağıtımınıza göre düzenlemeniz gerekebilir.
- Bu repository’yi QEMU sisteminize klonlayın. Bu repository’deki dosyalar aşağıdaki adımlarda kullanılır.
cd ~
git clone --depth 1 --recursive https://github.com/kholia/OSX-KVM.git
cd OSX-KVM
Repository güncellemeleri aşağıdaki komut aracılığıyla çekilebilir:
git pull --rebase
Bu repository, rebase tabanlı iş akışlarını yoğun bir şekilde kullanır.
- KVM’nin çalışması için ana makinede aşağıdaki ayarların yapılması gerekebilir.
sudo modprobe kvm; echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs
Bu değişikliği kalıcı hale getirmek için aşağıdaki komutu kullanabilirsiniz.
sudo cp kvm.conf /etc/modprobe.d/kvm.conf # sadece intel box'ları i̇çin
sudo cp kvm_amd.conf /etc/modprobe.d/kvm.conf # sadece amd box'ları için
Kullanıcıyı kvm
ve libvirt
gruplarına ekleyin (gerekli olabilir).
sudo usermod -aG kvm $(whoami)
sudo usermod -aG libvirt $(whoami)
sudo usermod -aG input $(whoami)
Not: Bu komutu çalıştırdıktan sonra yeniden oturum açın.
- macOS yükleyicisini indirin.
./fetch-macOS-v2.py
İstediğiniz macOS sürümünü buradan seçebilirsiniz. Bu adımı uyguladıktan sonra, mevcut klasörde BaseSystem.dmg dosyasına sahip olmalısınız.
DİKKAT: Eğer kurulum yavaş ilerliyorsa, Big Sur kurulumunun Ülke Seçimi ekranında ve benzeri yerlerde bir süre beklemesine izin verin. Başlangıç macOS kurulum sihirbazı eninde sonunda başarılı olacak.
Örnek uygulama:
$ ./fetch-macOS-v2.py
1. High Sierra (10.13)
2. Mojave (10.14)
3. Catalina (10.15)
4. Big Sur (11.7)
5. Monterey (12.6)
6. Ventura (13) - RECOMMENDED
7. Sonoma (14)
Choose a product to download (1-6): 6
Not: Modern NVIDIA GPU’lar HighSierra’da desteklenir ancak macOS’un sonraki sürümlerinde desteklenmez.
- İndirilen
BaseSystem.dmg
dosyasınıBaseSystem.img
dosyasına dönüştürün.
dmg2img -i BaseSystem.dmg BaseSystem.img
- macOS’un yükleneceği sanal bir HDD görüntüsü oluşturun. Disk görüntüsünün adını mac_hdd_ng.img’den başka bir şeye değiştirirseniz, önyükleme komut dosyalarının yeni görüntü adını gösterecek şekilde güncellenmesi gerekir.
qemu-img create -f qcow2 mac_hdd_ng.img 256G
NOT: En iyi sonuçları elde etmek için bu HDD imaj dosyasını hızlı bir SSD/NVMe disk üzerinde oluşturun.
- Artık macOS’u yüklemeye hazırsınız
Kurulum
- CLI yöntemi (birincil). Yükleme işlemini başlatmak için OpenCore-Boot.sh betiğini çalıştırmanız yeterli.
./OpenCore-Boot.sh
Not: Aynı komut dosyası tüm yeni macOS sürümleri için çalışır.
- macOS VM’ye bağlı sanal diski bölümlere ayırmak ve biçimlendirmek için macOS yükleyicisindeki Disk Yardımcı Programı aracını kullanın. Modern macOS sürümleri için APFS (varsayılan) kullanın.
- Devam edin ve macOS’u yükleyin
- (OPSİYONEL) Bu macOS VM diskini libvirt (virt-manager / virsh stuff) ile kullanın.
- macOS-libvirt-Catalina.xml dosyasını düzenleyin ve çeşitli dosya yollarını değiştirin (bu dosyada CHANGEME dizelerini arayın). Aşağıdaki komut genellikle işinizi görecektir.
sed "s/CHANGEME/$USER/g" macOS-libvirt-Catalina.xml > macOS.xml
virt-xml-validate macOS.xml
- Aşağıdaki komutu çalıştırarak bir VM oluşturun.
virsh --connect qemu:///system define macOS.xml
- Gerekirse, libvirt-qemu kullanıcısına gerekli izinleri verin
sudo setfacl -m u:libvirt-qemu:rx /home/$USER
sudo setfacl -R -m u:libvirt-qemu:rx /home/$USER/OSX-KVM- virt-manager’ı başlatın ve ardından macOS sanal makinesini başlatın.
Headless macOS
Kurulumu headless şekilde çalıştırmak isterseniz, sağlanan boot-macOS-headless.sh betiğini kullanın.
./boot-macOS-headless.sh
Beklentilerinizi Doğru Ayarlayın
Sanal Hackintosh sistemi kurma konusunda iyi iş çıkardınız! Böyle bir sistem çeşitli amaçlar için kullanılabilir (örneğin yazılım geliştirme, test etme, tersine mühendislik çalışmaları) ve bu repoda belgelenen bazı ince ayarlarla birlikte ihtiyacınız olan tek şey olabilir.
Bununla birlikte, böyle bir sistem grafik hızlandırma, güvenilir bir ses alt sistemi, USB 3 işlevselliği ve diğer benzer şeylerden yoksun olarak geliyor. Bunları etkinleştirmek için repo‘daki notlara bir göz atın.
Kurulum Sonrası
- Sanal makinenize SSH, VNC vb. aracılığıyla uzaktan erişim için giden ve gelen ağların nasıl kurulacağına ilişkin ağ notlarına bakın.
- GPU’ları ve diğer cihazları doğrudan sanal makineye geçirmek için bu notlara bakın.
- Farklı bir çözünürlüğe mi ihtiyacınız var? Bu notlara göz atın.
- iMessage ile sorun mu yaşıyorsunuz? Bu notlara göz atın.
- Tavsiye edilen macOS ince ayarları için buraya göz atın.
Proxmox ile Kurulum
Son zamanlarda tanıtılan sanallaştırma araçlarından biri de Proxmox. Bu, GNU Affero Genel Kamu Lisansı kapsamında lisanslanan ücretsiz ve açık kaynaklı bir yazılım. Ancak Proxmox VE Subscription adında ek özellikler ve profesyonel destek sunan ücretli bir kurumsal sürüm de bulunmakta.
Bugün Proxmox VE’de macOS’un nasıl çalıştırılacağını öğreneceğiz. Bu, QEMU/KVM için OpenCore imajının bir forku olan KVM-Opencore aracılığıyla mümkün oluyor. Bu, gerekli tüm dosyaları kaynak kodundan otomatik olarak oluşturmak ve en son OpenCore değişikliklerine ayak uydurmak için bir yapı sistemi eklemek üzere genişletildi. Araç, macOS Catalina, Big Sur ve Monterey’i başlatmak için test edildi ancak muhtemelen macOS’un eski sürümlerini de çalıştırabilir. Sağlanan görüntüler QEMU/KVM dağıtımları için olsa da yine de Promox ile çalışacak şekilde oluşturulabilirler.
Ön gereksinimler
Bu kılavuz için Proxmox 7’nin kurulu olması gerekir
Proxmox ana bilgisayarı aşağıdakilere sahip olmalı:
- SSE 4.2 destekli CPU
- “Core” i3/i5/i7 markasını taşıyan bir CPU nesili
Adım 1 – MacOS Kurulum ISO’sunu oluşturun
OSX-KVM reposundan kurulum için bir ISO oluşturacağız. ilk olarak. kopyayı makinenize indirin:
git clone https://github.com/thenickdude/OSX-KVM
ISO’yu bir Linux ana bilgisayarında oluşturuyorsanız aşağıdaki paketleri kurmanız gerekir:
##Debian/Ubuntuuzerinde
sudo apt update
sudo apt install qemu-utils make
Şimdi dizine gidin:
cd OSX-KVM/scripts/monterey
Şimdi imajı oluşturun:
##Minimal Imaj için
make Monterey-recovery.img
##Full Imaj için (Sadece macOS üzerinden indirilebilir)
make Monterey-full.img
Yukarıdaki komut, Monterey yükleyicisini Apple’ın yazılım dağıtım sunucularından indirecek ve Monterey-recovery.img dosyasını oluşturacak. Bu görüntü daha sonra Proxmox’ta kurulumu çalıştırmak için kullanılacak. Minimal imajda, gerekli dosyaları indirmek için kurulum sırasında internete ihtiyacınız var. Full imaj kullanıyorsanız İnternet gerekmez.
İmaj dosyasını /var/lib/vz/template/iso konumunda bulunan Proxmox ISO bölümüne atın. Aşağıdaki komutu kullanabilirsiniz:
sudo cp Monterey-recovery.img /var/lib/vz/template/iso/
Adım 2 – Bir OpenCore imajı hazırlayın
Bu adım için OpenCore imajını indirmeniz gerekmekte.
Dosyayı GitHub sürüm sayfasından indirin. Aşağıdaki komutları da kullanabilirsiniz:
##versiyonu dışarı aktarın
URL=$( curl -s https://api.github.com/repos/thenickdude/KVM-Opencore/releases/latest|grep browser_download_url|cut -d '"' -f 4|grep .iso.gz)
##Dosyayı çekin
wget $URL
Şimdi dosyayı çıkartın:
gunzip -v OpenCore-*.iso.gz
Şimdi bu ISO’yu /var/lib/vz/template/iso konumunda bulunan Proxmox ISO bölümüne atın.
sudo cp OpenCore-*.iso /var/lib/vz/template/iso
Adım 3 – OSK kimlik doğrulama anahtarını alın
Kurulum sırasında macOS, gerçek Mac donanımında çalışıp çalışmadığını kontrol eder, üçüncü taraf donanımda çalışıyorsa önyüklemeyi reddeder. Gerçek Mac donanımınızdan bir kimlik doğrulama anahtarı alarak bu sorunu çözmenin bir yolunu bulabilirsiniz.
Aşağıdaki adımları kullanarak Mac makinenizde OSK anahtarını alabilirsiniz:
Aşağıdaki dosyayı oluşturun:
$ vim smc_read.c /* * smc_read.c: Written for Mac OS X 10.5. Compile as follows: * * gcc -Wall -o smc_read smc_read.c -framework IOKit */ #include <stdio.h> #include <IOKit/IOKitLib.h> typedef struct { uint32_t key; uint8_t __d0[22]; uint32_t datasize; uint8_t __d1[10]; uint8_t cmd; uint32_t __d2; uint8_t data[32]; } AppleSMCBuffer_t; int main(void) { io_service_t service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("AppleSMC")); if (!service) return -1; io_connect_t port = (io_connect_t)0; kern_return_t kr = IOServiceOpen(service, mach_task_self(), 0, &port); IOObjectRelease(service); if (kr != kIOReturnSuccess) return kr; AppleSMCBuffer_t inputStruct = { 'OSK0', {0}, 32, {0}, 5, }, outputStruct; size_t outputStructCnt = sizeof(outputStruct); kr = IOConnectCallStructMethod((mach_port_t)port, (uint32_t)2, (const void*)&inputStruct, sizeof(inputStruct), (void*)&outputStruct, &outputStructCnt); if (kr != kIOReturnSuccess) return kr; int i = 0; for (i = 0; i < 32; i++) printf("%c", outputStruct.data[i]); inputStruct.key = 'OSK1'; kr = IOConnectCallStructMethod((mach_port_t)port, (uint32_t)2, (const void*)&inputStruct, sizeof(inputStruct), (void*)&outputStruct, &outputStructCnt); if (kr == kIOReturnSuccess) for (i = 0; i < 32; i++) printf("%c", outputStruct.data[i]); printf("\n"); return IOServiceClose(port); }
Şimdi dizinde aşağıdaki komutu çalıştırın:
xcode-select --install
gcc -o smc_read smc_read.c -framework IOKit
./smc_read
Yukarıdaki komutlar OSK’nız olan 64 karakterlik bir dize üretecek. Bunu not edin.
Adım 4 – Proxmox’ta macOS VM’i oluşturun
Şimdi gösterildiği gibi Proxmox web arayüzünden macOS sanal makinesini oluşturacağız. VM’nin adını yazın. Daha sonra kullanılacağı için macOS VM ID not edin.
ISO için OpenCore ISO dosyasını seçin.
Sistemi gösterildiği gibi ayarlayın. Grafikleri VMware compatible olarak ayarladığınızdan, Machine seçeneğini q35‘e ayarladığınızdan ve Qemu agent‘i seçip bir EFI disk eklediğinizden ve bunun için depolama alanı ayarladığınızdan emin olun
Sabit diski yapılandırın. Sabit disk 32 GB‘tan büyük olmalı.
VM için CPU’yu ayarlayın. Türü Penryn olarak seçin.
Belleği ayarlayın:
Ağ yapılandırmalarını yapın. Modeli VirtIO(paravirtualized) olarak ayarlayın.
Şimdi değişiklikleri onaylayın. Henüz VM’yi başlatmayın, önce yapılandırmaları yapmamız gerekiyor.
Donanım sekmesine gidin ve IDE0’a ikinci bir DVD sürücüsü ekleyin. Burada daha önce oluşturulan Monterey-full.img veya Monterey-recovery.img dosyasını seçin.
Ardından Proxmox ana makinenizde aşağıdaki yapılandırmaları yapın:
sudo vim /etc/pve/qemu-server/buraya-vm-ID-girin.conf
Dosyada aşağıdaki değişiklikleri yapın ve daha önce oluşturduğunuz OSK’nızı yazın:
args: -device isa-applesmc,osk="OSK-anahtarını-buraya-yazın" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off
MacOS, QEMU’nun varsayılan PS/2 klavyesini desteklemediğinden bir USB klavye ekledik. OSK anahtarını sağlamazsanız sistemin önyükleme yapamayacağını unutmayın.
Ayrıca yukarıdaki args alanına aşağıdaki CPU argümanını da eklememiz gerekiyor:
##Intel için -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc
##AMD için -cpu Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+fma,+fma4,+bmi1,+bmi2,+xsave,+xsaveopt,+rdrand,check
Bu yapılandırma, sistemi CPU’nun Penryn olduğuna inandırarak kandırır. Bu, ana CPU AMD olsa bile MacOS VM’yi kandıracak. Eğer CPU’nuz desteklemiyorsa “+invtsc” özelliğini listeden kaldırabilirsiniz.
Son olarak, “ISO’ları” (ide0 ve ide2) tanımlayan satırları bulun ve “media=cdrom” kısmını kaldırın ve “cache=unsafe” ile değiştirin. Bu, iki ISO’yu DVD değil, sabit disk olarak ele alacak.
ide0: isos:iso/Monterey-full.img,cache=unsafe,size=14G
ide2: isos:iso/OpenCore-v15.img,cache=unsafe,size=150M
Şimdi aşağıdaki gibi bir yapılandırmaya sahip olacaksınız:
args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc balloon: 0 bios: ovmf boot: order=ide2;ide0;net0 cores: 2 cpu: Penryn efidisk0: local:100/base-100-disk-0.qcow2,efitype=4m,size=528K ide0: storage1:vm-100-disk-1,cache=unsafe,size=3G ide2: storage1:vm-100-disk-2,cache=unsafe,size=152M machine: q35 memory: 6096 meta: creation-qemu=7.2.0,ctime=1681399367 name: macOS net0: virtio=7A:5B:01:76:0D:0E,bridge=vmbr0,firewall=1 numa: 0 ostype: other scsihw: virtio-scsi-pci smbios1: uuid=c3cf5b1c-2dd3-46cd-ad7b-4b8f9566056c sockets: 1 template: 1 unused0: local:100/base-100-disk-1.qcow2 unused1: local:iso/Monterey-recovery.img unused2: local:iso/OpenCore-v19.iso vga: vmware virtio0: storage1:vm-100-disk-0,iothread=1,size=37G vmgenid: 9b5673d9-0bb6-48ef-b24f-4c9771c65577
options sekmesinde, önyükleme sırasına IDE2’yi ilk sıraya koyun.
Şimdi macOS önyüklemesi sırasında bir önyükleme döngüsünden kaçınmak ve değişikliklerin yeniden başlatmaların arasında kalıcı olmasını sağlamak için aşağıdaki komutu çalıştırın:
echo 1 > /sys/module/kvm/parameters/ignore_msrs”
echo "options kvm ignore_msrs=Y" >> /etc/modprobe.d/kvm.conf && update-initramfs -k all -u
Adım 5 – Proxmox’a macOS’u yükleyin
Şimdi VM’yi başlatın; OpenCore önyükleme seçicisine önyükleme yapması gerekir. Aşağıdaki seçimi yapın “MacOS Base System”
Tam görüntü oluşturanlar için etiket olarak “Install MacOS Monterey ” ifadesini göreceksiniz. Önyükleme başlayacak:
Disk utility penceresine ilerleyin:
Buradayken sabit diskinizi (Apple Inc. VirtIO adlı) bulun ve silin:
Buna bir ad verin. Bu rehber için buna Sonoma adını vereceğiz
Silme işlemi tamamlandıktan sonra disk yardımcı programı penceresini kapatın ve Install MacOS seçeneğini seçin:
Lisans koşullarını kabul edin:
Kurulumu yapmak istediğiniz diski seçin:
Arkanıza yaslanın ve kurulumun gerçekleşmesini bekleyin. Unutmayın, bu biraz zaman alabilir:
Bu aşamada sisteminiz birkaç kez yeniden başlatılacak ve sizden “macOS Installer” seçeneğini manuel olarak seçmenizi isteyecek:
Tamamlandığında, diskinizin burada göründüğünü göreceksiniz (bizimki Sonoma olarak adlandırıldı)
Bu, kurulumun tamamlandığını ve sabit diskimize önyükleme yapabileceğimiz gerektiğini gösterir. kuruluma devam edin. Kurulum adımlar ı farklı ek birşey gerektirmediği için buraları hızlıca atlıyoruz.
Ülkeyi seçin:
Mac’inizin seri numarasını OpenCore’da yapılandırana kadar Apple Kimliğinizde oturum açmanın bu adımını atlayın. Aksi takdirde, OpenCore görüntüsünün varsayılan paylaşılan seri numarasına sahip bir Mac cihazı Apple Kimliğinize eklenecek.
İşte! Artık Mac masaüstünü başlattınız!
Adım 6 – MacOS Kurulumunu Kalıcı Hale Getirin
MacOS masaüstünü gördük ama bu işimizin bittiği anlamına gelmiyor. Kurulumu kalıcı hale getirmeniz gerekiyor. Bu, OpenCore’daki EFI bölümünün içeriğinin sabit diske kopyalanmasını içerir.
Öncelikle bu Mac kurulumunda terminali başlatın ve şu komutu kullanarak mevcut bölümleri görüntüleyin:
diskutil list
Şimdi aşağıdaki sözdizimine sahip komutu kullanarak EFI bölümünü OpenCore’dan sabit diske kopyalayacağız:
sudo dd if=<source> of=<dest>
OpenCore EFI bölümü küçük diskte (yaklaşık 150 MB) bulunur ve ana sabit disk, büyük bir diskte bulunur (30 GB’tan büyük) Apple_APFS “Container” bölümünün bulunduğu disk budur.
Bu durumda EFi bölümleri sırasıyla disk1s1 ve disk2s1 olarak adlandırılır, bu sizinkine benzemeyebilir. Şimdi bu bizim komutumuzun şöyle olmasını sağlar:
sudo dd if=/dev/disk1s1 of=/dev/disk2s1
Bu aşamada çok dikkatli olun, çünkü eğer adları yanlış alırsanız, yanlış diskin üzerine yazabilirsiniz ve kurulumu yeniden başlatmak zorunda kalırsınız!
Adım 7 – VM ayarlarına son bir değişiklik
Şimdi VM’yi kapatın ve Donanım sekmesinde hem OpenCore hem de Monterey yükleyici sürücülerini kaldırın.
Seçenekler sekmesinde önyükleme sıranızı düzenleyin ve sabit diskinizi ilk önyükleme seçeneği olarak yerleştirin.
Şimdi VM’yi başlatın; her şey yolundaysa şunu görmelisiniz:
VM’de oturum açın.
Kimlik doğrulaması yapıldıktan sonra devam edebilir ve Mac sisteminiz için istediğiniz yapılandırmaları yapabilirsiniz.
Farenizi veya klavyenizi kullanarak Monterey’i uykudan uyandıramıyorsanız, sorunu önlemek için Monterey’in Enerji Tasarrufu ayarlarından sistem uykusunu devre dışı bırakabilirsiniz.
Ayrıca şu komutu kullanarak sistemi manuel olarak da uyandırabilirsiniz:
##Proxmox ana makinenizden
qm monitor YOUR-VM-ID-HERE
system_wakeup
quit
Bununla birlikte, macOS’un Proxmox VE’de nasıl çalıştırılacağına ilişkin bu kılavuzu sonlandırıyoruz. Umarım siz de MacOS’u Proxmox’ta çalıştırabilmişsinizdir. Sorularınız varsa Techolay Sosyal üzerinden ücretsiz hesap açarak bize sorabilirsiniz.