如何更改我的 nixos OS 分区的 UUID,并更新引导加载程序?

How can I change the UUID of my nixos OS partition, and update the bootloader?

所以基本上我得到了我的分区的精确克隆(尽管我已经更改了 UUID),现在我想更改引导加载程序以加载新分区。

我尝试了什么:

我天真地(在启动时/在原始分区上 运行)尝试用新的 UUID 修改 hardware-configuration.nix(在原始分区上)然后尝试:

  1. sudo nixos-rebuild switch
  2. sudo nixos-rebuild boot

两者都在安装驱动器时失败**(我认为)。

updating GRUB 2 menu...
lsblk: /dev/mapper/no*[0-9]: not a block device
lsblk: /dev/mapper/raid*[0-9]: not a block device
lsblk: /dev/mapper/disks*[0-9]: not a block device
Found Arch Linux on /dev/sdb3

另外,我假设我可能需要在某个地方安装这个新分区(除非,这不需要实际启动到它(重新启动后)?)。

** 实际上,虽然它看起来 'fail',当我重新启动时,select 通常的 nixos grub 条目,我看到以下内容(提到的 UUID 是确实存在的 UUID - 并且这是新分区):


最坏的情况,似乎我可以使用 nixos live USB 将新分区挂载到 /mnt,然后只需按照通常的 nixos-install(在过去 - 虽然只有 /etc/nixos 目录)?

首先,通过在 hardware-configuration.nix 中更改 UUID 并确保系统正常启动,让系统再次正常工作。

接下来,像之前一样更改 hardware-configuration.nix 中的 UUID,但是这次 运行 sudo nixos-rebuild boot.

当您重新启动时,您的 systemd-boot 或 GRUB2 菜单中将有一个新条目。新条目将从新分区启动 NixOS。

我尝试使用 nixos-install 路线。

我现有的硬件有问题-configuration.nix 似乎我 运行 遇到了完全相同的问题 waiting for device...

最后我 运行 nixos-generate-config --root /mnt 生成了一个新的配置,它有以下区别:

diff -u nixos.backup/hardware-configuration.nix /etc/nixos/hardware-configuration.nix
--- nixos.backup/hardware-configuration.nix 2018-11-22 20:18:01.361647120 +0000
+++ /etc/nixos/hardware-configuration.nix   2018-11-22 20:18:41.818644420 +0000
@@ -8,8 +8,8 @@
     [ <nixpkgs/nixos/modules/installer/scan/not-detected.nix>
     ];

-  boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
-  boot.kernelModules = [ "kvm-intel" ];
+  boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
+  boot.kernelModules = [ "kvm-amd" ];
   boot.extraModulePackages = [ ];

   fileSystems."/" =
@@ -20,6 +20,4 @@
   swapDevices = [ ];

   nix.maxJobs = lib.mkDefault 4;
-  powerManagement.cpuFreqGovernor = "powersave";
 }
-

所以可能是 nvme 位。还补充说我有 kvm-intel 因为我的 CPU 保持不变(这是 AMD)。