You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NixOS执行nixos-rebuild switch后重启无法加载新配置求助

解决NixOS nixos-rebuild switch 后重启回旧配置的问题

核心问题定位

执行sudo nixos-rebuild switch后当前系统运行正常,但重启回到旧配置,且nixos-rebuild list-generations未更新,说明新系统代未被正确添加到启动加载器配置中,或是系统代本身未成功生成。

排查与解决步骤

1. 重新执行命令并检查详细日志

重新运行命令,查看完整输出定位隐藏错误:

sudo nixos-rebuild switch -vv

重点关注:

  • 是否出现error或warning信息,尤其是配置语法错误、npins模块导入失败、权限问题
  • 是否成功完成building the system configuration步骤,生成新的/nix/store/xxx-nixos-system-xxx路径
  • 是否执行了switch-to-configuration switch,以及GRUB配置更新流程是否正常

2. 验证新系统代是否生成

检查系统代符号链接是否指向最新构建的系统:

ls -l /nix/var/nix/profiles/system

如果该链接未与/run/current-system指向同一路径,说明新系统代未成功生成,需排查配置:

  • 切换到配置目录,执行语法检查:
    nix-instantiate --eval -E 'import ./configuration.nix'
    
  • 确认npins的npins.json锁定文件有效,Proxmox模块路径正确且可正常拉取。

3. 检查GRUB配置是否正确更新

手动生成GRUB配置

强制更新GRUB菜单:

sudo grub-mkconfig -o /boot/grub/grub.cfg

查看/boot/grub/grub.cfg,确认其中包含最新系统代条目(通过时间戳或版本号识别)。

检查GRUB默认设置

查看/etc/default/grub中的GRUB_DEFAULT项:

  • 如果设置为固定数字(如0),重启会始终选择旧菜单条目;建议改为default或saved,并开启GRUB_SAVEDEFAULT=true。

确认启动加载器无冲突

检查configuration.nix中是否同时启用GRUB和systemd-boot,需只保留一个:

boot.loader.grub.enable = true;
# boot.loader.systemd-boot.enable = true; # 注释冲突项

4. 检查NixOS配置中的GRUB设备设置

确认configuration.nix中GRUB设备配置正确:

boot.loader.grub = {
  enable = true;
  device = "/dev/sda"; # 传统BIOS启动,替换为你的磁盘设备
  # UEFI启动使用:
  # device = "nodev";
  # efiSupport = true;
};

设备指定错误会导致GRUB配置无法写入正确路径,重启后无法加载新系统代。

5. 手动添加系统代到启动项

如果新系统代已存在于/nix/store但未被添加到系统代列表:

  1. 找到新系统代路径(如/nix/store/abc123-nixos-system-myhost-23.11.xxxx)
  2. 设置为当前系统代:
    sudo nix-env -p /nix/var/nix/profiles/system --set /nix/store/abc123-nixos-system-myhost-23.11.xxxx
    
  3. 重新切换配置并更新GRUB:
    sudo /run/current-system/bin/switch-to-configuration switch
    sudo grub-mkconfig -o /boot/grub/grub.cfg
    

6. 确认Git配置状态

确保执行nixos-rebuild switch时使用的是正确Git分支,配置文件无未提交的旧版本修改。


内容的提问来源于stack exchange,提问作者Prateek Raj Gautam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 15:59:49