rand=$(tr -dc '[:lower:]' </dev/urandom |
dd bs=1 count=1 status=none)
until [ "$in" = "$rand" ] && echo "correct" ; do
in=$(stty raw
dd bs=1 count=1 status=none </dev/tty
stty sane )
echo
done
Я думаю, что вышеперечисленное делает то, что вам нужно.
La forma más sencilla de hacerlo es instalar desde el LiveCD.
nixos-generate-config
regenerará la configuración del hardware, pero si encuentra que configuration.nix
ya existe, lo dejará en paz. Y nixos-install
está diseñado de tal manera que se puede ejecutar de forma segura tantas veces como sea necesario.
Esto significa que puede seguir la guía de instalación principal utilizando el sistema de archivos (y la configuración )que ya creó para NixOS y continuar donde lo dejó.
Algunas cosas a tener en cuenta:
systemd-boot
de forma predeterminada en los sistemas EFI. Entonces terminará con un nuevo ejecutable EFI junto con los que ya tiene. nixos-install
también intentará configurar systemd-boot
como el administrador de arranque predeterminado. Creo que puede deshabilitar esto configurando boot.loader.efi.canTouchEfiVariables
en falso enconfiguration.nix
Agregando esta respuesta para completar :en teoría, la sugerencia anterior de @ Mioriin de chroot
ing sería la respuesta correcta, que podría lograrse mediante el comando nixos-enter
.
Desde Ubuntu, con las particiones de NixOS montadas en/mnt
:
$ sudo $(which nixos-enter)
...
[root@nixos:/]# nixos-rebuild switch
En la práctica, esto no funcionó, porque la red no funcionaría (probablemente porque a mi configuration.nix
le faltaba la configuración correcta en primer lugar )y recibí un montón de mensajes de error:
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
Al final, la respuesta de @ Emmanuel Rosa es correcta, especialmente porque (como él señala,)nixos-install
puede ejecutarse de forma segura varias veces.