Debian 升级过程中失败

Debian 升级过程中失败

我面临着一个非常严重的问题。我正在将我的笔​​记本电脑从 Debian 7.0 更新到当前的测试发行版。一个 package( veusz.helper) 依赖项丢失,升级过程无法继续。但已经有近 1000 个软件包被卸载。并且系统卡住了。

所以我必须重新启动,但问题是系统也卸载了vmlinuzinitrd.gz所以 grub 无法识别 Linux 卷。而且新下载的包还在/var/apt/cache/archives

有什么方法可以继续升级过程并找出依赖性问题吗?

答案1

如果您的 grub 菜单有其他可用内核,请尝试引导其中之一。您应该能够通过重复运行dpkg --configure --pendingapt-get -f install、 和apt-get dist-upgrade直到没有错误来修复您的系统。

如果没有,您将必须启动救援 CD 或 USB 记忆棒。我最喜欢的是 Clonezilla,因为它有 64 位和 32 位版本 - 大多数其他版本只有 32 位,这使得无法 chroot 到 64 位系统。

如果您启动救援 CD,则需要安装笔记本电脑的根文件系统(例如 /mnt),并在 /mnt 下绑定安装 /proc、/sys 和 /dev。如果您有单独的 /boot 分区,则还需要将 /boot 挂载为 /mnt/boot。然后你可以chroot到/mnt

例如,如果您的 rootfs 是 /dev/sda1 并且 /boot 是 /dev/sda2,您将启动救援 CD,获取 root shell,并执行类似以下操作:

mount /dev/sda1 /mnt
mount /dev/sda2 /mnt/boot
for i in proc dev sys dev/pts ; do mount -o bind /$i /mnt/$i ; done
chroot /mnt

您现在应该能够如上所述修复系统(通过重复运行dpkg --configure --pending等,直到没有错误)。

完成后,检查内核是否已安装并且 initramfs 是否存在,卸载文件系统(以与安装它们相反的顺序)并重新启动。

例如

exit   # exit from the chroot.
for i in dev/pts sys dev proc /boot / ; do umount /mnt/$i ; done
sync
shutdown -r now

sync并不是真正必要的。由于神秘的历史原因,它只是让我感觉更好 - 这是对像 yog sothoth 和 sco unix 这样的可怕恐怖事物的神秘防御。

相关内容