(U)EFI MacBook에서 Mac OS X로 듀얼 부팅 NixOS를 구성하는 방법은 무엇입니까?

(U)EFI MacBook에서 Mac OS X로 듀얼 부팅 NixOS를 구성하는 방법은 무엇입니까?

듀얼 부팅 구성에 대한 설명을 찾을 수 없습니다.닉스OS(U)EFI MacBook의 Mac OS X. 나는 실험할 의향이 있지만 적어도 내가 시도할 것이 무엇인지 알고 싶습니다.추정된나중에 OS X를 다시 설치할 필요가 없을 수도 있습니다.

누구든지 주요 단계를 알려주거나 절차를 설명하는 페이지에 대한 링크를 제공할 수 있습니까?

특히 나를 혼란스럽게 하는 것은UEFI 설치 섹션NixOS 매뉴얼에는 /boot에 마운트할 EFI 시스템 파티션을 만들어야 한다고 나와 있습니다. 그러나 내 디스크에는 이미 첫 번째 파티션으로 EFI 시스템 파티션이 있으므로 Mac OS와 NixOS 모두에서 이를 수정하도록 허용하면 충돌이 발생할 수 있습니다. 위키피디아에 따르면,

Apple-Intel 아키텍처 Macintosh 컴퓨터에서 EFI 파티션은 처음에는 비어 있으며 부팅에 사용되지 않습니다. 그러나 EFI 파티션은 펌웨어 업데이트를 위한 준비 영역으로 사용됩니다. 특히 EFI/APPLE/FIRMWARE 디렉토리에 펌웨어 플래시 유틸리티(EFI 바이너리)와 데이터 파일(FD – "펌웨어 장치")을 배치한 다음 "플래시 펌웨어" 모드에서 시스템을 재부팅할 때 실행됩니다. 삭제해도 시스템은 계속 부팅되며 부팅 관리자를 통해 사용자는 Boot Camp 파티션을 시작할지 기본 Mac OS X를 시작할지 선택할 수 있지만 펌웨어 업데이트는 실패합니다.

이는 NixOS에 동일한 EFI 시스템 파티션을 사용하는 경우 Apple 펌웨어 업데이트를 수행하면 수정될 수 있음을 의미한다고 생각합니다. 두 개의 EFI 시스템 파티션을 생성하면 어떤 일이 발생하는지 명확하지 않습니다. 예를 들어 NixOS 구성 옵션 boot.loader.efi.efiSysMountPoint(EFI 시스템 파티션이 마운트된 위치)에는 기본값이 있는데 "/boot"마운트할 항목을 어떻게 알 수 있습니까?

추신: 저는 부팅 관리자로서 다음을 사용할 계획이었습니다.재정의, 그러나 다른 제안은 환영합니다.

답변1

이것은 내 초기 답변의 업데이트된 버전이며 NixOS 15.09에서 작동합니다. 여기에는 다음의 도움을 받아 NixOS 14.04를 설치하는 데 사용한 초기 버전과 비교하여 약간의 수정 사항이 포함되어 있습니다.nix-dev메일링 리스트.

초기 설정

  1. Mac OS 10.9가 탑재되고 하드 드라이브가 다음과 같이 파티션된 MacBook 5,1(2008):

    a) "EFI"라고 표시된 200MB EFI 시스템 파티션.

    b) Mac OS(10.9)에서 사용되는 두 개의 파티션.

    c) "nixos" 및 "home" 레이블이 붙은 두 개의 빈 ext4 파티션과 "swap" 레이블이 붙은 Linux Swap 파티션.

    나는 다음 도구를 사용했습니다.

    • GPT fdisk(Mac OS에서),

    • mkfs.ext4(부팅 가능한 USB 드라이브의 NixOS에서)

    • mkswap.

    다음은 다음과 같이 인쇄된 내 파티션 테이블입니다 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. 케이블 이더넷 인터넷 연결.

  3. MBR을 사용하여 FAT로 포맷되고 라벨이 붙은 USB 드라이브 NIXOS_ISO, NixOS 15.09 64비트 ISO 이미지(Live CD 또는 최소) 콘텐츠의 복사본(끌어서 놓기)이 포함되어 있습니다.

    • USB 드라이브의 라벨~ 해야 하다( 한 번 NIXOS_ISO시도했지만 FLASH작동하지 않았습니다).

    • Mac OS에서는 NixOS 15.09 ISO 이미지를 마운트할 수 없는 것 같습니다. 이미지를 마운트할 수 없는 경우 해당 콘텐츠를 추출하는 것으로 충분합니다. ISO 이미지의 내용을 추출할 수 있습니다.케카파일 아카이버.

