Στον σημερινό οδηγό θα δούμε πως μπορούμε να εγκαταστήσουμε το macOS μέσα σε εικονική μηχανή μέσω KVM στο Linux. Θα χρησιμοποιήσουμε μερικά έτοιμα script για εύκολη δημιουργία του κατάλληλου virtual machine για το macOS.

Λίγα λόγια για το macOS

Το macOS είναι το λειτουργικό σύστημα που χρησιμοποιείται στους υπολογιστές mac. Αρχιτεκτονικά μιλώντας, βασίζεται στο λειτουργικό σύστημα Unix και στις τεχνολογίες που αναπτύχθηκαν μεταξύ 1985 και 1997 στη NeXT, εταιρεία που ο ίδιος ο ιδρυτής της Apple Steve Jobs δημιούργησε μετά την αποχώρηση από την Apple το 1985.

Ο πυρήνας του macOS είναι ο XNU (Xnu is Not Unix) και μαζί με τον Mach αποτελεί υποσύνολο του Darwin. O Darwin είναι ένα ανοιχτού κώδικα λειτουργικό σύστημα τύπου-Unix , που κυκλοφόρησε για πρώτη φορά η Apple το 2000. Αποτελείται από κώδικα που αναπτύχθηκε από την Apple, καθώς και κώδικα που προέρχεται από τα λειτουργικά NeXTSTEP, BSD, Mach και άλλων έργων ανοιχτού κώδικα.

Λόγο των παραπάνω, είναι ιδιαίτερα δημοφιλές λειτουργικό στους developers, στους DevOps κλπ που αναπτύσσουν εφαρμογές και λύσεις για web και cloud υπηρεσίες. Είναι και ένας από τους λόγους που η Microsoft αναγκάστηκε να ενσωματώσει το Linux στο Windows 10 με σκοπό να διατηρήσει αλλά και να προσελκύσει αυτούς τους developers.

Το macOS σε Virtual Machine

Για τους ίδιους λόγους, η ίδια η Apple έχει «επιτρέψει» να μπορεί να χρησιμοποιεί κάποιος το macOS μέσω των εμπορικών λύσεων Virtualization όπως είναι το VMware Fusion/ESXi και το Parallels αρκεί βέβαια η όλη διαδικασία να γίνεται σε υπολογιστή Mac.

Εγκατάσταση macOS μέσα σε Linux μέσω KVM
Εγκατάσταση macOS μέσα σε Linux μέσω KVM

Παρόλο που έχει δημιουργηθεί μια τεράστια κοινότητα Hackintosh (χρήστες που κάνουνε εγκατάσταση το macOS ως βασικό λειτουργικό σε PC) η Apple δεν επιτρέπει την χρήση του με αυτή την μορφή. Επίσης, επειδή όλο το υλικό του PC πρέπει να είναι προσεκτικά επιλεγμένο για να μπορεί να δουλέψει ως Hackintosh, αρκετοί Dev, DevOps, Sysadmins, Pentesters καταφεύγουν στην λύση του Virtualization.

Στην περίπτωσή μας, μιας και το κάνουμε για εκπαιδευτικούς λόγους, θα χρησιμοποιήσουμε την ενσωματωμένη στον πυρήνα Linux, τεχνολογία Visrtualization που ονομάζεται KVM. Πριν όμως ξεκινήσετε υπάρχουν κάποιες προαπαιτήσεις για να μπορέσετε να το καταφέρετε:

Advertisements

Προετοιμασία της εγκατάστασης macOS σε εικονική μηχανή

Πρώτα από όλα θα προετοιμάσουμε τον πυρήνα Linux ώστε να αποφευχθούν κάποια κρασαρίσματα της εικονικής μηχανής:

sudo su
echo 1 > /sys/module/kvm/parameters/ignore_msrs

Για να διατηρηθεί η αλλαγή στην επόμενη επανεκκίνηση, πάλι ως root, θα πρέπει να το ρυθμίσουμε:

echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf

exit

Έπειτα θα χρειαστεί να εγκαταστήσουμε τα απαραίτητα εργαλεία :

