GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie konfiguriere ich Dual-Boot-NixOS mit Mac OS X auf einem (U)EFI MacBook?

Dies ist eine aktualisierte Version meiner ersten Antwort, sie sollte für NixOS 15.09 funktionieren. Es enthält geringfügige Änderungen im Vergleich zur ursprünglichen Version, mit der ich NixOS 14.04 mit etwas Hilfe von nix-dev installiert habe Mailingliste.

Erste Einrichtung

  1. MacBook 5,1 (2008) mit Mac OS 10.9 und wie folgt partitionierter Festplatte:

    a) 200 MB große EFI-Systempartition mit der Bezeichnung „EFI“.

    b) Zwei Partitionen, die von Mac OS (10.9) verwendet werden.

    c) Zwei leere ext4-Partitionen mit den Bezeichnungen „nixos“ und „home“ und eine Linux-Swap-Partition mit der Bezeichnung „swap“.

    Ich habe die folgenden Tools verwendet:

    • GPT fdisk (unter Mac OS),

    • mkfs.ext4 (unter NixOS auf einem bootfähigen USB-Laufwerk),

    • mkswap .

    Hier ist meine Partitionstabelle, wie sie von gdisk gedruckt wird :

    Number  Start (sector)    End (sector)  Size       Code  Name
       1              40          409639   200.0 MiB   EF00  EFI System Partition
       2          409640       104603575   49.7 GiB    AF00  Untitled
       3       104865720       261418767   74.7 GiB    AF00  Untitled
       4       261680912       287071535   12.1 GiB    8302  home
       5       287071536       307888927   9.9 GiB     8300  nixos
       7       307888928       312581774   2.2 GiB     8200  swap
    
  2. Kabel-Ethernet-Internetverbindung.

  3. Ein USB-Laufwerk, das als FAT mit MBR formatiert und mit NIXOS_ISO gekennzeichnet ist , mit einer Kopie (Drag and Drop) des Inhalts des NixOS 15.09 64-Bit-ISO-Image (Live-CD oder Minimal).

    • Die Bezeichnung des USB-Laufwerks muss sei NIXOS_ISO (Ich habe es mit FLASH versucht einmal hat es nicht funktioniert).

    • Es scheint, dass NixOS 15.09 ISO-Images nicht unter Mac OS gemountet werden können. Wenn das Image nicht gemountet werden kann, reicht es aus, seinen Inhalt zu extrahieren. Ich konnte den Inhalt des ISO-Images mit dem Keka-Dateiarchivierer extrahieren.

Installation

  1. Booten Sie vom USB-Laufwerk, indem Sie Alt/Option gedrückt halten Taste beim Neustart und durch Auswahl von USB EFI Boot . Melden Sie sich als „root“ (ohne Passwort) an. Stellen Sie sicher, dass die Internetverbindung funktioniert. Für die Installation ist eine Internetverbindung erforderlich.

  2. Ausführen

    swapon /dev/disk/by-label/swap
    mount /dev/disk/by-label/nixos /mnt
    mkdir /mnt/boot
    mkdir /mnt/home
    mount /dev/disk/by-label/EFI  /mnt/boot
    mount /dev/disk/by-label/home /mnt/home
    nixos-generate-config --root /mnt
    
  3. Hinzufügen

    nixpkgs.config.allowUnfree = true;
    

    in der generierten /mnt/etc/nixos/configuration.nix Datei.

  4. Ausführen

    nixos-install
    
  5. Neustart:

    reboot
    

Booten

(Das war meine Erfahrung mit 14.04. )

Nach dem Neustart bootete der Computer in NixOS. Ich startete erneut und hielt dieses Mal die Alt/Option gedrückt Schlüssel. Das Startmenü zeigte zwei identisch aussehende „EFI Boot“-Elemente. Es stellte sich heraus, dass eines davon Mac OS und das andere NixOS ist. (Seltsam – bevor das mit Mac OS nach der Mac OS-Partition benannt wurde. )Okay.

Ich habe aus Neugierde den Inhalt der EFI-Systempartition gemountet und überprüft:

§ tree /Volumes/EFI/
.
├── EFI
│   ├── APPLE
│   │   ├── EXTENSIONS
│   │   │   └── Firmware.scap
│   │   └── FIRMWARE
│   │       └── MB51_007D_03B_LOCKED.scap
│   ├── Boot
│   │   └── BOOTX64.EFI
│   ├── gummiboot
│   │   └── gummibootx64.efi
│   └── nixos
│       ├── 5683z247xmsrh4lyr2hgpxwlb9gg5wyl-linux-3.12.20-bzImage.efi
│       └── mmjxbf6vwp5mwb384yfd6c8vkhd19gx8-initrd-initrd.efi
└── loader
    ├── entries
    │   └── nixos-generation-1.conf
    └── loader.conf

