(U) EFI MacBook'ta Mac OS X ile çift önyükleme NixOS nasıl yapılandırılır?


19

Bir (U) EFI MacBook'ta NixOS ve Mac OS X'in çift ​​önyüklemesini yapılandırma hakkında bir açıklama bulamadım . Denemeye hazırım, ama en azından deneyeceğim şeyin işe yaraması gerektiğini ve daha sonra OS X'i yeniden yüklemek zorunda kalmayacağınızı bilmek istiyorum .

Birisi bana ana adımları lütfen söyleyebilir veya prosedürü açıklayan bir sayfaya bağlantı verebilir mi?

Özellikle beni şaşırtan şey, NixOS el kitabının UEFI kurulum bölümünün / boot'e monte edilecek bir EFI Sistem Bölümü yapmam gerektiğini söylediğidir; Ancak, diskimde ilk bölüm olarak zaten bir EFI Sistem Bölümü var ve hem Mac OS hem de NixOS'un değiştirmesine izin verirseniz çakışmalar olabileceğinden korkuyorum. Wikipedia'ya göre ,

Apple – Intel mimarisi Macintosh bilgisayarlarda, EFI bölümü başlangıçta boştur ve önyükleme için kullanılmaz. Ancak, EFI bölümü ürün yazılımı güncellemeleri için bir hazırlama alanı olarak kullanılır; özellikle, EFI / APPLE / FIRMWARE dizinine daha sonra sistemi "flash firmware" modunda yeniden başlatırken çalıştırılan bir firmware flash yardımcı programı (EFI binary) ve veri dosyası (FD - "Firmware Device") yerleştirir. Silinirse, sistem yine de önyükleme yapar ve önyükleme yöneticisi, kullanıcıların bir Boot Camp bölümü mü yoksa varsayılan Mac OS X'i başlatmayı mı seçmelerine izin verir, ancak ürün yazılımı güncellemeleri başarısız olur.

Bunun, aynı EFI Sistem Bölümü'nü NixOS için kullanırsam, Apple ürün yazılımı güncellemesi yaparsam değiştirilebileceği anlamına gelir. İki EFI Sistem Bölümü oluşturursam ne olacağı da belli değil. Örneğin boot.loader.efi.efiSysMountPoint, varsayılan değere sahip bir NixOS yapılandırma seçeneği (EFI Sistem Bölümü'nün monte edildiği yer) vardır "/boot", ancak hangisinin monte edileceğini nasıl bilecek?

PS Bir önyükleme yöneticisi olarak rEFInd kullanmayı planlıyordum , ancak herhangi bir alternatif öneri açığız.

Yanıtlar:


16

Bu benim ilk cevabımın güncellenmiş bir versiyonudur, NixOS 15.09 için çalışmalıdır. Nix-dev posta listesinden bazı yardımlarla NixOS 14.04'ü yüklemek için kullandığım ilk sürüme kıyasla küçük değişiklikler içeriyor .

