TOBI WAS HERE! // DEM TOBI IHM SEIN BLOG

8Okt/175

VirtualBox: How to create a macOS High Sierra VM to run on a Mac host system

So I have a MacBook Pro running macOS Sierra (10.12) and I wanted to run a virtual machine (VM) of macOS High Sierra to try out the new operating system. It's always a struggle to get macOS as a guest system running on macOS as the host system, but today was my lucky day and after several failures I managed to get it running! So here is how I did it...

 

 

 

My environment

macOS Sierra 10.12.6, VirtualBox 5.1.28 with installed VirtualBox Extension Pack
You will need at least 4096 MB RAM of host memory, more is better. You also need ~20 GB disk space for the virtual machine, as well as ~18 GB free space temporarily for the creation of the install media.

 

Create a macOS install ISO file for VirtualBox

  • Download macOS High Sierra from the Mac App Store
    • Hint: if you have downloaded macOS High Sierra before the 5th of October, delete it and redownload it. Apple made some changes to the previous released version, especially to the installer, which are important to get this VM running. The version of the "Install macOS High Sierra.app" has to be 13.0.66 or above.
  • Open a Terminal window, create a "virtual USB flash drive"/disk image:
  • Mount it:
  • Put the installer files into this new disk image:
  • Unmount the disk image, so that the resource is not busy for the next step:
  • Convert the disk image into an ISO file (VirtualBox is not capable of booting from a .dmg or .sparseimage file):
  • Move it to the desktop folder and rename the extension of the file to .iso:
  • Delete the sparseimage in the tmp folder:

 

Create the VM

  • Create a new machine
    • Name: macOS (or whatever you want to call it)
    • Type: Mac OS X
    • Version: Mac OS X (64-bit) or macOS 10.13 High Sierra (64-bit)
    • Memory size: 4096 MB
    • Virtual hard disk size: ~20 GB (an empty installation of macOS High Sierra takes about 11,4 GB)
  • Edit the new machine
    • System -> Motherboard -> Boot Order: deactivate Floppy

    • System -> Processor -> change CPU to two, optional: set execution cap to 80% (this value is up to you and your host system configuration)
    • Display -> Screen -> Video Memory: increase it to 128 MB

    • Storage -> virtual hard disk -> don't activate "Solid-state Drive" (this is pretty important, because the macOS installer converts your virtual partition to APFS if it detects it as a solid state drive, unfortunately VirtualBox doesn't support APFS at this moment, so the boot process will fail while installing High Sierra. For non solid state drives, the installer is not going to convert the virtual disk to APFS and leave it untouched as a HFS+ volume)
    • Storage -> Optical Drive ("Empty") -> choose the HighSierra.iso from your desktop folder (to choose it, click on the CD icon next to "SATA Port 1")
    • Audio -> deactivate Enable Audio

    • stick with the default values of all the other options and apply the settings with the "OK" button

 

Installation of macOS High Sierra Part 1

  • Start the VM
  • wait until the language chooser appears and choose your language (optional: change the keyboard layout to your country keyboard layout in the top right corner with a click on the US flag icon)
  • Open Disk Utility
  • Click on "View" in the top left corner of the Disk Utility window and choose "Show All Devices"
  • Highlight "VBOX HARDDISK Me...", then click "Erase", choose a name for the virtual hard disk and click the "Erase" button to partition and format the virtual hard disk
  • When the erase process is done, close Disk Utility
  • Next choose "Install macOS"
  • Click Continue
  • Agree to the terms of the license agreement
  • Choose your previously created virtual hard disk and finally start the installation with a click on "Install"
  • The installer installs some files and after a while the machine will reboot automatically

 