Alles da außer /EFI/APPLE und sein Inhalt wurde von NixOSinstallation erstellt.

Mac OS wieder zum Standard machen

(Das war meine Erfahrung mit 14.04. )

Mac OS wieder zum Standard zu machen und den entsprechenden Eintrag in der Option vorzunehmen -key Boot-Menü, das nach der Mac OS-Partition benannt ist, genügte es, zu Systemeinstellungen...> Startvolume zu gehen unter Mac OS und wählen Sie die Partition mit Mac OS aus. Seltsamerweise musste das Admin-Passwort zweimal eingegeben werden, und die Partition wurde immer noch nicht als ausgewählt angezeigt, aber ansonsten funktionierte es.

Andere Anweisungen

  • Um immer Gummiboot zu sehen Menü genügt es, boot.loader.gummiboot.timeout einzustellen in configuration.nix .

  • Um mein nVidia richtig zu konfigurieren Grafikkarte, landete ich bei der Open-Source nouveau Fahrer:

    services.xserver.videoDrivers = [ "nouveau" ];
    

    Ich habe keine Beschwerden darüber. Wenn ich den proprietären "nvidia" verwende stattdessen funktionieren Textkonsolen nicht.

    Update für NixOS 16.09 . Ich habe das auf meiner Maschine mit NixOS 16.09 beobachtet, die Option services.xserver.videoDrivers wird in configuration.nix nicht benötigt dass alles gut funktioniert, und dass es tatsächlich die Grafikleistung merklich verschlechtert, wie aus einigen Tests hervorgeht, die ich mit glmark2 durchgeführt habe OpenGL-Benchmark. Ich habe auch beobachtet, dass die Auswahl von "nvidia" unterbricht den Grafikmodus, lässt aber Textkonsolen, im Gegensatz zu dem, was ich bei Nix OS 14.04 beobachtet habe. Das sieht für mich alles etwas seltsam aus, aber das ist, was ich beobachtet habe, also habe ich diese Option aus meiner configuration.nix entfernt .

  • Zum Laden der applesmc Modul (zum Beispiel für den plötzlichen Bewegungssensor) wurde mir vorgeschlagen, Folgendes zu configuration.nix hinzuzufügen :

    boot.kernelModules = [ "applesmc" ];
    

Bemerkungen und Beobachtungen

Das einzige "Problem" mit NixOS auf meinem MacBook, das ich bisher beobachtet habe, ist, dass mein Laptop unter NixOS normalerweise 5-10 °C heißer wird als unter Mac OS 10.9. Dies könnte ein übliches Problem für Linux auf einem Mac sein.

Links zu alternativen Installationsanweisungen

  • Install Linux on a MacBook Air, 17.06.2015 (Installieren von NixOS auf einem MacBook Air in einer Dual-Boot-Konfiguration mit Mac OS).

Einige zusätzliche Tipps:

Wenn Sie Ihre Hintergrundbeleuchtung zum Laufen bringen und verhindern möchten, dass Ihr Laptop spontan wieder hochfährt, während der Deckel geschlossen ist, können Sie Folgendes in Ihrem configuration.nix verwenden :

  # Enable the backlight control on rMBP 
  # Disable USB-based wakeup
  # see: https://wiki.archlinux.org/index.php/MacBookPro11,x
  powerManagement.powerUpCommands = ''
    if [[ "$(cat /sys/class/dmi/id/product_name)" == "MacBookPro11,3" ]]; then
      ${pkgs.pciutils}/bin/setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0

      if cat /proc/acpi/wakeup | grep XHC1 | grep -q enabled; then
        echo XHC1 > /proc/acpi/wakeup
      fi
    fi
  '';

Abhängig von Ihrer MacBook-Version müssen Sie möglicherweise die obigen Befehle optimieren, kopieren Sie sie also nicht blind und fügen Sie sie ein.


Linux
  1. So starten Sie Manjaro und Windows 10 dual

  2. Dual Boot, Windows 7 und Ubuntu 12.04 mit oder ohne Efi konfigurieren?

  3. Uefi-Hardware und duales Booten mit Windows?

  4. Wie greife ich mit Efi auf die Bios-Einstellungen zu?

  5. Wie erstelle ich eine EFI-Systempartition?

So installieren Sie Ubuntu 18.04 Dual Boot mit Windows 10

So installieren Sie Ubuntu 18.04 zusammen mit Windows 10 oder 8 in Dual Boot

Wie konfiguriere ich Centos 8, um mit der alten Kernel-Version zu booten?

So installieren Sie Linux auf einem Macintosh und booten doppelt mit macOS

So konfigurieren Sie Nginx mit SSL

So konfigurieren Sie PHP-FPM mit NGINX