GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengonfigurasi NixOS boot ganda dengan Mac OS X pada (U) EFI MacBook?

Ini adalah versi terbaru dari jawaban awal saya, seharusnya berfungsi untuk NixOS 15.09. Ini berisi sedikit modifikasi dibandingkan dengan versi awal yang saya gunakan untuk menginstal NixOS 14.04 dengan bantuan dari nix-dev milis.

Penyiapan awal

  1. MacBook 5,1 (2008) dengan Mac OS 10.9 dan hard drive dipartisi sebagai berikut:

    a) Partisi Sistem EFI 200MB berlabel "EFI".

    b) Dua partisi yang digunakan oleh Mac OS (10.9).

    c) Dua partisi ext4 kosong berlabel "nixos" dan "home", dan sebuah partisi Linux Swap berlabel "swap".

    Saya menggunakan alat berikut:

    • fdisk GPT (dari bawah Mac OS),

    • mkfs.ext4 (dari bawah NixOS pada drive USB yang dapat di-boot),

    • mkswap .

    Ini adalah tabel partisi saya seperti yang dicetak oleh 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. Koneksi internet kabel Ethernet.

  3. Drive USB yang diformat sebagai FAT dengan MBR dan diberi label NIXOS_ISO , dengan salinan (diseret dan dilepas) konten NixOS 15.09 64-bit ISO image (Live CD atau Minimal).

    • Label drive USB harus menjadi NIXOS_ISO (saya mencoba dengan FLASH sekali, itu tidak berhasil).

    • Tampaknya gambar ISO NixOS 15.09 tidak dapat dipasang di bawah Mac OS. Jika gambar tidak dapat dipasang, cukup mengekstrak isinya. Saya dapat mengekstrak konten citra ISO dengan pengarsipan file Keka.

Instalasi

  1. Boot dari drive USB dengan menahan Alt/Option saat mem-boot ulang dan dengan memilih EFI Boot USB . Masuk sebagai "root" (tanpa kata sandi). Pastikan koneksi Internet berfungsi. Koneksi internet diperlukan untuk instalasi.

  2. Jalankan

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

    nixpkgs.config.allowUnfree = true;
    

    di /mnt/etc/nixos/configuration.nix yang dihasilkan berkas.

  4. Jalankan

    nixos-install
    
  5. Mulai ulang:

    reboot
    

Booting

(Ini adalah pengalaman saya dengan 14,04. )

Setelah mem-boot ulang, komputer mem-boot ke NixOS. Saya mem-boot ulang lagi, kali ini menahan Alt/Option key.Menu boot menunjukkan dua item "EFI Boot" yang tampak identik.Ternyata salah satunya adalah Mac OS, dan yang lainnya adalah NixOS.(Aneh -- sebelum yang dengan Mac OS dinamai menurut partisi Mac OS. ) Oke.

Saya memasang dan memeriksa konten partisi sistem EFI karena penasaran:

§ 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

Semuanya ada di sana kecuali /EFI/APPLE dan isinya telah dibuat oleh instalasi NixOS.

Menjadikan Mac OS default lagi

(Ini adalah pengalaman saya dengan 14,04. )

Untuk menjadikan Mac OS sebagai default lagi dan menjadikan item yang sesuai di Opsi -key boot menu dinamai partisi Mac OS, cukup buka System Preferences...> Startup Disk di bawah Mac OS dan pilih partisi dengan Mac OS. Anehnya, diperlukan memasukkan kata sandi admin dua kali, dan partisi itu masih belum ditampilkan sebagai dipilih, tetapi sebaliknya berhasil.

Petunjuk lainnya

  • Untuk selalu melihat gummiboot menu, cukup mengatur boot.loader.gummiboot.timeout di configuration.nix .

  • Untuk mengonfigurasi nVidia saya dengan benar kartu grafis, saya akhirnya menggunakan nouveau sumber terbuka pengemudi:

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

    Saya tidak punya keluhan tentang itu. Jika saya menggunakan "nvidia" milik sebaliknya, konsol teks tidak berfungsi.

    Pembaruan untuk NixOS 16.09 . Saya mengamati bahwa di mesin saya dengan NixOS 16.09, opsi services.xserver.videoDrivers tidak diperlukan di configuration.nix agar semuanya bekerja dengan baik, dan ternyata hal itu secara nyata menurunkan kinerja grafis menurut beberapa tes yang saya lakukan dengan glmark2 Tolok ukur OpenGL. Saya juga mengamati bahwa memilih "nvidia" merusak mode grafis tetapi meninggalkan konsol teks, bertentangan dengan apa yang saya amati dengan Nix OS 14.04. Ini semua tampak agak aneh bagi saya, tetapi inilah yang saya amati, jadi saya menghapus opsi ini dari configuration.nix saya .

  • Untuk memuat applemc modul (untuk sensor gerak mendadak, misalnya) disarankan kepada saya untuk menambahkan yang berikut ke configuration.nix :

    boot.kernelModules = [ "applesmc" ];
    

Keterangan dan pengamatan

Satu-satunya "masalah" dengan NixOS di MacBook saya yang telah saya amati sejauh ini adalah menjalankan NixOS laptop saya biasanya menjadi 5-10 °C lebih panas daripada di bawah Mac OS 10.9. Ini mungkin masalah biasa untuk Linux di Mac.

Tautan ke petunjuk penginstalan alternatif

  • Instal Linux di MacBook Air, 17/06/2015 (Instalasi NixOS di MacBook Air dalam konfigurasi dual-boot dengan Mac OS).

Beberapa kiat tambahan:

Jika Anda ingin lampu latar berfungsi dan mencegah laptop Anda menyala kembali secara spontan saat tutupnya ditutup, Anda dapat menggunakan sesuatu seperti berikut di configuration.nix Anda :

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

Bergantung pada versi MacBook Anda, Anda mungkin perlu mengubah perintah di atas, jadi mohon jangan salin dan tempel begitu saja.


Linux
  1. Cara dual boot Manjaro dan Windows 10

  2. Konfigurasikan Dual Boot, Windows 7 Dan Ubuntu 12.04 Dengan Atau Tanpa Efi?

  3. Perangkat Keras UEFA Dan Dual Booting Dengan Windows?

  1. Cara mengkonfigurasi SSL Cloudflare asal dengan Nginx

  2. Cara mengonfigurasi IMAP dengan SSL

  3. Bagaimana cara mengkonfigurasi Pembaruan Otomatis dengan yum-cron di CentOS 7?

  1. Cara dual boot Windows 10 dan MX Linux

  2. Bagaimana Cara Mengakses Pengaturan Bios Dengan Efi?

  3. Bagaimana cara membuat Partisi Sistem EFI?