Não consegui encontrar nenhuma descrição de configuração de inicialização dupla deNixOSe Mac OS X em um MacBook (U)EFI. Estou disposto a experimentar, mas gostaria de saber pelo menos se o que vou tentar ésupostopara funcionar, e que haverá uma chance de não ter que reinstalar o OS X posteriormente.
Alguém pode me dizer os passos principais ou fornecer um link para uma página que descreva o procedimento?
O que me confunde em particular é que oSeção de instalação UEFIdo manual do NixOS diz que preciso fazer uma partição de sistema EFI que será montada em/boot; no entanto, meu disco já possui uma partição de sistema EFI como primeira partição e temo que possa haver conflitos se eu permitir que o Mac OS e o NixOS o modifiquem. De acordo com a Wikipédia,
Em computadores Macintosh com arquitetura Apple-Intel, a partição EFI fica inicialmente em branco e não é usada para inicialização. No entanto, a partição EFI é usada como área de teste para atualizações de firmware; especificamente, ele coloca um utilitário flash de firmware (binário EFI) e um arquivo de dados (FD – "Dispositivo de Firmware") no diretório EFI/APPLE/FIRMWARE que é então executado ao reinicializar o sistema no modo "firmware flash". Se excluído, o sistema ainda inicializará e o gerenciador de inicialização ainda permitirá que os usuários escolham se desejam iniciar uma partição do Boot Camp ou o Mac OS X padrão, mas as atualizações de firmware falharão.
Imagino que isso signifique que se eu usar a mesma partição de sistema EFI para NixOS, ela poderá ser modificada se eu fizer uma atualização de firmware da Apple. Também não está claro o que acontecerá se eu criar duas partições de sistema EFI. Por exemplo, existe uma opção de configuração do NixOS boot.loader.efi.efiSysMountPoint
(onde a partição do sistema EFI é montada) com o valor padrão "/boot"
, mas como saberá qual montar?
PS Como gerenciador de boot eu estava planejando usarrEFInd, mas qualquer sugestão alternativa é bem-vinda.
Responder1
Esta é uma versão atualizada da minha resposta inicial, deve funcionar para NixOS 15.09. Ele contém pequenas modificações em comparação com a versão inicial que usei para instalar o NixOS 14.04 com a ajuda denix-devlista de discussão.
Configuração inicial
MacBook 5.1 (2008) com Mac OS 10.9 e disco rígido particionado da seguinte forma:
a) Partição de sistema EFI de 200 MB denominada "EFI".
b) Duas partições usadas pelo Mac OS (10.9).
c) Duas partições ext4 vazias denominadas "nixos" e "home", e uma partição Linux Swap denominada "swap".
Usei as seguintes ferramentas:
Aqui está minha tabela de partições impressa por
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
Conexão de Internet Ethernet por cabo.
Uma unidade USB formatada como FAT com MBR e rotulada como
NIXOS_ISO
, com uma cópia (arrastada e solta) do conteúdo da imagem ISO de 64 bits do NixOS 15.09 (Live CD ou Minimal).A etiqueta da unidade USBdeveser
NIXOS_ISO
(tenteiFLASH
uma vez, não funcionou).Parece que as imagens ISO do NixOS 15.09 não podem ser montadas no Mac OS. Caso a imagem não possa ser montada, basta extrair seu conteúdo. Eu poderia extrair o conteúdo da imagem ISO comKekaarquivador de arquivos.
Instalação
Inicialize a partir da unidade USB mantendo pressionada a Alt/Optiontecla ao reiniciar e selecionando o USBInicialização EFI. Faça login como “root” (sem senha). Certifique-se de que a conexão com a Internet esteja funcionando. É necessária conexão com a Internet para a instalação.
Executar
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
Adicionar
nixpkgs.config.allowUnfree = true;
no gerado/mnt/etc/nixos/configuration.nixarquivo.
Executar
nixos-install
Reinício:
reboot
Inicializando
(Esta foi minha experiência com 14.04.)
Após a reinicialização, o computador inicializou no NixOS. Reiniciei novamente, desta vez segurando a Alt/Optionchave. O menu de inicialização mostrou dois itens “EFI Boot” de aparência idêntica. Acontece que um deles é Mac OS e o outro é NixOS. (Estranho - antes daquele com Mac OS receber o nome da partição do Mac OS.) Ok.
Montei e inspecionei o conteúdo da partição do sistema EFI por curiosidade:
§ 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
Tudo lá, mas/EFI/MAÇÃe seu conteúdo foi criado pela instalação do NixOS.
Tornando o Mac OS padrão novamente
(Esta foi minha experiência com 14.04.)
Para tornar o Mac OS padrão novamente e tornar o item correspondente no Optionmenu de inicialização -key com o nome da partição do Mac OS, bastava ir paraPreferências do Sistema... > Disco de Inicializaçãono Mac OS e selecione a partição com Mac OS. Estranhamente, foi necessário inserir a senha de administrador duas vezes e a partição ainda não foi mostrada como selecionada, mas por outro lado funcionou.
Outras instruções
Para ver sempregomabootmenu, basta
boot.loader.gummiboot.timeout
configurarconfiguração.nix.Para configurar corretamente meunVidiaplaca gráfica, acabei usando o código abertonovomotorista:services.xserver.videoDrivers = [ "nouveau" ];
Não tenho queixas sobre isso. Se eu usar o proprietário"nvidia"
, os consoles de texto não funcionarão.Atualização para NixOS 16.09. Observei que na minha máquina com NixOS 16.09 a opção
services.xserver.videoDrivers
não é necessária emconfiguração.nixpara que tudo funcione bem, e que na verdade degrada visivelmente o desempenho gráfico de acordo com alguns testes que fiz comglmark2Referência OpenGL. Também observei que a seleção"nvidia"
quebra o modo gráfico, mas deixa os consoles de texto, ao contrário do que observei com o Nix OS 14.04. Tudo isso me parece um pouco estranho, mas foi o que observei, então removi essa opção do meuconfiguração.nix.Para carregar omaçãmódulo (para o sensor de movimento repentino, por exemplo) foi-me sugerido adicionar o seguinte aoconfiguração.nix:
boot.kernelModules = [ "applesmc" ];
Observações e observações
O único "problema" com o NixOS no meu MacBook que observei até agora é que executando o NixOS meu laptop geralmente fica de 5 a 10 ° C mais quente do que no Mac OS 10.9. Este pode ser um problema comum paraLinux em um Mac.
Links para instruções de instalação alternativas
- Instale o Linux em um MacBook Air, 17/06/2015 (Instalando NixOS em um MacBook Air em uma configuração de inicialização dupla com Mac OS).
Responder2
Algumas dicas adicionais:
Se quiser que a luz de fundo funcione e evitar que o laptop seja reiniciado espontaneamente enquanto a tampa estiver fechada, você pode usar algo como o seguinte no seu 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
'';
Dependendo da versão do seu MacBook, pode ser necessário ajustar os comandos acima, portanto, não copie e cole cegamente.
Responder3
Existem algumas instruções ligeiramente atualizadas no branch master do repositório:instalando-uefi.xml