运维救援:系统升级与回滚

在 Linux 世界中,“升级”既是享受最新特性的时刻,也是系统最脆弱的时刻。特别是对于滚动更新(Rolling Release)的发行版,掌握正确的升级姿势是防止“滚挂”的唯一手段。


1. 升级前的“救命”清单

🚫 绝对禁止

严禁在没有备份的情况下执行大版本升级!

  1. 执行快照: 运行 sudo timeshift --create
  2. 备份数据: 确保 /home 或关键业务数据已同步至云端或外部硬盘。
  3. 查看官方通告:
    • Arch: 检查首页新闻(Arch News)。
    • Debian/Ubuntu: 查看 Release Notes。

2. 安全升级流程

# 1. 刷新元数据
sudo apt update
# 2. 安全更新
sudo apt upgrade
# 3. 处理依赖变动的全面更新
sudo apt full-upgrade
# 滚动更新
sudo pacman -Syu
# 使用 DNF 插件进行大版本更新 (如 39 -> 40)
sudo dnf system-upgrade download --releasever=40
sudo dnf system-upgrade reboot

3. 当升级失败后:回滚实战

3.1 无法进入系统

  1. 引导至 Grub 菜单。
  2. 如果你在之前的章节配置了 Btrfs + Snapper,可以直接在 Grub 中选择上一份快照引导进入系统。
  3. 否则,插入 Live USB,运行 Timeshift 执行还原。

3.2 驱动失效(黑屏)

通常是 NVIDIA 驱动未随内核同步编译导致的。

解决方法
  1. 在 Grub 按 e 编辑内核参数,加入 nomodeset 启动。
  2. 进入系统后,重新运行 DKMS 或重装驱动:
    sudo dkms autoinstall

4. 生产环境的“蓝绿部署”思维

在管理关键业务服务器时,建议不要原地升级(In-place Upgrade)。

  • 做法: 启动一台新版本的服务器,将业务流量切过去,确认无误后再销毁旧服务器。

5. 结业练习

Navigation