我有一台电脑在分发升级期间意外closures(Ubuntu 8.10 – > 9.04)。 它现在不会完成引导 – 各种X错误,然后进入login屏幕,但不会允许login。
我有它的备份和/ home数据在驱动器上仍然可以,所以这不是紧急情况,但完整的重build仍然是一个烦人的和耗时的过程。 有什么办法可以从中恢复? 我有一张9.04的CD,我正在讨论试图安装在顶端 – 这是一个好主意吗?
如果没有,有没有什么好的方法来检查驱动器,并生成一个软件安装列表,最好甚至从外部/ home(如/ etc)的设置?
如果我必须重新从头开始,有什么build议与意外关机负责人打交道? 🙂
编辑:非常感谢你所有的答案,我真的需要接受所有的答案,因为我需要使用从每个位。 我能够使用这样的东西完全修复安装:
sudo dpkg --configure -a sudo apt-get update sudo dpkg --configure -a sudo dpkg --configure -a --abort-after=99999 sudo apt-get dist-upgrade sudo apt-get -f install sudo apt-get dist-upgrade
如果可以到达可以使用dpkg作为根目录的地方,则可以运行dpkg --configure -a
但是,您可能会发现爆炸式升级,因此您可能需要:
dpkg --configure -a --abort-after=99999
尝试按CTRL-ALT-F1,看看你是否得到一个命令提示符。 看看你是否可以login,然后尝试运行sudo apt-get dist-upgrade 。 这应该可以让你也完成升级。 您可能会遇到错误,所以您可能还需要尝试使用sudo dpkg –configure -a 。
要获得已安装软件的列表,您可以运行命令dpkg –get-selections 。 如果将该命令的输出保存到文件中,则可以使用命令cat selections | sudo dpkg –set-selections ,然后使用命令sudo apt-get dselect-upgrade来实际获取所有安装的软件包。
如果你走这条路线,你可能应该备份你的/ etc和/ home文件夹到另一个设备。
sudo apt-get update sudo dpkg --configure -a sudo apt-get update sudo apt-get dist-upgrade
第一行刷新您正在下载的回购的当前级别
第二行重新configuration任何处于“坏”状态的软件包
第三行是在那里,以防在第二行的过程中资源库“移动”到新版本。
第四行应该完成工作。
我能够从升级过程中断电后Xubuntu无法启动的灾难性情况中恢复过来。 在POST后大约10秒钟,Xubuntu将停止一系列错误(尝试加载grub中的“恢复”选项甚至不工作)。
所以如果有人绊倒在这,我从Ubuntu论坛发布了一些帮助我到达terminal窗口的信息,所以我可以使用上面的Colin和Avery命令。
———- snip ———- snip ———- snip ———- snip —— —-
ubuntuforums.org/showthread.php?t=157250
假设你的系统在升级后融化了,或者新的内核不能启动。 你不能用apt-get来解决这个问题,因为你甚至不能进入命令行。 内核只是发出错误,并挂在启动。 谢天谢地,用一个现场CD,你可以修复你的系统,并启动和运行。 现场cd有两个选项:Knoppix或Ubuntu Live CD。 由于Knoppix通常具有更好的硬件检测function,因此将以此为例。
您现在可以使用硬盘上的所有命令,包括apt-get。 如果你得到这个错误:“/ dev / null:权限被拒绝”,那么这样做:“sudo rm / dev / null”,它应该消失。 现在,使用apt-get来升级你的内核,udev或其他任何搞乱你系统的东西。
———- snip ———- snip ———- snip ———- snip —— —-
它也完美解决了! 我按照说明安装硬盘,打开terminal窗口,进入“sudo chroot / media / hda1”,最后访问我的硬盘。 然后,我可以使用此线程之前发布的命令重新启动升级过程。 🙂
为什么Ubuntu Live /安装光盘没有内置“恢复控制台”来促进整个恢复过程呢?
对于我来说,另一个命令帮助在chroot环境中正确configuration所有的包(在dpkg ,dist
等之前运行):
暴发户作业不能在chroot中开始,因为暴发户作为服务监督者,而且chroot中的进程无法与在chroot之外运行的暴发户进行通信(Bug:430224)。 这将导致一些已被转换为使用upstart jobs而不是init脚本的软件包无法在chroot中升级。 build议用户使用/ sbin / initctl指向/ bin / true来configuration它们的chroot,以下命令在chroot中运行:
码:
dpkg-divert --local --rename --add /sbin/initctl ln -s /bin/true /sbin/initct