Bagaimana cara mengkonfigurasi dual boot NixOS dengan Mac OS X pada (U) EFI MacBook?
19
Saya tidak dapat menemukan deskripsi konfigurasi dual boot NixOS dan Mac OS X pada (U) EFI MacBook. Saya bersedia bereksperimen, tetapi saya ingin tahu setidaknya bahwa apa yang akan saya coba seharusnya berhasil, dan bahwa ada kesempatan untuk tidak harus menginstal ulang OS X sesudahnya.
Adakah yang bisa memberi tahu saya langkah-langkah utama atau berikan tautan ke halaman yang menjelaskan prosedurnya?
Yang membingungkan saya khususnya adalah bahwa bagian instalasi UEFI dari manual NixOS mengatakan bahwa saya perlu membuat Partisi Sistem EFI yang akan dipasang pada / boot; Namun, disk saya sudah memiliki Partisi Sistem EFI sebagai partisi pertama, dan saya khawatir akan ada konflik jika saya mengizinkan Mac OS dan NixOS untuk memodifikasinya. Menurut Wikipedia ,
Pada komputer Macintosh arsitektur Apple-Intel, partisi EFI awalnya kosong dan tidak digunakan untuk booting. Namun, partisi EFI digunakan sebagai area pementasan untuk pembaruan firmware; khusus, ia menempatkan firmware flash utility (binary EFI) dan file data (FD - "Firmware Device") di direktori EFI / APPLE / FIRMWARE yang kemudian dijalankan ketika me-reboot sistem dalam mode "flash firmware". Jika dihapus, sistem akan tetap boot, dan boot manager masih akan memungkinkan pengguna untuk memilih apakah akan memulai partisi Boot Camp atau Mac OS X default, tetapi pembaruan firmware akan gagal.
Saya membayangkan ini berarti bahwa jika saya menggunakan Partisi Sistem EFI yang sama untuk NixOS, mungkin akan dimodifikasi jika saya membuat pembaruan firmware Apple. Juga tidak jelas apa yang akan terjadi jika saya membuat dua Partisi Sistem EFI. Misalnya, ada opsi konfigurasi NixOS boot.loader.efi.efiSysMountPoint(tempat Partisi Sistem EFI dipasang) dengan nilai default "/boot", tetapi bagaimana ia tahu yang mana yang akan dipasang?
PS Sebagai manajer boot, saya berencana untuk menggunakan rEFInd , tetapi semua saran alternatif diterima.
Ini adalah versi terbaru dari jawaban awal saya, seharusnya bisa digunakan untuk NixOS 15.09. Ini berisi modifikasi kecil dibandingkan dengan versi awal yang saya gunakan untuk menginstal NixOS 14.04 dengan bantuan dari milis nix-dev .
Pengaturan awal
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 partisi Linux Swap berlabel "swap".
Drive USB yang diformat sebagai FAT dengan MBR dan dilabeli NIXOS_ISO, dengan salinan (diseret dan dilepaskan) dari konten gambar ISO NixOS 15.09 64-bit (Live CD atau Minimal).
Label dari drive USB harus bisa NIXOS_ISO(saya mencoba dengan FLASHsekali, itu tidak bekerja).
Tampaknya gambar ISO NixOS 15.09 tidak dapat dipasang di Mac OS. Jika gambar tidak dapat dipasang, itu cukup untuk mengekstrak isinya. Saya bisa mengekstrak isi gambar ISO dengan pengarsipan file Keka .
Instalasi
Boot dari drive USB dengan menahan Alt/Optiontombol saat me-reboot dan dengan memilih Boot EFI USB . Masuk sebagai "root" (tanpa kata sandi). Pastikan koneksi Internet berfungsi. Koneksi internet diperlukan untuk instalasi.
Menjalankan
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
Menambahkan
nixpkgs.config.allowUnfree = true;
dalam file /mnt/etc/nixos/configuration.nix yang dihasilkan .
Menjalankan
nixos-install
Mulai ulang:
reboot
Booting
( Ini adalah pengalaman saya dengan 14,04. )
Setelah reboot, komputer boot ke NixOS. Saya reboot lagi, memegang Alt/Optionkunci kali ini. Menu boot menunjukkan dua item "EFI Boot" yang tampak identik. Ternyata salah satunya adalah Mac OS, dan yang lainnya adalah NixOS. (Aneh - sebelum yang menggunakan Mac OS diberi nama setelah partisi Mac OS.) Oke.
Saya memasang dan memeriksa isi partisi sistem EFI karena penasaran:
Semuanya ada kecuali / EFI / APPLE dan kontennya telah dibuat oleh instalasi NixOS.
Membuat Mac OS default lagi
( Ini adalah pengalaman saya dengan 14,04. )
Untuk membuat Mac OS default lagi dan untuk membuat item yang sesuai di Optionmenu boot -key dinamai partisi Mac OS, itu sudah cukup untuk pergi ke System Preferences ...> Startup Disk di bawah Mac OS dan pilih partisi dengan Mac OS. Anehnya, itu perlu memasukkan kata sandi admin dua kali, dan partisi itu masih tidak ditampilkan seperti yang dipilih, tetapi jika tidak berhasil.
Instruksi lainnya
Untuk selalu melihat menu gummiboot , cukup dengan mengatur boot.loader.gummiboot.timeoutdi configuration.nix .
Untuk mengkonfigurasi dengan benar kartu grafis nVidia saya , saya akhirnya menggunakan driver nouveau open-source :
services.xserver.videoDrivers = [ "nouveau" ];
Saya tidak punya keluhan tentang itu. Jika saya menggunakan hak milik "nvidia"sebagai gantinya, konsol teks tidak berfungsi.
Pembaruan untuk NixOS 16.09 . Saya mengamati bahwa pada komputer saya dengan NixOS 16.09, opsi services.xserver.videoDriversini tidak diperlukan dalam konfigurasi.nix agar semuanya berfungsi dengan baik, dan bahwa pada kenyataannya itu terlihat menurunkan kinerja grafis menurut beberapa tes yang saya lakukan dengan benchmark OpenGL glmark2 . Saya juga mengamati bahwa memilih "nvidia"mode istirahat grafis tetapi meninggalkan konsol teks, bertentangan dengan apa yang saya amati dengan Nix OS 14.04. Ini semua terlihat agak aneh bagi saya, tapi ini yang saya amati, jadi saya menghapus opsi ini dari configuration.nix saya .
Untuk memuat modul applesmc (untuk sensor gerak tiba-tiba, misalnya) disarankan kepada saya untuk menambahkan yang berikut ini 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 mendapatkan 5-10 ° C lebih panas daripada di bawah Mac OS 10.9. Ini mungkin masalah biasa untuk Linux di Mac .
Tautan ke petunjuk pemasangan alternatif
Instal Linux pada MacBook Air , 17/06/2015 (Menginstal NixOS pada MacBook Air dalam konfigurasi dual-boot dengan Mac OS).
Terima kasih @Alexey untuk penulisan yang bagus! Saya hanya punya satu keraguan. Ini ambigu jika Anda akhirnya menggunakan partisi EFI yang sudah ada sebelumnya (dibuat oleh Apple) atau jika Anda membuat partisi tambahan. Saya mencoba yang terakhir, tetapi instalasi gagal dengan "... sistem file bukan EFI yang valid", jadi saya curiga saya hanya perlu menggunakan partisi EFI Mac. Apakah Anda mengonfirmasi? Terima kasih!
Alfredo Di Napoli
Alfredo, Anda benar, saya tidak menjelaskan bagaimana saya mendapatkan pengaturan awal. Saya sudah memiliki Partisi Sistem EFI Apple, yang, saya percaya, semua komputer seperti komputer saya telah diinstal sebelumnya. Saya akan terkejut, bagaimanapun, jika itu penting bagaimana partisi itu dibuat. Apakah Anda yakin telah mengatur kode partisi yang benar EF00? Saya menggunakan gdisk untuk mengelola partisi baru saya. Saya telah melakukan edit untuk menampilkan tabel partisi saya.
Alexey
Hai @ Alexey, terima kasih atas jawabannya. Sementara itu saya cukup berani untuk menggunakan kembali partisi EFI yang sudah diinstal sebelumnya, yang tampaknya adalah cara kita melanjutkan. Mungkin saja untuk membuat dua partisi (dan saya memang menggunakan EF00 untuk partisi yang saya buat), tetapi akhirnya menggunakan kembali Apple yang sudah diinstal sebelumnya hanya berfungsi. Saya mengetik dari NixOS seperti yang kita bicarakan :)
Alfredo Di Napoli
Saya percaya saya telah membaca di suatu tempat yang tidak direkomendasikan atau entah bagaimana tidak didukung untuk memiliki lebih dari satu Partisi Sistem EFI.
Alexey
Semoga berhasil dengan debugging NixOS di MacBook :). Jika Anda tidak memiliki SSD dan mencari cara mengonfigurasi sensor gerak tiba-tiba, beri tahu saya. (Saya baru saja menambahkan komentar tentang hal ini pada jawaban saya.) Saya juga tampaknya mengalami kesulitan dalam mengkonfigurasi frekuensi CPU: bahkan dengan powersavegubernur menjadi sangat panas tanpa alasan yang jelas.
Alexey
2
Beberapa tips tambahan:
Jika Anda ingin lampu latar bekerja dan mencegah laptop Anda kembali secara spontan saat tutupnya ditutup, Anda dapat menggunakan sesuatu seperti berikut ini di 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
'';
Bergantung pada versi MacBook Anda, Anda mungkin perlu mengubah perintah di atas, jadi tolong jangan salin dan tempel secara membabi buta.
Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
EF00
? Saya menggunakan gdisk untuk mengelola partisi baru saya. Saya telah melakukan edit untuk menampilkan tabel partisi saya.powersave
gubernur menjadi sangat panas tanpa alasan yang jelas.Beberapa tips tambahan:
Jika Anda ingin lampu latar bekerja dan mencegah laptop Anda kembali secara spontan saat tutupnya ditutup, Anda dapat menggunakan sesuatu seperti berikut ini di
configuration.nix
:Bergantung pada versi MacBook Anda, Anda mungkin perlu mengubah perintah di atas, jadi tolong jangan salin dan tempel secara membabi buta.
sumber
Ada beberapa instruksi yang sedikit diperbarui di cabang master dari repositori: install-uefi.xml
sumber