Como reconstruir a configuração de uma instalação do NixOS a partir do Live CD?

1

Eu instalei o NixOS 18.03 do Ubuntu em outra partição seguindo o manual do NixOS " 2.4 Instalando a partir de outra distribuição Linux ". Tudo correu bem, mas eu fiz algumas coisas idiotas [?] , a saber:

  • Esqueceu-se de adicionar a entrada extra do carregador de inicialização GRUB para a instalação do Ubuntu antes de nixos-install . Adicionado como uma reflexão tardia após a instalação, e fez uma reinicialização (claro, sem entrada no Ubuntu)

  • Não ativou nenhuma rede em configuration.nix e acabou sem comandos de configuração de rede após a reinicialização para se conectar ao Wi-Fi. A captura 22 é que nixos-rebuild switch requer uma conexão de rede, por isso não consegui finalizar nenhuma alteração.

Então, meu pensamento foi que eu posso inicializar a partir de um NixOS Live CD (17.03), conectar-me ao nosso wifi e de alguma forma reconstruir a configuração da instalação.

É mais do que possível que eu esteja sentindo falta de algo essencial, tenha suposições incorretas acima, etc; relativamente novo no nix e no NixOS.

EDIT: Esqueci de incluir como minhas partições estão configuradas e o que eu tentei antes de instalar o NixOS com sucesso.

Partições (pontos de montagem do Ubuntu):

sda
├─sda1         ntfs     Recovery              # some Win7 artifact
├─sda2         vfat               /boot/efi
├─sda3         vfat     NIXBOOT               # boot partition (esp, boot)
├─sda4         ext4     onyx                  # NixOS data
├─sda5         swap                           # Ubuntu swap
│ └─cryptswap1 swap               [SWAP]
├─sda6         ext4                           # (Arch install)
├─sda7         ext4               /           # Ubuntu install
├─sda8         swap     nixswap   
└─sda9         ext4     home      

Eu não queria bagunçar a partição de boot do Ubuntu, então criei outra ( /dev/sda3 ). Meu plano era depois incluir uma entrada de menu no GRUB do Ubuntu para o NixOS, mas por enquanto, instale, reinicie e teste o NixOS a partir do console do GRUB ( set root=... , linux ... , initrd ... , boot )

sudo PATH="$PATH" NIX_PATH="$NIX_PATH" 'which nixos-install' --root /mnt --no-bootloader

Após a reinicialização, não consegui ver nada na partição de inicialização do NixOS. Voltei para o Ubunut, instalei sem --no-bootloader , lembrei de adicionar uma entrada para o Ubuntu e reiniciar. (Foi só depois disso que percebi que systemd-boot e GRUB são duas coisas completamente diferentes ...)

UPDATE: Consegui voltar ao Ubuntu selecionando a partição de boot do Ubuntu como um dispositivo de boot alternativo no BIOS, e o menu usual do GRUB apareceu. Eu posso apenas refazer a instalação com a configuração correta.

    
por toraritte 28.05.2018 / 17:22

2 respostas

1

A maneira mais simples de instalar é a partir do LiveCD.

nixos-generate-config irá gerar novamente a configuração de hardware, mas se encontrar configuration.nix , ela será deixada em paz. E nixos-install é projetado de forma que possa ser executado com segurança quantas vezes forem necessárias.

Isso significa que você pode seguir o guia de instalação principal usando o sistema de arquivos (e a configuração) que você já criou para o NixOS e continuar de onde parou.

Algumas coisas a serem lembradas:

  • O NixOS instalará systemd-boot por padrão nos sistemas EFI. Então você vai acabar com um novo executável EFI ao lado dos que você já tem.
  • nixos-install também tentará definir systemd-boot como o gerenciador de inicialização padrão. Eu acredito que você pode desativar isso, definindo boot.loader.efi.canTouchEfiVariables para false em configuration.nix
  • Eu recomendo instalar o NixOS com uma configuração básica; Por exemplo, configure a rede, os usuários e instale um editor de texto, mas não muito mais. A razão é que o LiveCD usa um armazenamento Nix que é mantido na RAM. Seu sistema será primeiro instalado nesse repositório Nix suportado por RAM e depois copiado para o disco. Uma vez instalado e inicializável, você pode prosseguir com segurança com o resto da configuração.
por 29.05.2018 / 04:29
0

Acrescentando esta resposta para completar: em teoria, @ sugestão de Mioriin acima de chroot ing seria a resposta correta, que poderia ser obtida pelo comando nixos-enter .

Do Ubuntu, com as partições NixOS montadas em /mnt :

$ sudo $(which nixos-enter)
...
[root@nixos:/]# nixos-rebuild switch

Na prática, isso não funcionou, porque a rede não funcionaria (provavelmente porque minhaconfiguration.nix estava faltando a configuração correta em primeiro lugar) e recebeu um monte de mensagens de erro:

warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs' does not exist, ignoring
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels' does not exist, ignoring
error: file 'nixpkgs/nixos' was not found in the Nix search path (add it using $NIX_PATH or -I), at (string):1:13
System has not been booted with systemd as init system (PID 1). Can't operate.
building Nix...
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs' does not exist, ignoring
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels' does not exist, ignoring
error: file 'nixpkgs/nixos' was not found in the Nix search path (add it using $NIX_PATH or -I)
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs' does not exist, ignoring
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels' does not exist, ignoring
error: file 'nixpkgs' was not found in the Nix search path (add it using $NIX_PATH or -I)
warning: unable to download 'https://cache.nixos.org/nix-cache-info': Couldn't resolve host name (6); retrying in 293 ms
^Cwarning: download of 'https://cache.nixos.org/nix-cache-info' was interrupted
don't know how to build these paths:
  /nix/store/z6avpvg24f6d1br2sr6qlphsq3h4d91v-nix-2.0.2
error: interrupted by the user
warning: don't know how to get latest Nix

No final, @ resposta de Emmanuel Rosa está certa, especialmente porque (como ele aponta para fora) nixos-install pode ser executado com segurança várias vezes.

    
por 31.05.2018 / 07:58

Tags