(U)EFI MacBookでの NixOS とMac OS Xのデュアルブートの構成についての説明は見つかりませんでした。私は実験するつもりですが、少なくとも私が試すことは仮定が機能すること、および可能性があることを知りたいです後でOS Xを再インストールする必要はありません。
誰かが主な手順を教えてくれたり、手順を説明しているページへのリンクを教えたりできますか?
特に私を混乱させるのは、NixOSマニュアルの EFIインストールセクション が/ bootにマウントされるEFIシステムパーティションを作成する必要があると述べていることです。ただし、私のディスクにはすでに最初のパーティションとしてEFIシステムパーティションがあり、Mac OSとNixOSの両方による変更を許可すると競合が発生する可能性があります。 Wikipediaによると 、
Apple–IntelアーキテクチャのMacintoshコンピュータでは、EFIパーティションは最初は空であり、起動には使用されません。ただし、EFIパーティションは、ファームウェア更新のステージング領域として使用されます。具体的には、ファームウェアフラッシュユーティリティ(EFIバイナリ)とデータファイル(FD –「ファームウェアデバイス」)をディレクトリEFI/Apple/FIRMWAREに配置し、システムを「フラッシュファームウェア」モードで再起動すると実行されます。削除した場合でもシステムは起動し、Boot Campパーティションを起動するか、デフォルトのMac OS Xを起動するかをユーザーが選択できるようになりますが、ファームウェアの更新は失敗します。
これは、私がNixOSに同じEFIシステムパーティションを使用している場合、Appleファームウェアアップデートを行うと変更される可能性があることを意味します。2つのEFIを作成するとどうなるかも明確ではありません。システムパーティション。たとえば、デフォルト値boot.loader.efi.efiSysMountPoint
のNixOS構成オプション"/boot"
(EFIシステムパーティションがマウントされている場所)がありますが、どのオプションをマウントするかをどのようにして知るのですか?
追伸ブートマネージャーとして、私は rEFInd を使用することを計画していましたが、他の提案があれば歓迎します。
これは私の最初の回答の更新バージョンです。NixOS15.09で動作するはずです。 nix-devメーリングリストの助けを借りてNixOS 14.04をインストールするために使用した初期バージョンと比較して、小さな変更が含まれています。
Mac OS 10.9を搭載したMacBook 5,1(2008)および次のようにパーティション化されたハードドライブ:
a)「EFI」というラベルの付いた200MB EFIシステムパーティション。
b)Mac OS(10.9)で使用される2つのパーティション。
c)「nixos」と「home」というラベルの付いた2つの空のext4パーティションと、「swap」というラベルの付いたLinux Swapパーティション。
次のツールを使用しました。
これが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としてフォーマットされ、NIXOS_ISO
というラベルが付いたUSBドライブ。NixOS15.09 64ビットISOイメージ(ライブCDまたはミニマル)のコンテンツのコピー(ドラッグアンドドロップ)が付いています。
USBドライブのラベル must はNIXOS_ISO
である必要があります(FLASH
で1回試しましたが、機能しませんでした)。
Mac OSではNixOS 15.09 ISOイメージをマウントできないようです。イメージをマウントできない場合は、その内容を抽出するだけで十分です。 ISOイメージの内容を Keka ファイルアーカイバで抽出できます。
を押してUSBドライブから起動します Alt/Option 再起動時およびUSB EFIブートを選択した場合のキー。 「root」としてログインします(パスワードなし)。インターネット接続が機能していることを確認します。インストールにはインターネット接続が必要です。
Execute
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ファイル内。
Execute
nixos-install
リブート:
reboot
(これは14.04での私の経験でした。)
再起動後、コンピューターはNixOSで起動しました。私はもう一度再起動し、今回は Alt/Option キー。ブートメニューには、同じように見える2つの「EFIブート」アイテムが表示されていました。そのうちの1つはMac OSで、もう1つはNixOSであることがわかりました。 (奇妙な-Mac OSを搭載したものの前にMac OSパーティションにちなんで名付けられた。)OK.
好奇心から、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/Apple以外のすべてとその内容は、NixOSのインストールによって作成されています。
(これは14.04での私の経験でした。)
Mac OSを再びデフォルトにして、対応する項目を Option-Mac OSパーティションにちなんで名付けられたキーブートメニュー。MacOSでシステム環境設定...>起動ディスクに移動し、Mac OSでパーティションを選択するだけで十分でした。奇妙なことに、管理パスワードを2回入力する必要があり、パーティションはまだ選択された状態で表示されませんでしたが、それ以外の場合は機能しました。
gummibootメニューを常に表示するには、_configuration.nixでboot.loader.gummiboot.timeout
を設定するだけで十分です。
nVidia グラフィックスカードを適切に構成するために、オープンソース nouvea ドライバーを使用しました。
services.xserver.videoDrivers = [ "nouveau" ];
私はそれに不満はありません。代わりに独自の"nvidia"
を使用すると、テキストコンソールが機能しません。
NixOS 16.09 のアップデート。 NixOS 16.09を搭載した私のマシンでは、オプション[services.xserver.videoDrivers
]はconfiguration.nixに必要ないため、すべてが適切に機能することがわかりました。 glmark2 OpenGLベンチマークで行ったいくつかのテスト。 Nix OS 14.04で観察したものとは逆に、"nvidia"
を選択すると、グラフィカルモードは解除されますが、テキストコンソールは終了します。これは私には少し奇妙に見えますが、これは私が観察したものなので、このオプションをconfiguration.nixから削除しました。
applesmc モジュール(突然のモーションセンサーなど)をロードするには、以下をconfiguration.nixに追加することをお勧めします。
boot.kernelModules = [ "applesmc" ];
私のMacBookでNixOSを使用してこれまでに確認した唯一の「問題」は、NixOSを実行すると、ラップトップは通常Mac OS 10.9の場合よりも5〜10°C高温になることです。これは Mac上のLinux の通常の問題かもしれません。
追加のヒント:
バックライトを機能させ、蓋が閉じている間にラップトップが自然に再開しないようにするには、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のバージョンによっては、上記のコマンドを微調整する必要がある場合があります。そのため、盲目的にコピーアンドペーストしないでください。
リポジトリのマスターブランチに若干の更新された指示があります: installing-uefi.xml