GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer NixOS à double démarrage avec Mac OS X sur un MacBook (U)EFI ?

Ceci est une version mise à jour de ma réponse initiale, cela devrait fonctionner pour NixOS 15.09. Il contient des modifications mineures par rapport à la version initiale que j'ai utilisée pour installer NixOS 14.04 avec l'aide de nix-dev liste de diffusion.

Configuration initiale

  1. MacBook 5,1 (2008) avec Mac OS 10.9 et disque dur partitionné comme suit :

    a) Partition système EFI de 200 Mo étiquetée "EFI".

    b) Deux partitions utilisées par Mac OS (10.9).

    c) Deux partitions ext4 vides étiquetées "nixos" et "home", et une partition Linux Swap étiquetée "swap".

    J'ai utilisé les outils suivants :

    • fdisk GPT (sous Mac OS),

    • mkfs.ext4 (depuis NixOS sur une clé USB bootable),

    • mkswap .

    Voici ma table de partition telle qu'imprimée par 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. Connexion Internet Ethernet par câble.

  3. Une clé USB formatée en FAT avec MBR et étiquetée NIXOS_ISO , avec une copie (glisser-déposer) du contenu de l'image ISO NixOS 15.09 64 bits (Live CD ou Minimal).

    • L'étiquette de la clé USB doit avoir NIXOS_ISO (j'ai essayé avec FLASH une fois, ça n'a pas marché).

    • Il semble que les images ISO NixOS 15.09 ne puissent pas être montées sous Mac OS. Si l'image ne peut pas être montée, il suffit d'extraire son contenu. J'ai pu extraire le contenu de l'image ISO avec l'archiveur de fichiers Keka.

Installation

  1. Démarrez à partir de la clé USB en maintenant enfoncée la touche Alt/Option lors du redémarrage et en sélectionnant USB EFI Boot . Connectez-vous en tant que "root" (sans mot de passe). Assurez-vous que la connexion Internet fonctionne. Une connexion Internet est nécessaire pour l'installation.

  2. Exécuter

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

    nixpkgs.config.allowUnfree = true;
    

    dans le /mnt/etc/nixos/configuration.nix généré fichier.

  4. Exécuter

    nixos-install
    
  5. Redémarrer :

    reboot
    

Démarrage

(C'était mon expérience avec 14.04. )

Après le redémarrage, l'ordinateur a démarré sous NixOS. J'ai redémarré à nouveau, en maintenant cette fois la touche Alt/Option clé. Le menu de démarrage affichait deux éléments "EFI Boot" d'apparence identique. Il s'est avéré que l'un d'eux est Mac OS et l'autre est NixOS. (Étrange - avant celui avec Mac OS a été nommé d'après la partition Mac OS. )D'accord.

J'ai monté et inspecté le contenu de la partition système EFI par 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

Tout y est sauf /EFI/APPLE et son contenu a été créé par NixOSinstallation.

Rétablir Mac OS par défaut

(C'était mon expérience avec 14.04. )

Pour rétablir Mac OS par défaut et créer l'élément correspondant dans l'Option -menu de démarrage clé nommé d'après la partition Mac OS, il suffisait d'aller dans Préférences système...> Disque de démarrage sous Mac OS et sélectionnez la partition avec Mac OS. Étrangement, il fallait entrer le mot de passe administrateur deux fois, et la partition n'était toujours pas affichée comme sélectionnée, mais sinon cela fonctionnait.

Autres consignes

  • Pour toujours voir gummiboot menu, il suffit de mettre boot.loader.gummiboot.timeout dans configuration.nix .

  • Pour configurer correctement mon nVidia carte graphique, j'ai fini par utiliser le nouveau open-source conducteur :

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

    Je n'ai rien à redire à ce sujet. Si j'utilise le propriétaire "nvidia" à la place, les consoles de texte ne fonctionnent pas.

    Mise à jour pour NixOS 16.09 . J'ai observé que sur ma machine avec NixOS 16.09, l'option services.xserver.videoDrivers n'est pas nécessaire dans configuration.nix pour que tout fonctionne bien, et qu'en fait cela dégrade sensiblement les performances graphiques d'après quelques tests que j'ai fait avec glmark2 Benchmark OpenGL. J'ai également observé que la sélection de "nvidia" casse le mode graphique mais laisse les consoles texte, contrairement à ce que j'ai observé avec Nix OS 14.04. Tout cela me semble un peu étrange, mais c'est ce que j'ai observé, j'ai donc supprimé cette option de mon configuration.nix .

  • Pour charger le applesmc module (pour le capteur de mouvement soudain, par exemple), il m'a été suggéré d'ajouter ce qui suit à configuration.nix :

    boot.kernelModules = [ "applesmc" ];
    

Remarques et observations

Le seul "problème" avec NixOS sur mon MacBook que j'ai observé jusqu'à présent est que, sous NixOS, mon ordinateur portable chauffe généralement de 5 à 10 ° C par rapport à Mac OS 10.9. Cela peut être un problème habituel pour Linux sur un Mac.

Liens vers d'autres instructions d'installation

  • Installer Linux sur un MacBook Air, 17/06/2015 (Installation de NixOS sur un MacBook Air dans une configuration à double amorçage avec Mac OS).

Quelques conseils supplémentaires :

Si vous souhaitez que votre rétroéclairage fonctionne et empêcher votre ordinateur portable de redémarrer spontanément lorsque le couvercle est fermé, vous pouvez utiliser quelque chose comme ce qui suit dans votre 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
  '';

Selon la version de votre MacBook, vous devrez peut-être modifier les commandes ci-dessus, veuillez donc ne pas copier-coller aveuglément.


Linux
  1. Comment démarrer en double Manjaro et Windows 10

  2. Comment configurer l'origine Cloudflare SSL avec Nginx

  3. Configurer Dual Boot, Windows 7 et Ubuntu 12.04 avec ou sans Efi ?

  4. Comment configurer les mises à jour automatiques avec yum-cron sur CentOS 7 ?

  5. Comment créer une partition système EFI ?

Comment installer Ubuntu 18.04 Dual Boot avec Windows 10

Comment installer Ubuntu 18.04 avec Windows 10 ou 8 en double démarrage

comment configurer centos 8 pour démarrer avec l'ancienne version du noyau

Comment installer Linux sur un Macintosh et un double démarrage avec macOS

Comment configurer Nginx avec SSL

Comment configurer PHP-FPM avec NGINX