Installation of macOS High Sierra Part 2

  • After the reboot, the VM will display an error message: "Boot Failed. Mac OS X"
  • Because of this error, after 10 seconds, the machine will then do a "fallback boot" into the "Part 1" installation process. Why? VirtualBox doesn't recognize that there is a new disk, containing a second EFI, in which we need to boot into. So we have to do this manually.
  • To do this, restart the machine (CMD+R will hard reset it, or, if the "Part 1"-Installer is already running, click on the Apple logo in the menu bar and choose "Restart").
  • Now you have to be very fast: while the VM restarts, press the fn+F12 keys a few times, so that it gets into the VirtualBox boot manager. You have to be very quick! If the machine is already displaying "Boot Failed. Mac OS X", hit CMD+R to reset it and try again.
  • If you were fast enough, choose "Boot Maintenance Manager" and hit the Enter key.
  • Go to "Boot from File" and hit Enter again.
  • Choose the entry with ...HD(2,GPT)...
  • Choose <macOS Install Data>

  • Choose <Locked Files>

  • Choose <Boot Files>

  • Choose boot.efi, this will boot the machine into the "Part 2" installation process of macOS
  • macOS High Sierra will then continue to install itself.
  • Click through the steps of the "first run wizard"
  • ...and you are done! 🙂
  • Finally shutdown the virtual machine and create a snapshot of it in the Virtual Box main interface, just in case... it's always nice to have a backup 😉

 

Have fun with your newly created virtual machine running macOS High Sierra 10.13!

25Feb/173

macOS: nicht automatisch zu (Audio-) Bluetooth Geräten verbinden

Ich habe bei meinem MacBook Pro immer Bluetooth an, damit es sich bspw. automatisch per Apple Watch entsperrt und diverse iCloud Funktionen, wie die allgemeine Zwischenablage oder Handoff, nutzbar sind.
Ab und zu möchte ich vom MacBook Musik über meinen AV-Receiver ausgeben. Da dieser leider noch keine WLAN- oder Bluetooth-Konnektivität besitzt, habe ich ihn mit einem Audio Bluetooth Receiver (Philips AEA2700, empfehlenswertes Produkt!) nachgerüstet. Einziger Nachteil: Einmal gekoppelt, verbindet sich das MacBook gerne mal automatisch und ohne Nachfrage mit dem Bluetooth Receiver und gibt die Musik über diesen wieder. Das wollte ich unterbinden, da es ziemlich nervig sein kann und ich selber manuell bestimmen möchte, über welchen Ausgang mein MacBook die Musik ausgibt.

Man kann diese Funktionalität, zumindest für Audio Empfänger, unter macOS abstellen.

Dazu öffnet man einfach das Terminal und gibt folgenden Befehl ein:

Da der Befehl per sudo mit Systemrechten ausgeführt wird, ist noch die Eingabe eines Administrator Passwortes notwendig. Die Einstellung wird anschließend sofort übernommen und ist aktiv, ein Neustart o.ä. ist nicht von Nöten.

Damit verbindet sich macOS zu gekoppelten Audio Bluetooth Empfängern ab sofort nicht mehr automatisch.

Möchte man die Einstellung wieder rückgängig machen, ersetzt man einfach am Ende der Befehlszeile die "1" durch eine "0".

1Mai/140

Citrix: Clientnamen unter Mac OS X festlegen

Normalerweise meldet sich der Rechner, mit dem man sich auf eine Citrixfarm verbindet, mit dem Hostnamen des Clients. Dieser Name wird dann auch in der Windowssitzung des Benutzers in die Umgebungsvariable %CLIENTNAME% übernommen. Auch die Citrix Access Management Console/Citrix App Center zeigen dann diesen Hostnamen des Clients an.

Möchte man verhindern, dass der Hostname des Clients ausgelesen wird, kann man den Clientnamen auch anpassen/"vorgaukeln". Unter Windows kann dies über einen Registrykey vorgenommen werden. Unter OS X geht das folgendermaßen:

  1. Mit einem Texteditor die Datei ~/Library/Preferences/Citrix\ ICA\ Client/Config bearbeiten
  2. Im Abschnitt [WFClient] den Eintrag ClientName=XYZ einfügen
  3. XYZ entspricht dann dem zur Citrixfarm gemeldeten Clientnamen

