GNU/Linux >> Znalost Linux >  >> Linux

Jak nakonfigurovat dual boot NixOS s Mac OS X na (U)EFI MacBooku?

Toto je aktualizovaná verze mé původní odpovědi, měla by fungovat pro NixOS 15.09. Obsahuje drobné úpravy oproti původní verzi, kterou jsem použil k instalaci NixOS 14.04 s pomocí nix-dev seznam adresátů.

Počáteční nastavení

  1. MacBook 5,1 (2008) s Mac OS 10.9 a pevným diskem rozděleným takto:

    a) 200 MB systémový oddíl EFI označený jako "EFI".

    b) Dva oddíly používané systémem Mac OS (10.9).

    c) Dva prázdné oddíly ext4 označené „nixos“ a „home“ a oddíl Linux Swap označený jako „swap“.

    Použil jsem následující nástroje:

    • GPT fdisk (z Mac OS),

    • mkfs.ext4 (z NixOS na spouštěcí jednotce USB),

    • mkswap .

    Zde je moje tabulka oddílů vytištěná 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. Kabelové ethernetové připojení k internetu.

  3. Jednotka USB naformátovaná jako FAT s MBR a označená NIXOS_ISO , s kopií (přetažením) obsahu 64bitového obrazu ISO NixOS 15.09 (Live CD nebo Minimal).

    • Štítek jednotky USB musí být NIXOS_ISO (zkoušel jsem s FLASH jednou to nefungovalo).

    • Zdá se, že obrazy ISO NixOS 15.09 nelze připojit pod Mac OS. Pokud obraz nelze připojit, stačí rozbalit jeho obsah. Mohl bych extrahovat obsah obrazu ISO pomocí archivátoru souborů Keka.

Instalace

  1. Zaveďte systém z jednotky USB podržením Alt/Option při restartování a výběrem USB EFI Boot . Přihlaste se jako "root" (bez hesla). Ujistěte se, že připojení k internetu funguje. Pro instalaci je nutné připojení k internetu.

  2. Provést

    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. Přidat

    nixpkgs.config.allowUnfree = true;
    

    ve vygenerovaném souboru /mnt/etc/nixos/configuration.nix soubor.

  4. Provést

    nixos-install
    
  5. Restartovat:

    reboot
    

Bootování

(Toto byla moje zkušenost s 14.04. )

Po restartu počítač nabootoval do NixOS. I restartoval jsem se znovu, tentokrát s Alt/Option Zaváděcí nabídka ukázala dvě identicky vypadající položky „EFI Boot“. Ukázalo se, že jedna z nich je Mac OS a druhá NixOS. (Zvláštní – předtím, než byla ta s Mac OS pojmenována podle oddílu Mac OS. )Dobře.

Připojil jsem a prohlédl jsem si obsah systémového oddílu EFI ze zvědavosti:

§ 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

Vše kromě /EFI/APPLE a jeho obsah byl vytvořen instalací NixOS.

Opětovné nastavení Mac OS jako výchozího

(Toto byla moje zkušenost s 14.04. )

Chcete-li znovu nastavit Mac OS jako výchozí a provést odpovídající položku v Option -key boot menu pojmenované podle oddílu Mac OS, stačilo přejít do System Preferences...> Startup Disk pod Mac OS a vyberte oddíl s Mac OS. Kupodivu to vyžadovalo dvakrát zadat heslo správce a oddíl se stále nezobrazoval jako vybraný, ale jinak to fungovalo.

Další pokyny

  • Chcete-li vždy vidět gummiboot stačí nastavit boot.loader.gummiboot.timeout v configuration.nix .

  • Pro správnou konfiguraci mé nVidia grafické kartě, nakonec jsem použil open-source nouveau řidič:

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

    Nemám na to žádné stížnosti. Pokud použiji proprietární "nvidia" místo toho textové konzole nefungují.

    Aktualizace pro NixOS 16.09 . Všiml jsem si, že na mém počítači s NixOS 16.09 je volba services.xserver.videoDrivers není potřeba v configuration.nix aby vše fungovalo dobře a že ve skutečnosti znatelně snižuje grafický výkon podle několika testů, které jsem provedl s glmark2 benchmark OpenGL. Také jsem si všiml, že výběr "nvidia" přeruší grafický režim, ale opustí textové konzole, na rozdíl od toho, co jsem pozoroval u Nix OS 14.04. Tohle všechno mi přijde trochu divné, ale tohle je to, co jsem si všiml, takže jsem tuto možnost odstranil ze svého configuration.nix .

  • Chcete-li načíst soubor applesmc modulu (například pro snímač náhlého pohybu) mi bylo navrženo přidat následující do configuration.nix :

    boot.kernelModules = [ "applesmc" ];
    

Poznámky a postřehy

Jediný „problém“ s NixOS na mém MacBooku, který jsem zatím pozoroval, je ten, že se s NixOS můj notebook obvykle zahřívá o 5-10 °C než pod Mac OS 10.9. To může být obvyklý problém pro Linux na Macu.

Odkazy na alternativní pokyny k instalaci

  • Instalujte Linux na MacBook Air, 17. 6. 2015 (Instalace NixOS na MacBook Air v konfiguraci s duálním spouštěním s Mac OS).

Několik dalších tipů:

Pokud chcete zprovoznit podsvícení a zabránit tomu, aby se notebook při zavřeném víku samovolně obnovil, můžete v configuration.nix použít něco jako následující :

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

V závislosti na verzi vašeho MacBooku možná budete muset vyladit výše uvedené příkazy, takže je prosím slepě nekopírujte a nevkládejte.


Linux
  1. Jak nakonfigurovat origin Cloudflare SSL s Nginx

  2. Jak duální bootování Windows 10 a MX Linux

  3. Konfigurovat duální spouštění, Windows 7 a Ubuntu 12.04 s Efi nebo bez?

  1. Jak duální bootování Manjaro a Windows 10

  2. Hardware Uefi a duální bootování s Windows?

  3. Jak vytvořit systémový oddíl EFI?

  1. Jak získat přístup k nastavení Bios pomocí Efi?

  2. Jak nakonfigurovat IMAP s SSL

  3. Jak nakonfigurovat automatické aktualizace pomocí yum-cronu na CentOS 7?