İlk kurulum

  1. Mac OS 10.9 ve sabit disk ile MacBook 5,1 (2008) aşağıdaki gibi bölümlenmiştir:

    a) "EFI" etiketli 200 MB EFI Sistem Bölümü.

    b) Mac OS tarafından kullanılan iki bölüm (10.9).

    c) "Nixos" ve "home" etiketli iki boş ext4 bölümü ve "takas" etiketli bir Linux Swap bölümü.

    Aşağıdaki araçları kullandım:

    • GPT fdisk (Mac OS altından),

    • mkfs.ext4 (önyüklenebilir bir USB sürücüsünde NixOS'un altından),

    • mkswap.

    İşte bölüm tablom tarafından basıldığı gibi 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. Kablo Ethernet İnternet bağlantısı.

  3. MBR ile FAT olarak biçimlendirilmiş ve etiketlenmiş NIXOS_ISO, NixOS 15.09 64 bit ISO görüntüsünün (Canlı CD veya Minimal) içeriğinin bir kopyası (sürükleyip bırakılmış) olan bir USB sürücü .

    • USB sürücü etiketi olmalıdır edilmesi NIXOS_ISO(i ile çalıştı FLASHkez, bu iş olmadı).

    • Görünüşe göre NixOS 15.09 ISO görüntüleri Mac OS altına bağlanamıyor. Görüntü monte edilemiyorsa, içeriğini çıkarmak yeterlidir. ISO görüntüsünün içeriğini Keka dosya arşivleyicisiyle çıkarabilirim .

Kurulum

  1. Yeniden Alt/Optionbaşlatma sırasında tuşunu basılı tutarak ve USB EFI Önyükleme'yi seçerek USB sürücüden önyükleme yapın . "Root" olarak oturum açın (şifre olmadan). İnternet bağlantısının çalıştığından emin olun. Kurulum için internet bağlantısı gereklidir.

  2. gerçekleştirmek

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

    nixpkgs.config.allowUnfree = true;
    

    oluşturulan /mnt/etc/nixos/configuration.nix dosyasında.

  4. gerçekleştirmek

    nixos-install
    
  5. Yeniden Başlatma:

    reboot
    

Booting

( Bu benim 14.04 ile yaşadığım deneyim oldu. )

Bilgisayar yeniden başlatıldıktan sonra NixOS'a önyükleme yaptı. Yine bu sefer Alt/Optionanahtarı tutarak yeniden başlattım . Önyükleme menüsünde aynı görünen iki "EFI Önyükleme" öğesi gösterildi. Birinin Mac OS, diğerinin NixOS olduğu ortaya çıktı. (Garip - Mac OS olana Mac OS bölümünün adını vermeden önce.) Tamam.

EFI sistem bölümünün içeriğini meraktan kurup inceledim:

§ 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

/ EFI / APPLE ve içeriği dışındaki her şey NixOS kurulumu tarafından oluşturuldu.

Mac OS'yi tekrar varsayılan yapmak

( Bu benim 14.04 ile yaşadığım deneyim oldu. )

Mac OS'yi tekrar varsayılan yapmak ve OptionMac OS bölümünden sonra adlandırılan -key boot menüsünde karşılık gelen öğeyi yapmak için Mac OS altında Sistem Tercihleri ​​...> Başlangıç ​​Diski'ne gidip Mac OS ile bölümü seçmek yeterliydi . Garip bir şekilde, yönetici parolasını iki kez girmeyi gerektirdi ve bölüm hala seçildiği gibi gösterilmedi, ancak aksi halde çalıştı.

Diğer talimatlar

  • Her zaman görmek için gummiboot menüsü, bu sete yeterlidir boot.loader.gummiboot.timeoutiçinde configuration.nix .

  • NVidia grafik kartımı düzgün bir şekilde yapılandırmak için açık kaynaklı nouveau sürücüsünü kullandım:

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

    Bu konuda hiçbir şikayetim yok. Ben "nvidia"onun yerine özel kullanırsanız, metin konsolları çalışmaz.

    NixOS 16.09 Güncellemesi . NixOS 16.09'lu makinemde, her şeyin iyi çalışması için configuration.nix'te seçeneğin services.xserver.videoDriversgerekli olmadığını ve aslında grafik performansını glmark2 OpenGL benchmark ile yaptığım birkaç teste göre belirgin şekilde düşürdüğünü gözlemledim . Ayrıca seçmenin grafik modunu bozduğunu ancak Nix OS 14.04 ile gözlemlediğimden farklı olarak metin konsolları bıraktığını gözlemledim. Bu benim için biraz garip görünüyor, ama gözlemlediğim budur, bu yüzden bu seçeneği benim configuration.nix dosyasından kaldırdım ."nvidia"

  • Applesmc modülünü yüklemek için (örneğin ani hareket sensörü için) configuration.nix'e aşağıdakileri eklemem önerildi :

    boot.kernelModules = [ "applesmc" ];
    

Düşünceler ve gözlemler

Şimdiye kadar gözlemlediğim MacBook'umdaki NixOS ile ilgili tek "problem" dizüstü bilgisayarımın NixOS'u çalıştırmanın Mac OS 10.9'a göre genellikle 5-10 ° C daha sıcak hale gelmesi. Bu , Mac'teki Linux için olağan bir sorun olabilir .

Alternatif kurulum talimatlarına bağlantılar


Güzel yazma için @Alexey teşekkürler! Sadece bir şüphem var. Önceden var olan EFI bölümünü (Apple tarafından oluşturulmuş) kullanarak veya başka bir tane oluşturduysanız belirsizdir. İkincisini denedim, ancak yükleme "... dosya sistemi geçerli bir EFI değil" ile başarısız oluyor, bu yüzden sadece Mac'in EFI bölümünü kullanmam gerektiğinden şüpheleniyorum. Onaylıyor musunuz? Teşekkürler!
Alfredo Di Napoli

Alfredo, haklısın, ilk kurulumu nasıl aldığımı açıklamamıştım. Zaten benim gibi tüm bilgisayarların önceden kurulmuş olduğuna inanan Apple EFI Sistem Bölümü vardı. Bununla birlikte, bu bölümün nasıl oluşturulduğu önemliyse şaşıracağım. Doğru bölüm kodunu ayarladığınızdan emin misiniz EF00? Yeni bölümlerimi yönetmek için gdisk'i kullandım . Bölüm tablomı göstermek için bir düzenleme yaptım.
Alexey

Merhaba @ Alexey, cevap için teşekkürler. Bu arada, görünüşe göre, nasıl ilerlememiz gerektiği önceden kurulmuş EFI bölümünü yeniden kullanacak kadar cesurdum. Muhtemelen iki bölüm oluşturmak mümkündür (ve aslında oluşturduğum için EF00'ü kullandım), ancak sonunda Apple'ın önceden yüklenmiş olarak yeniden kullanılması işe yaradı. Konuşurken NixOS'tan yazıyorum :)
Alfredo Di Napoli

Birden fazla EFI Sistem Bölümüne sahip olmasının önerilmediğini veya bir şekilde desteklenmediğini bir yerde okuduğuma inanıyorum.
Alexey

MacBook'ta NixOS hata ayıklamada iyi şanslar :). SSD'niz yoksa ve ani hareket sensörünün nasıl yapılandırılacağını anlarsanız, lütfen bana bildirin. (Bunun cevabına yeni bir açıklama ekledim.) Ayrıca CPU frekansını yapılandırmakta zorluk çekiyorum: powersaveVali ile bile belirgin bir sebep olmadan oldukça ısınıyor.
Alexey

2

Bazı ek ipuçları:

Arka ışığınızın çalışmasını sağlamak ve kapak kapalıyken dizüstü bilgisayarınızın kendiliğinden devam etmesini önlemek istiyorsanız, aşağıdakilerde aşağıdakine benzer bir şey kullanabilirsiniz 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
  '';

MacBook sürümünüze bağlı olarak, yukarıdaki komutları değiştirmeniz gerekebilir, bu yüzden lütfen körü körüne kopyalayıp yapıştırmayın.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.