我找不到任何配置雙啟動的描述尼克斯作業系統和 (U)EFI MacBook 上的 Mac OS X。我願意嘗試,但我想至少知道我會嘗試的是應該工作,並且之後將有機會不必重新安裝 OS X。
有人可以告訴我主要步驟或提供描述該過程的頁面的連結嗎?
讓我特別困惑的是UEFI安裝部分NixOS 手冊說我需要建立一個將安裝在 /boot 的 EFI 系統分割區;但是,我的磁碟已經有一個 EFI 系統分割區作為第一個分割區,如果我允許 Mac OS 和 NixOS 修改它,恐怕會出現衝突。 根據維基百科,
在 Apple-Intel 架構的 Macintosh 電腦上,EFI 分割區最初是空白的,不用於啟動。但是,EFI 分區用作韌體更新的暫存區域;具體來說,它將韌體閃存實用程式(EFI 二進位檔案)和資料檔案(FD –「韌體裝置」)放置在目錄EFI/APPLE/FIRMWARE 中,然後在「閃存韌體」模式下重新啟動系統時運行該實用程式。如果刪除,系統仍會啟動,啟動管理器仍允許使用者選擇啟動 Boot Camp 分割區還是預設的 Mac OS X,但韌體更新將失敗。
我想這意味著如果我對 NixOS 使用相同的 EFI 系統分割區,如果我進行 Apple 韌體更新,它可能會被修改。也不清楚如果我創建兩個 EFI 系統分割區會發生什麼事。例如,有一個 NixOS 設定選項boot.loader.efi.efiSysMountPoint
(掛載 EFI 系統分割區)的預設值是"/boot"
,但它如何知道要掛載哪一個呢?
PS 作為啟動管理器,我打算使用酶標儀,但歡迎任何替代建議。
答案1
這是我最初答案的更新版本,它應該適用於 NixOS 15.09。與我在以下人員的幫助下安裝 NixOS 14.04 的初始版本相比,它包含較小的修改尼克斯開發者郵件清單。
初始設定
配備 Mac OS 10.9 的 MacBook 5,1 (2008) 和硬碟分區如下:
a) 標示「EFI」的 200MB EFI 系統分割區。
b) Mac OS (10.9) 所使用的兩個分割區。
c) 兩個空的 ext4 分割區,標示為“nixos”和“home”,以及一個標記為“swap”的 Linux 交換分割區。
我使用了以下工具:
這是我列印的分區表
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
有線乙太網路網路連線。
格式化為具有 MBR 且標記為 FAT 的 USB 驅動器
NIXOS_ISO
,其中包含 NixOS 15.09 64 位元 ISO 映像(Live CD 或 Minimal)內容的副本(拖放)。USB 隨身碟的標籤必須是
NIXOS_ISO
(我嘗試過FLASH
一次,但沒有成功)。NixOS 15.09 ISO 映像似乎無法在 Mac 作業系統下掛載。如果無法安裝映像,只需提取其內容即可。我可以使用以下命令提取 ISO 映像的內容克卡文件歸檔器。
安裝
透過在重新啟動時按住Alt/Option按鍵並選擇 USB從 USB 驅動器啟動電噴啟動。以「root」身分登入(無需密碼)。確保網路連線正常。安裝需要網路連線。
執行
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
添加
nixpkgs.config.allowUnfree = true;
在生成的/mnt/etc/nixos/configuration.nix文件。
執行
nixos-install
重啟:
reboot
開機
(這是我在 14.04 的經驗。)
重新啟動後,電腦啟動至 NixOS。我再次重新啟動,這次按住了Alt/Option鑰匙。啟動選單顯示兩個外觀相同的「EFI Boot」項目。原來,其中一個是Mac OS,另一個是NixOS。 (奇怪——以前帶 Mac OS 的分區是根據 Mac OS 分區來命名的。) 好的。
出於好奇,我掛載並檢查了EFI系統分割區的內容:
§ 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/蘋果其內容是透過 NixOS 安裝創建的。
再次將 Mac 作業系統設定為預設值
(這是我在 14.04 的經驗。)
要再次使 Mac OS 預設並讓Option-key 啟動選單中的對應項目以 Mac OS 分區命名,只需轉到系統偏好設定... > 啟動磁碟在 Mac OS 下,選擇 Mac OS 所在的分割區。奇怪的是,它需要輸入兩次管理員密碼,分區仍然沒有顯示為選中狀態,但除此之外它可以工作。
其他說明
總是能看到橡膠靴
boot.loader.gummiboot.timeout
選單裡設定就夠了配置.nix。正確配置我的英偉達顯示卡,我最終使用了開源新風格司機:services.xserver.videoDrivers = [ "nouveau" ];
我對此沒有任何抱怨。如果我使用專有的"nvidia"
,文字控制台將無法運作。NixOS 16.09 更新。我觀察到,在我的 NixOS 16.09 機器上,
services.xserver.videoDrivers
不需要該選項配置.nix為了讓一切都能正常運作,事實上,根據我所做的一些測試,它明顯降低了圖形效能格馬克2OpenGL 基準測試。我還觀察到,選擇"nvidia"
會破壞圖形模式,但會留下文字控制台,這與我在 Nix OS 14.04 中觀察到的情況相反。這一切對我來說看起來有點奇怪,但這就是我觀察到的,所以我從我的清單中刪除了這個選項配置.nix。要載入蘋果公司模組(例如,突然運動感應器)建議我將以下內容添加到配置.nix:
boot.kernelModules = [ "applesmc" ];
評論和意見
到目前為止,我在 MacBook 上觀察到的 NixOS 的唯一「問題」是,運行 NixOS 的筆記型電腦通常比 Mac OS 10.9 下的溫度高 5-10 °C。這可能是常見問題Mac 上的 Linux。
替代安裝說明的鏈接
- 在 MacBook Air 上安裝 Linux, 17/06/2015(在具有 Mac OS 的雙啟動配置的 MacBook Air 上安裝 NixOS)。
答案2
一些額外的提示:
如果您想讓背光工作並防止筆記型電腦在蓋子關閉時自動恢復,您可以在您的 中使用類似以下內容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版本,您可能需要調整上述命令,所以請不要盲目複製貼上。
答案3
儲存庫的 master 分支中有一些稍微更新的說明:安裝-uefi.xml