# Ubuntu:
sudo apt install qemu-system qemu-utils python3 python3-pip virt-manager git

# openSUSE Tumbleweed:
sudo zypper in qemu-tools qemu-kvm qemu-x86 qemu-audio-pa python3-pip

# Fedora
sudo dnf install qemu qemu-img python3 python3-pip

Τέλος κατεβάζουμε τα εργαλεία που θα μας αυτοματοποιήσει την διαδικασία εγκατάστασης του macOS μέσα σε VM:

git clone https://github.com/foxlet/macOS-Simple-KVM.git

Δημιουργία τη εικονικής μηχανής για το macOS

Μπαίνουμε στον φάκελο που δημιουργήθηκε με το git και χρησιμοποιούμε το jumpstart.sh για να κάνουμε λήψη των μέσων εγκατάστασης για macOS. Η προεπιλεγμένη εγκατάσταση χρησιμοποιεί Catalina, αλλά μπορείτε να επιλέξετε την έκδοση macOS προσθέτοντας είτε --high-sierra, --mojave, είτε --catalina. Για παράδειγμα:

./jumpstart.sh --mojave

Έπειτα δημιουργήστε έναν κενό δίσκο χρησιμοποιώντας το qemu-img, αλλάζοντας το όνομα και το μέγεθος (όχι μικρότερα από 20G) του ανάλογα με την προτίμηση σας:

qemu-img create -f qcow2 MyDisk.qcow2 64G

Ανοίξτε το αρχείο basic.sh και προσθέστε το στο τέλος

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

Αποθηκεύστε και κλείστε το αρχείο.

Εγκατάσταση του macOS στον εικονικό υπολογιστή

Αφού κάνατε την απαραίτητη αλλαγή, όπως δείξαμε πιο πάνω, μένει να τρέξετε το basic.sh για να ξεκινήσει η εγκατάσταση.

./basic.sh

Θα ανοίξει ένα παράθυρο Qemu στο οποίο θα μπορέσετε να κάνετε εγκατάσταση το macOS

Εγκατάσταση macOS μέσα σε Linux μέσω KVM - εκκίνηση εγκατάστασης
macOS σε Linux μέσω QEMU/KVM

Μόλις κάνετε κλικ με το ποντίκι μέσα στο παράθυρο, θα δεσμευτεί απο την εικονική μηχανή οπότε όταν χρειαστεί να το αποδεσμεύσετε, πατάτε τον συνδυασμό πλήκτρων ctrl+alt+g

Πατήστε λοιπόν enter στο κεντρικό εικονίδιο για να ξεκινήσετε πρώτα την διαμόρφωση του δίσκου που φτιάξατε επιλέγοντας το Disk Utility

Εγκατάσταση macOS μέσα σε Linux μέσω KVM - χρήση του Dsik Utility
Erase Disk μέσω του Disk Utility

Εκεί διαλέγετε τον δίσκο που είχατε ετοιμάσει πριν (θα το καταλάβετε από το μέγεθος του) και πατάτε Erase. Κλείνετε το Disk Utility για να επιστρέψετε στην προηγούμενη οθόνη και στην οποία επιλέγετε Reinstall macOS.

Εγκατάσταση macOS μέσα σε Linux μέσω KVM - ολοκλήρωση
Η διαδικασία μπορεί να πάρει πάνω από μια ώρα

macOS με Virt-manager

Αν επιθυμείτε να διαχειρίζεστε την εικονική μηχανή macOS μέσω γραφικού περιβάλλοντος τότε θα χρησιμοποιήσετε το make.sh για να εισάγετε το προφίλ της μηχανής στο Virt-manager:

sudo ./make.sh --add

Μόλις ανοίξετε το virt-manager λογικά το macOS θα είναι στις διαθέσιμες εικονικές μηχανές.

Για περισσότερες πληροφορίες σχετικά με το πως θα βελτιώσετε την απόκριση της μηχανής, η θέματα όπως bridged networking, GPU passthrough, screen resolution δείτε την παραπομπή απο κάτω.