从 Debian 12 升级到 Debian 13

GT610 Lv3

升级系统是一项高风险操作,尤其是在生产环境。尽管我已经在两个生产环境服务器下升级完成,但是没有人能保证升级过程 100% 顺利

由于需要更新内核,升级过程需要重启系统

升级完成后,你有可能会在重启之后出现无法进入系统丢失引导等问题,请务必先行准备好应对措施

如果你给物理机升级系统,请一定确保你自己,或者有专业人员在机器现场尽量不要在无人值守的情况下远程升级

请不要轻易给 VPS、云服务器升级,万一故障将很难恢复。

升级前请务必:

  1. 完整备份:使用 rsync 或专业备份工具,备份重要文件和用户数据。
  2. 机器现场有人:不要让机器处于无人值守的状态,尽量避免远程连接机器升级。
  3. 阅读官方文档Debian 13 升级指南
  4. 验证所有服务:确保所有服务在升级后能正常运行。
  5. 升级期间注意事项
    • 保持稳定的电源和网络连接。
    • 使用 screentmux 防止会话断开(升级前安装:sudo apt install screen)。
    • 不要强制中断升级过程。
    • 遇到配置文件冲突时,建议选择”保留当前版本”。

📝 准备工作

  1. 备份重要数据:确保所有关键数据已备份。

  2. 通知用户:一定要提前告知用户以及下游使用者,什么时候开始升级,什么时候停机,预计多长时间。

  3. 停止正在运行的的服务

    升级前,请先手动停止所有正在运行的服务、容器、虚拟机等。

    使用由 micro-evtd 提供的 watchdog 守护程序的用户,应该在升级前停止守护进程并禁用 watchdog timer,以避免在升级过程中发生不必要的重启:

    1
    2
    service micro-evtd stop
    /usr/sbin/microapl -a system_set_watchdog off
  4. 准备故障恢复措施:准备好各种情况的故障应对措施。最好准备一个 Linux Live 环境的 U 盘,这样万一升级失败,我们还可以通过 chroot 排查故障。

🧐 前置更新

  1. 确认当前版本

    1
    lsb_release -a

    要想升级到 Debian 13,首先你需要确保系统版本为 Debian 12。如果没有,请先升级到 Debian 12。

  2. 更新软件包

    1
    2
    sudo apt update
    sudo apt upgrade
  3. 清理旧包

    1
    sudo apt autoremove --purge
  4. 清理配置文件残留
    使用以下命令检查配置残留:

    1
    find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error'

    然后根据输出,手动删除或者保留。

  5. 处理非官方软件源
    如果你的系统内配置非官方的软件源,请确认是否已支持 Debian 13。如果没有,最好将其禁用。

  6. 检查包状态

    1
    dpkg --audit

    如果有包,请使用 dokg-reconfigure 重新配置。

🔧 升级步骤

1. 修改软件源

1
sudo sed -i 's/bookworm/trixie/g' /etc/apt/sources.list

2. 更新软件包列表

1
sudo apt update

如果空间不足,apt 会输出如下内容:

1
E: You don't have enough free space in /var/cache/apt/archives/.

此时需要释放系统空间。请尝试清除之前的软件包缓存

1
sudo apt clean

如果空间还不够,再尝试移除不需要的软件包

1
sudo apt autoremove

如果空间还不够,请检查整个系统,删除不必要的文件后再继续。

3. 执行最小化升级

1
sudo apt upgrade --without-new-pkgs

此步骤会升级那些不需要删除或安装其它任何包的软件。

当系统空间紧张,并且由于空间限制而无法运行完整升级时,最小的系统升级也将非常有用。

4. 完整系统升级

1
sudo apt full-upgrade

5. 重启系统

建议先重启系统再移除旧内核,这样可以防止新内核无法开机而没有备用内核启动。

1
sudo reboot

6. 清理旧内核

清理旧内核之后最好再重启一次,确保 GRUB、新内核、启动配置文件均工作正常。

1
2
sudo apt autoremove --purge
sudo reboot

🖥️ 升级后检查

如果重启后顺利进入系统,那么恭喜你,本次升级已成功完成。

接下来可以检查所有的软件和服务是工作正常,然后恢复工作了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        _,met$$$$$gg.          root@localhost
,g$$$$$$$$$$$$$$$P. ------------------
,g$$P"" """Y$$.". OS: Debian GNU/Linux 13 (trixie) x86_64
,$$P' `$$$. Host: KVM/QEMU Standard PC (Q35 + ICH9, 2009) (pc-q35-9.2)
',$$P ,ggs. `$$b: Kernel: Linux 6.12.35+deb13-amd64
`d$$' ,$P"' . $$$ Uptime: 2 days, 4 hours, 5 mins
$$P d$' , $$P Packages: 684 (dpkg)
$$: $$. - ,d$$' Shell: bash 5.2.37
$$; Y$b._ _,d$P' Display (QEMU Monitor): 1280x800 @ 75 Hz in 15"
Y$$. `.`"Y$$$$P"' Terminal: /dev/pts/0
`$$b "-.__ CPU: Intel(R) Xeon(R) Platinum 8275CL (4) @ 2.99 GHz
`Y$$b GPU: Unknown Device 1111 (VGA compatible)
`Y$$. Memory: 4.75 GiB / 7.76 GiB (61%)
`$$b. Swap: 0 B / 980.00 MiB (0%)
`Y$$b. Disk (/): 12.07 GiB / 27.95 GiB (43%) - ext4
`"Y$b._ Locale: en_US.UTF-8
`""""

😢 出问题了!

如果升级时出现了任何异常情况,可以在此小节进行排查。

首先,请参考 官方指南 4.5 小节的内容,也许这里对你有帮助。

如果你的问题不是这些或者还没能解决,请在评论区留言补充,找到解决方法之后,我会补充到这一栏。

😊 写在最后

昨天升级了两台服务器,整个过程大概半小时左右,没有遇到严重问题。建议在升级前确保有完整的系统备份,并在业务低峰期操作。

欢迎在评论区交流!

  • 标题: 从 Debian 12 升级到 Debian 13
  • 作者: GT610
  • 创建于 : 2025-07-21 22:50:56
  • 更新于 : 2025-09-23 15:09:18
  • 链接: https://gt-610.dpdns.org/2025/07/21/upgrade-debian-from-bookworm-to-trixie/
  • 版权声明: 本文章采用 CC BY 4.0 进行许可。
评论