如何从 Live CD 重建 NixOS 安装的配置?

tor*_*tte 5 nixos

我按照 NixOS 手册的“ 2.4。从另一个 Linux 发行版安装”部分在另一个分区上从 Ubuntu 安装了 NixOS 18.03 。一切都很顺利,但我做了一些愚蠢的事情[?],即:

  • 忘记在nixos-install. 在安装后添加它作为事后的想法,并重新启动(当然,没有 Ubuntu 条目)

  • 中没有启用任何网络configuration.nix,并且在重新启动以连接到 wifi 后最终没有网络配置命令。问题 22 是nixos-rebuild switch需要网络连接,所以我无法完成任何更改。

所以我的想法是我可以从 NixOS Live CD (17.03) 启动,连接到我们的 wifi 并以某种方式重建安装配置。

我很可能遗漏了一些必不可少的东西,上面有不正确的假设等;在 nix 和 NixOS 上相当新。


编辑:我忘了包括我的分区是如何设置的以及在成功安装 NixOS 之前我尝试了什么。

分区(来自 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      
Run Code Online (Sandbox Code Playgroud)

我不想弄乱 Ubuntu 启动分区,所以我创建了另一个 ( /dev/sda3)。我的计划是稍后在 Ubuntu 的 NixOS GRUB 中包含一个菜单条目,但现在,从 GRUB 控制台安装、重新启动和测试启动 NixOS ( set root=..., linux ..., initrd ..., boot)

sudo PATH="$PATH" NIX_PATH="$NIX_PATH" `which nixos-install` --root /mnt --no-bootloader
Run Code Online (Sandbox Code Playgroud)

重启后,我在 NixOS 启动分区上看不到任何东西。回到 ubunut,没有安装--no-bootloader,记得为 Ubuntu 添加一个条目并重新启动。(直到这之后我才意识到systemd-boot和 GRUB 是两个完全不同的东西......)


更新:通过在 BIOS 中选择 Ubuntu 引导分区作为备用引导设备,我能够回到 Ubuntu,并且出现了通常的 GRUB 菜单。我可能只是使用正确的配置重做安装。

Emm*_*osa 5

最简单的方法是从 LiveCD 安装。

nixos-generate-config将重新生成硬件配置,但如果它发现configuration.nix已经存在,它将不理会它。并且nixos-install被设计成可以根据需要安全地执行多次。

这意味着您可以使用您已经为 NixOS 创建的文件系统(和配置)按照主要安装指南进行操作,然后从上次停止的地方继续。

需要注意的一些事项:

  • NixOS 将systemd-boot默认安装在 EFI 系统上。因此,您最终会得到一个新的 EFI 可执行文件,以及您已有的可执行文件。
  • nixos-install还将尝试设置systemd-boot为默认启动管理器。我相信您可以通过boot.loader.efi.canTouchEfiVariablesconfiguration.nix
  • 我建议使用基本配置安装 NixOS;例如,设置网络、用户和安装文本编辑器,但其他的不多。原因是 LiveCD 使用保存在 RAM 中的 Nix 存储。您的系统将首先安装到此 RAM 支持的 Nix 存储,然后复制到磁盘。安装并启动后,您可以安全地继续进行其余的配置。