远程升级 Debian13 翻车与 GRUB 手动引导修复记录

远程升级 Debian13 翻车与 GRUB 手动引导修复记录

tsvico Lv5

Debian13 发布于 2025 年 8 月 9 日,代号 trixie,抱着尝鲜的念头在中午休息的时候给家里的小主机做了个升级,因为考虑不周最终翻车无法开机,记录下升级与救回的过程。

升级与翻车

我是使用 tailscale 连接的家里的小主机,升级前没想着通过局域网 192.168.2.2 连接小主机进行升级,而是直接使用 tailscale 的 100.64.x.x 网段直接进行升级,中途意外连接断开,以失败告终。
我先是参考了 Debian 12 升级到 Debian 13 的一些注意事项 ,更新 openssh 版本到 1:9.2p1-2+deb12u7 以上,然后就进行了升级

debian 不可以跨版本升级,如果非 debian12,需要逐级升级,如 Debian11Debian12Debian13

更新当前 debian 系统

1
2
3
4
5
sudo apt update
sudo apt upgrade -y
sudo apt full-upgrade -y
sudo apt autoclean
sudo apt autoremove -y

升级系统当前系统

目前并非所有软件源都已包含 debian13 的包,幸运的是我使用的中科大的源是已经包含的,更新 apt 源,替换 bookwormtrixie

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

再次更新系统

1
2
3
sudo apt update
sudo apt upgrade -y
sudo apt full-upgrade -y

在执行 apt update 如果提示类似的库“http://download.zerotier.com/debian/trixie trixie Release”没有 Release 文件为正常现象,可以忽略
6c4fc758d19664c0cf831cd92b785926.png

远程更新已老实 👨‍🏫

然后悲催的发现,sudo apt upgrade -y 升级卡在了 92%tailscale ping 小主机 也是已知提示超时,在等待 20 分钟依旧没修复后,我选择了断电重启,依旧是连不上

7052d4decae241849a58c98734fb9c22.png

连接上家里的其他设备,ping 局域网 IP 依旧无法连接,已老实 🐶

问题修复

下午下班后,给小主机接上显示器,发现开机就进 grub,判断应该是引导出现了问题,遂尝试解决。

在 grub> 中敲命令查看所有分区:

1
ls

看到:

1
(hd0) (hd0,gpt3) (hd0,gpt4) ...

这么多也不知道哪个是根目录,逐个查看:

1
2
ls (hd0,gpt3)/
ls (hd0,gpt4)/

我们需要找到系统的根目录,即有 /boot 的分区

  • 有 EFI 文件夹 → EFI 分区
  • 有 boot、etc、usr → Linux 根分区

手动引导系统

除了找到根目录分区外,我这里是 (hd0,gpt3),还需要找到对应挂载分区,开始时我也忘记了自己是哪个,盲目地使用了 /dev/sda2,此时应该使用命令 cat (hd0,gpt3)/etc/fstab 查看挂载信息,使用类似 root=UUID=8956931f-b138-4a79-a9e0-46e75ef3e430 的路径,我当时没深入研究,使用了 AI 给我的一个对照表,不确定权威性,算是蒙对了吧 🤦‍♂️

grub 名Linux SATALinux NVMe
(hd0,gpt1)/dev/sda1/dev/nvme0n1p1
(hd0,gpt2)/dev/sda2/dev/nvme0n1p2
(hd0,gpt3)/dev/sda3/dev/nvme0n1p3
1
2
3
4
set root=(hd0,gpt2)
linux /boot/vmlinuz-6.9.0-3-amd64 root=/dev/sda3 ro
initrd /boot/initrd.img-6.9.0-3-amd64
boot

如果是 UUID 这种形式,要写作 linux /boot/vmlinuz-6.9.0-3-amd64 root=UUID=8956931f-b138-4a79-a9e0-46e75ef3e430 ro

这里如果 root 的路径是对的,当输入 /boot 后可以使用 Tab 补全后面的路径,vmlinuz-6.9.0-3 要替换为实际存在的内核版本

注意:

/dev/sdaX 适用于 SATA 硬盘,NVMe 需用 /dev/nvme0n1pX
内核和 initrd 文件名要用 ls /boot/ 查到的实际版本替换

进入系统后修复

最后成功的进入了系统,这下就简单了,只要能进系统,继续之前的安装就可以

1
2
3
4
5
6
7
8
# 修复安装失败的包
sudo apt --fix-broken install
# 重新配置
sudo dpkg --configure -a
# 修复引导
sudo update-grub
sudo grub-install
sudo reboot

最后清理下不必要的软件和依赖

1
2
3
4
apt autoclean
apt autoremove -y
# 查看系统版本
cat /etc/debian_version

这样就恢复了正常引导,系统可以正常使用了

最后总结下经验,升级最好使用局域网直连,或者在物理机旁边 😭

  • 标题: 远程升级 Debian13 翻车与 GRUB 手动引导修复记录
  • 作者: tsvico
  • 创建于 : 2025-08-11 21:08:56
  • 更新于 : 2025-08-12 09:08:56
  • 链接: https://blog.tbox.fun/2025/2235114744.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论