Como configurar o NixOS de inicialização dupla com o Mac OS X em um (U) EFI MacBook?
19
Não foi possível encontrar nenhuma descrição da configuração da inicialização dupla do NixOS e do Mac OS X em um (U) EFI MacBook. Estou disposto a experimentar, mas gostaria de saber pelo menos que o que vou tentar deve funcionar e que haverá uma chance de não precisar reinstalar o OS X posteriormente.
Alguém pode me dizer as etapas principais ou fornecer um link para uma página que descreve o procedimento?
O que me confunde em particular é que a seção de instalação UEFI do manual NixOS diz que eu preciso criar uma Partição de Sistema EFI que será montada em / boot; no entanto, meu disco já possui uma partição do sistema EFI como a primeira partição e receio que possa haver conflitos se eu permitir que o Mac OS e o NixOS a modifiquem. Segundo a Wikipedia ,
Nos computadores Macintosh com arquitetura Apple – Intel, a partição EFI fica inicialmente em branco e não é usada para inicializar. No entanto, a partição EFI é usada como uma área de preparação 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 é executado ao reiniciar o sistema no modo "flash firmware". Se excluído, o sistema ainda será inicializado e o gerenciador de inicialização ainda permitirá aos usuários escolher se deseja 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 significa que, se eu usar a mesma EFI System Partition 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 está montada) com o valor padrão "/boot", mas como ele saberá qual montar?
PS Como um gerenciador de inicialização, eu estava planejando usar o rEFInd , mas qualquer sugestão alternativa é bem-vinda.
Esta é uma versão atualizada da minha resposta inicial, deve funcionar no NixOS 15.09. Ele contém pequenas modificações em comparação com a versão inicial que eu usei para instalar o NixOS 14.04 com alguma ajuda da lista de discussão nix-dev .
Configuração inicial
MacBook 5,1 (2008) com Mac OS 10.9 e disco rígido particionados da seguinte maneira:
a) Partição do sistema EFI de 200 MB rotulada "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 Swap do Linux denominada "swap".
Uma unidade USB formatada como FAT com MBR e rotulada NIXOS_ISOcom uma cópia (arrastada e solta) do conteúdo da imagem ISO do NixOS 15.09 de 64 bits (Live CD ou Minimal).
A etiqueta da unidade USB deve estar NIXOS_ISO(tentei FLASHuma vez, não funcionou).
Parece que as imagens ISO do NixOS 15.09 não podem ser montadas no Mac OS. Se a imagem não puder ser montada, basta extrair seu conteúdo. Eu poderia extrair o conteúdo da imagem ISO com o arquivo Keka .
Instalação
Inicialize a partir da unidade USB mantendo pressionada a Alt/Optiontecla ao reiniciar e selecionando a Inicialização EFI USB . Faça o login como "root" (sem senha). Verifique se a conexão com a Internet está funcionando. É necessária uma 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 arquivo /mnt/etc/nixos/configuration.nix gerado .
Executar
nixos-install
Reinicialização:
reboot
Inicializando
( Esta foi a minha experiência com o 14.04. )
Após a reinicialização, o computador inicializou no NixOS. Eu reiniciei novamente, desta vez segurando a Alt/Optiontecla. O menu de inicialização mostrou dois itens de "EFI Boot" com aparência idêntica. Descobriu-se que um deles é o Mac OS e o outro é o NixOS. (Estranho - antes do nome do Mac OS ter o nome da partição do Mac OS).
Montei e inspecionei o conteúdo da partição do sistema EFI por curiosidade:
Tudo lá, exceto / EFI / APPLE e seu conteúdo, foi criado pela instalação do NixOS.
Tornando o Mac OS novamente padrão
( Esta foi a minha experiência com o 14.04. )
Para tornar o Mac OS novamente padrão e tornar o item correspondente no Optionmenu de inicialização com o nome da partição do Mac OS, basta acessar Preferências do Sistema ...> Disco de Inicialização no Mac OS e selecionar a partição no Mac OS. Estranhamente, era necessário digitar a senha de administrador duas vezes e a partição ainda não era mostrada como selecionada, mas, caso contrário, funcionava.
Outras instruções
Para sempre ver o menu gummiboot , basta definir boot.loader.gummiboot.timeoutem configuration.nix .
Para configurar corretamente minha placa de vídeo nVidia , acabei usando o driver nouveau de código aberto :
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 o NixOS 16.09 . Observei que na minha máquina com o NixOS 16.09, a opção services.xserver.videoDriversnão é necessária no configuration.nix para que tudo funcione bem e que, de fato, prejudica visivelmente o desempenho gráfico de acordo com alguns testes que fiz com o benchmark glmark2 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 no Nix OS 14.04. Tudo isso me parece um pouco estranho, mas foi o que observei, então removi essa opção do meu configuration.nix .
Para carregar o módulo applesmc (para o sensor de movimento repentino, por exemplo), sugeriu-me adicionar o seguinte ao configuration.nix :
boot.kernelModules = [ "applesmc" ];
Observações e observações
O único "problema" com o NixOS no meu MacBook que eu observei até agora é que rodar o NixOS no meu laptop geralmente fica 5-10 ° C mais quente do que no Mac OS 10.9. Este pode ser um problema comum para Linux em um Mac .
Links para instruções de instalação alternativas
Instale o Linux em um MacBook Air , 17/06/2015 (Instalação do NixOS em um MacBook Air em uma configuração de inicialização dupla com o Mac OS).
Obrigado @Alexey pela boa redação! Eu tenho apenas uma dúvida. É ambíguo se você acabou usando a partição EFI preexistente (criada pela Apple) ou se você criou uma partição adicional. Eu tentei o último, mas a instalação está falhando com "... o sistema de arquivos não é um EFI válido", então suspeito que precise usar apenas a partição EFI do Mac. Você confirma? Obrigado!
Alfredo Di Napoli
Alfredo, você está certo, eu não expliquei como consegui a configuração inicial. Eu já tinha o Apple EFI System Partition, que, acredito, todos os computadores como o meu pré-instalaram. Ficarei surpreso, no entanto, se importa como essa partição é criada. Tem certeza de que definiu o código de partição correto EF00? Eu usei o gdisk para gerenciar minhas novas partições. Fiz uma edição para mostrar minha tabela de partições.
Alexey #
Olá @Alexey, obrigado pela resposta. Enquanto isso, tive a coragem de simplesmente reutilizar a partição EFI pré-instalada que, aparentemente, é como devemos proceder. Provavelmente é possível criar duas partições (e eu realmente usei o EF00 para a que eu criei), mas eventualmente a reutilização da Apple pré-instalada funcionou. Estou digitando no NixOS enquanto falamos :) #
Alfredo Di Napoli
Acredito que li em algum lugar que não é recomendado ou, de alguma forma, não há suporte para ter mais de uma partição de sistema EFI.
Alexey #
Boa sorte com a depuração do NixOS no MacBook :). Se você não tiver SSD e descobrir como configurar o sensor de movimento repentino, informe-me, por favor. (Acabei de adicionar um comentário sobre isso à minha resposta.) Também pareço ter dificuldade em configurar a frequência da CPU: mesmo com o powersavegovernador, ele fica muito quente sem motivo aparente.
Alexey
2
Algumas dicas adicionais:
Se você deseja que a luz de fundo funcione e evite que seu laptop seja retomado espontaneamente enquanto a tampa estiver fechada, use algo como o seguinte 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, você pode precisar ajustar os comandos acima; portanto, não copie e cole cegamente.
EF00
? Eu usei o gdisk para gerenciar minhas novas partições. Fiz uma edição para mostrar minha tabela de partições.powersave
governador, ele fica muito quente sem motivo aparente.Algumas dicas adicionais:
Se você deseja que a luz de fundo funcione e evite que seu laptop seja retomado espontaneamente enquanto a tampa estiver fechada, use algo como o seguinte
configuration.nix
:Dependendo da versão do seu MacBook, você pode precisar ajustar os comandos acima; portanto, não copie e cole cegamente.
fonte
Existem algumas instruções ligeiramente atualizadas na ramificação principal do repositório: installation-uefi.xml
fonte