GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare il dual boot NixOS con Mac OS X su un (U) EFI MacBook?

Questa è una versione aggiornata della mia risposta iniziale, dovrebbe funzionare per NixOS 15.09. Contiene modifiche minori rispetto alla versione iniziale che ho utilizzato per installare NixOS 14.04 con l'aiuto di nix-dev mailing list.

Configurazione iniziale

  1. MacBook 5.1 (2008) con Mac OS 10.9 e disco rigido partizionato come segue:

    a) Partizione di sistema EFI da 200 MB etichettata "EFI".

    b) Due partizioni utilizzate da Mac OS (10.9).

    c) Due partizioni ext4 vuote etichettate "nixos" e "home" e una partizione Linux Swap etichettata "swap".

    Ho utilizzato i seguenti strumenti:

    • fdisk GPT (da sotto Mac OS),

    • mkfs.ext4 (da sotto NixOS su un'unità USB avviabile),

    • mkswap .

    Ecco la mia tabella delle partizioni stampata da gdisk :

    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. Connessione Internet via cavo Ethernet.

  3. Un'unità USB formattata come FAT con MBR ed etichettata NIXOS_ISO , con una copia (trascinata e rilasciata) del contenuto dell'immagine ISO a 64 bit di NixOS 15.09 (Live CD o Minimal).

    • L'etichetta dell'unità USB deve essere NIXOS_ISO (ho provato con FLASH una volta, non ha funzionato).

    • Sembra che le immagini ISO di NixOS 15.09 non possano essere montate su Mac OS. Se l'immagine non può essere montata, è sufficiente estrarne il contenuto. Potrei estrarre il contenuto dell'immagine ISO con l'archiviatore di file Keka.

Installazione

  1. Avvia dall'unità USB tenendo premuto Alt/Option chiave al riavvio e selezionando USB EFI Boot . Accedi come "root" (senza password). Assicurati che la connessione a Internet funzioni. Per l'installazione è necessaria la connessione a Internet.

  2. Esegui

    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. Aggiungi

    nixpkgs.config.allowUnfree = true;
    

    nel /mnt/etc/nixos/configuration.nix generato file.

  4. Esegui

    nixos-install
    
  5. Riavvia:

    reboot
    

Avvio

(Questa è stata la mia esperienza con 14.04. )

Dopo il riavvio, il computer si è avviato in NixOS. Ho riavviato di nuovo, tenendo questa volta Alt/Option chiave. Il menu di avvio mostrava due elementi "EFI Boot" dall'aspetto identico. Si è scoperto che uno di essi è Mac OS e l'altro è NixOS. (Strano - prima che quello con Mac OS prendesse il nome dalla partizione Mac OS. )Ok.

Ho montato e ispezionato il contenuto della partizione di sistema EFI per curiosità:

§ 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

Tutto lì tranne /EFI/APPLE e il suo contenuto è stato creato da NixOSinstallation.

Rendere Mac OS predefinito di nuovo

(Questa è stata la mia esperienza con 14.04. )

Per rendere nuovamente Mac OS predefinito e per rendere l'elemento corrispondente in Opzione -key menu di avvio che prende il nome dalla partizione di Mac OS, bastava andare su Preferenze di Sistema...> Disco di avvio sotto Mac OS e seleziona la partizione con Mac OS. Stranamente, richiedeva l'inserimento della password dell'amministratore due volte e la partizione non veniva ancora mostrata come selezionata, ma per il resto funzionava.

Altre istruzioni

  • Per vedere sempre gummiboot menu, è sufficiente impostare boot.loader.gummiboot.timeout in configuration.nix .

  • Per configurare correttamente il mio nVidia scheda grafica, ho finito per utilizzare nouveau open source autista:

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

    Non ho lamentele al riguardo. Se uso il proprietario "nvidia" invece, le console testuali non funzionano.

    Aggiornamento per NixOS 16.09 . Ho notato che sulla mia macchina con NixOS 16.09, l'opzione services.xserver.videoDrivers non è necessario in configuration.nix affinché tutto funzioni bene, e che in effetti degrada notevolmente le prestazioni grafiche secondo alcuni test che ho fatto con glmark2 Punto di riferimento OpenGL. Ho anche osservato che selezionando "nvidia" interrompe la modalità grafica ma lascia le console di testo, contrariamente a quanto osservato con Nix OS 14.04. Tutto questo mi sembra un po' strano, ma questo è ciò che ho osservato, quindi ho rimosso questa opzione dal mio configuration.nix .

  • Per caricare il file applesmc modulo (per il sensore di movimento improvviso, ad esempio) mi è stato suggerito di aggiungere quanto segue a configuration.nix :

    boot.kernelModules = [ "applesmc" ];
    

Osservazioni e osservazioni

L'unico "problema" con NixOS sul mio MacBook che ho osservato finora è che eseguendo NixOS il mio laptop di solito diventa più caldo di 5-10 °C rispetto a Mac OS 10.9. Questo potrebbe essere un normale problema per Linux su un Mac.

Collegamenti a istruzioni di installazione alternative

  • Installa Linux su un MacBook Air, 17/06/2015 (Installazione di NixOS su un MacBook Air in configurazione dual-boot con Mac OS).

Alcuni suggerimenti aggiuntivi:

Se vuoi far funzionare la tua retroilluminazione e impedire che il tuo laptop si riprenda spontaneamente mentre il coperchio è chiuso, puoi usare qualcosa di simile al seguente nel tuo configuration.nix :

  # 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
  '';

A seconda della versione del tuo MacBook, potresti dover modificare i comandi precedenti, quindi per favore non copiare e incollare alla cieca.


Linux
  1. Come eseguire il dual boot di Manjaro e Windows 10

  2. Hardware Uefi e doppio avvio con Windows?

  3. Come accedere alle impostazioni del BIOS con Efi?

  4. Come configurare IMAP con SSL

  5. Come creare una partizione di sistema EFI?

Come installare Ubuntu 18.04 Dual Boot con Windows 10

Come installare Ubuntu 18.04 insieme a Windows 10 o 8 in Dual Boot

come configurare centos 8 per l'avvio con la vecchia versione del kernel

Come installare Linux su Macintosh e dual boot con macOS

Come configurare Nginx con SSL

Come configurare PHP-FPM con NGINX