我在使用外部 NVME 驱动器时遇到问题,grub 成功启动,但一旦进入条目default configuration
(nixos 生成),就会出现以下错误:
“等待设备 /dev/dis/by-uuid/... 出现超时”
我已经仔细检查了分区的 UUID ,它正确匹配和/
中的内容(由 生成)。在 grub 恢复控制台中,如果我执行 a,我也可以看到具有正确 UUID 的分区。/etc/fstab
hardware-configuration.nix
nixos-generate-config
ls -l
我也添加"nvme"
到boot.initrd.availableKernelModules
.
我可以nixos-enter
通过外部“live USB”连接系统,没有任何问题。
我怀疑我需要一个额外的 initrd 内核模块才能启动它,但我不确定是哪一个?
我试过了:
usbcore
sd_mod
ehci_hcd
uhci_hcd
ohci_hcd
usb_storage
scsi_mod
这仍然会导致相同的错误。
- 将分区复制到内部驱动器(而不是外部 NVME 驱动器,后者仍然会导致相同的错误。
答案1
我遇到了同样的问题,最后我做的是,使用新启动的不同 Linux 安装,比较lsmod
插入 USB 设备之前和之后的输出。
我最终需要的是:
boot.initrd.availableKernelModules = [ "uas" "usbcore" "usb_storage" ];
答案2
我很确定我的问题是由 donixos-rebuild build
而不是引起的nixos-rebuild boot
。第一个命令不会创建一代或将其设置为默认引导。
我可能只需要额外的nvme
模块。