설치

  1. 재부팅할 때 키를 누른 상태에서 USB 드라이브 Alt/Option를 선택하여 USB 드라이브에서 부팅합니다.EFI 부팅. "root"(비밀번호 없이)로 로그인합니다. 인터넷 연결이 작동하는지 확인하세요. 설치를 위해서는 인터넷 연결이 필요합니다.

  2. 실행하다

    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. 추가하다

    nixpkgs.config.allowUnfree = true;
    

    생성된/mnt/etc/nixos/configuration.nix파일.

  4. 실행하다

    nixos-install
    
  5. 재부팅:

    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 OS를 다시 기본으로 설정

(이것이 14.04에 대한 나의 경험이었습니다.)

Mac OS를 다시 기본값으로 설정하고 Mac OS 파티션 이름을 딴 -key 부팅 메뉴에서 해당 항목을 만들려면 Option다음으로 이동하면 충분했습니다.시스템 환경설정... > 시동 디스크Mac OS에서는 Mac OS가 있는 파티션을 선택합니다. 이상하게도 관리자 비밀번호를 두 번 입력해야 했는데 파티션이 여전히 선택된 것으로 표시되지 않았지만 그렇지 않으면 작동했습니다.

기타 지침

  • 항상 볼 수 있도록구미부트boot.loader.gummiboot.timeout메뉴는 이것 으로 충분해요구성.nix.

  • 내 것을 올바르게 구성하려면엔비디아그래픽 카드, 결국 오픈소스를 사용하게 됐어요누보운전사:

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

    나는 그것에 대해 불만이 없습니다. 대신 독점을 사용하면 "nvidia"텍스트 콘솔이 작동하지 않습니다.

    NixOS 16.09 업데이트. NixOS 16.09가 설치된 내 컴퓨터에서는 이 옵션이 services.xserver.videoDrivers필요하지 않은 것으로 나타났습니다 .구성.nix모든 것이 잘 작동하기 위해서는 실제로 제가 수행한 몇 가지 테스트에 따르면 그래픽 성능이 눈에 띄게 저하됩니다.glmark2OpenGL 벤치마크. 또한 "nvidia"Nix OS 14.04에서 관찰한 것과는 달리 선택하면 그래픽 모드가 중단되지만 텍스트 콘솔은 남는 것을 관찰했습니다 . 이 모든 것이 나에게는 조금 이상해 보이지만 이것이 내가 관찰한 것이므로 내에서 이 옵션을 제거했습니다.구성.nix.

  • 로드하려면사과모듈(예를 들어 갑작스러운 동작 센서용)에 다음을 추가하라는 제안이 있었습니다.구성.nix:

    boot.kernelModules = [ "applesmc" ];
    

비고 및 관찰

지금까지 내가 관찰한 내 MacBook의 NixOS에 대한 유일한 "문제"는 NixOS를 실행하는 내 노트북이 Mac OS 10.9보다 일반적으로 5~10°C 더 뜨거워진다는 것입니다. 이는 일반적인 문제일 수 있습니다.맥의 리눅스.

대체 설치 지침에 대한 링크

답변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

저장소의 마스터 브랜치에는 약간 업데이트된 지침이 있습니다.설치-uefi.xml

관련 정보