Eu bulo o Arch Linux, o Gentoo Linux e o NixOS. O problema é que esses sistemas operacionais, especificamente sua versão do gerenciador de inicialização GRUB2, não funcionam bem uns com os outros. Se eu configurar o gerenciador de inicialização com o NixOS, as entradas do Gentoo e do NixOS serão bem inicializadas, mas as entradas do Arch Linux na configuração do GRUB2 na verdade inicializam o NixOS e não o Arch Linux. Se eu configuro o GRUB2 do Arch Linux, o NixOS não é reconhecido, mas o Gentoo é (o os-prober está instalado). Minhas partições são assim:
/dev/sda
- /dev/sda1 - my EFI partition
- /dev/sda2 - my Gentoo partition
- /dev/sda3 - my Arch Linux partition
- /dev/sda4 - my NixOS partition
- /dev/sda5 - my swap partition
/dev/sdb
- /dev/sdb1 - my data partition on which I store config files, documents, etc.
/ dev / sda tem uma tabela de partições GPT com um MBR protetor, se relevante.
Então, minha pergunta é, existe uma maneira de obter o bootloader GRUB2 do Arch Linux para reconhecer e criar entradas de inicialização apropriadas para o NixOS? Ou se não, existe uma maneira de obter o bootloader do NixOS para criar entradas apropriadas para o Arch Linux? Se isso ajuda aqui é o meu arquivo configuration.nix e aqui é o meu arquivo hardware-configuration.nix.
Para deixar claro quando configuro o GRUB2 em um desses sistemas para o gerenciador de boot, certifico-me de que apenas o gerenciador de inicialização dessa distribuição o está gerenciando. Os arquivos do carregador de inicialização da outra distro são excluídos da partição EFI. Por exemplo, quando eu usei o NixOS para gerenciar o bootloading eu apaguei a pasta / boot / EFI / arch (onde o EFI é montado em / boot) e movi as imagens do kernel do Arch Linux da partição EFI para a partição raiz do Arch Linux pasta.
EDIT: Eu consegui fazer com que o NixOS quase configure o GRUB2 corretamente para rodar o Arch. Eu notei que em / etc / fstab para o Arch ele ainda estava montando o / dev / sda1 no / boot quando não era mais necessário, já que eu mudei o bootloader de ser do Arch para o NixOS.
O único problema com o arquivo de configuração agora é que ele tem:
initrd /boot/intel-ucode.img
em vez de:
initrd /boot/intel-ucode.img /boot/initramfs-linux.img
ou:
initrd /boot/intel-ucode.img /boot/initramfs-linux-fallback.img
dependendo da entrada precisa. Portanto, o resultado é que, se eu inicializo o Arch, ele entra em pane no kernel. Então, como eu adiciono a linha /boot/initramfs-linux*.img apropriada sem editar manualmente este arquivo toda vez?