Diese Anleitung bezieht sich auf das Citrix Online Plugin 11.2 unter OS X, ob es auch mit dem neueren Citrix Receiver so funktioniert, habe ich nicht getestet.

// Update 1: Ich habe mir den aktuellsten Citrix Receiver für OS X (Version 11.8.2) installiert. Die oben beschriebene Methode funktioniert hier ebenfalls, allerdings liegt die Config Datei jetzt in folgendem Pfad:
~/Library/Application Support/Citrix Receiver/Config

Das Online Plugin sollte man vor der Installation des Receivers deinstallieren. Die Uninstall Routine ist hier abgelegt: /Library/Application Support/Citrix/Uninstall Citrix online plug-in
(vorher alle Browser beenden nicht vergessen!)

// Update 2: Nach gut einem Jahr hat Citrix den Receiver für OS X geupdated. Version "11.9 Technical Preview" funktioniert genau so, wie unter Update 1 (s.o.) beschrieben.

21Jul/130

OS X: Mauszeiger verschwindet bei Vollbildanwendung

Problem: Hat man mehr als einen Bildschirm am Mac angeschlossen und öffnet eine Anwendung im Vollbild (z.B. ein Youtube Video) auf einem Bildschirm und möchte auf einem anderen Bildschirm irgendetwas anklicken, verschwindet fortan der Mauszeiger. Elemente lassen sich zwar anklicken, aber da der Mauszeiger nicht mehr angezeigt wird erweißt sich dies als ziemlich schwierig.

Woran liegt das? Ich kann es nicht sagen. Es wird ein Bug in OS X sein, denn es taucht nicht nur bei Youtube Videos auf (=> Flash Player), sondern auch z.B. VLC, etc.

 

Lösung: Auf dem Bildschirm, wo der Mauszeiger verschwindet oben auf die Status-/Finderleiste klicken und schon erscheint der Mauszeiger wieder.

Leider nur ein Workaround, man kann nur auf einen Bugfix von Apple warten.

30Mrz/131

Time Machine: Prüfung des Backups fehlgeschlagen

Ich sichere mein MacBook Air mittels Time Machine. Time Machine ist eine wunderbare Backuplösung, die für mich perfekt funktioniert, sie ist kostenlos und schon im System integriert. Die Einrichtung dauert nur wenige Minuten, danach läuft alles automatisch und im Hintergrund ab. Eben so, wie man das von Apple Software gewohnt ist. It just works!

Die Backups sichere auf meinem QNAP NAS. Das NAS bietet eine Time Machine Funktionalität an, ähnlich einer Time Capsule von Apple.

Vorgestern wollte das Backup aber leider nicht klappen. Time Machine zeigte mir die Meldung:

Time Machine - Überprüfen des Backups fehlgeschlagen

Time Machine hat eine Prüfung Ihrer Backups durchgeführt. Um die Zuverlässigkeit zu erhöhen, muss Time Machine ein neues Backup für Sie erstellen.

Neues Backup erstellen? Das sollte wohl ein schlechter Witz sein und würde bedeuten, dass die Sicherungen des letzten 3/4 Jahres hinüber wären.

Backup später durchführen lies die Meldung verschwinden, der Backupvorgang startete aber natürlich nicht.

Per Google kam ich auf ein Supportdokument bei Apple. OS X führt ca. alle 4 Wochen eine Überprüfung der Backups durch. Eine Lösung zum Beheben oder Reparieren der Backups findet man dort aber leider nicht. Letztendlich habe ich eine Seite gefunden, die mir eine Lösung präsentierte, die dann bei mir auch geklappt hat. Die Durchführung möchte ich hier kurz auf Deutsch erklären:

  1. Mit der Netzwerkfreigabe verbinden, auf dem die Time Machine Backups gespeichert werden. Bei einem QNAP NAS heißt die Freigabe TMBackup, Benutzername ist TimeMachine, das Passwort (sofern vorhanden) sollte einem bekannt sein. Man kann es aber über das Webinterface des NAS ändern: Backup > Time Machine.
    Das Verbinden per Finder zur Netzwerkfreigabe geht per CMD+K, im darauf folgenden Fenster verbindet man sich mittels AFP Protokoll:
    afp://<IP des NAS>/TMBackup
    Benutzername: TimeMachine
    Passwort: das Passwort
  2. Terminal öffnen (Programme > Dienstprogramme oder per Spotlight: Terminal)
  3. Die Befehle müssen als root ausgeführt werden, also loggen wir uns mit diesem im Terminal ein: sudo su -
  4. Die Backups sind bereits als beschädigt gekennzeichnet. Damit Time Machine demnächst wieder Backups anlegt, müssen wir diese Kennzeichnung zurücksetzen. Uns interessiert der Name des sog. «sparsebundles» (ein Image Typ), dazu lassen wir uns mit  ls -al /Volumes/<Name der Netzwerkfreigabe>  den Verzeichnisinhalt der eingebundenen Netzwerkfreigabe anzeigen.
    Das Image hat üblicherweise den Namen des Gerätes (in meinem Fall z.B.: MacBookAir.sparsebundle ).
    Letztendlich entfernen wir das "beschädigt"-Flag per chflags -R nouchg /Volumes/<Name der Netzwerkfreigabe>/<Name des Image>.sparsebundle
    In meinem Fall also: chflags -R nouchg /Volumes/TMBackup/MacBookAir.sparsebundle
    Je nach Größe kann das jetzt etwas dauern.
  5. Ist der vorherige Vorgang abgeschlossen kann man die Überprüfung starten per:
    hdiutil attach -nomount -noverify -noautofsck /Volumes/<Name der Netzwerkfreigabe>/<Name des Image>.sparsebundle
    Es folgt eine Ausgabe (beispielhaft): 

    Auch dieser Vorgang kann sehr lange dauern. Wenn man die Möglichkeit hat, sollte man alles von einem Rechner ausführen, der per Netzwerkkabel mit dem Netzwerk verbunden ist.
  6. Den Status des Prüfvorgangs kann man sich anzeigen lassen: tail -f /var/log/fsck_hfs.log
  7. Wenn der Vorgang abgeschlossen ist, sieht man ein The Volume was repaired successfully (erfolgreich repariert) oder The Volume could not be repaired (konnte nicht erfolgreich reparieren).
  8. Bei letzterem Fall kann man es nochmal probieren: fsck_hfs -drfy /dev/diskXsY (X und Y müssen ersetzt werden, mit dem Wert, der vor Apple_HFSX steht), im hier gezeigten Beispiel wäre das also: fsck_hfs -drfy /dev/disk2s2
    Die Parameter -drfy stehen übrigens für: 

    • d für "Show Debug" (Anzeigen, was passiert)
    • r für "Rebuild Catalog Tree" (Katalog neu aufbauen)
    • f für "Force" (erzwingen)
    • y für "yes" (Abfragen automatisch mit 'ja' bestätigen)
  9. Anschließend bindet man das Volume aus dem Dateisystem aus: hdiutil detach /dev/diskXsY (X und Y wieder ersetzen).
  10. Zum Schluß muss man noch eine Datei bearbeiten. Sie enthält Infos zur letzten Backupüberprüfung. Auch hier muss man die Info zurücksetzen. Die Datei liegt auf oberster Ebene der Time Machine Netzwerkfreigabe und heißt com.apple.TimeMachine.MachineID.plist. Sie kann mit TextEdit geöffnet und bearbeitet werden.
    Zwei Zeilen müssen komplett entfernt werden: 

    Der Abschnitt:

    muss geändert werden zu:
  11. Jetzt kann man die Netzfreigabe wieder trennen und ein Backup manuell per Time Machine anstarten. Die ursprüngliche Fehlermeldung sollte jetzt nicht mehr auftauchen.