在Ubuntu发行版升级期间从关机中恢复


18

我有一台在发行版升级期间意外关闭的计算机(Ubuntu 8.10-> 9.04)。现在它无法完成启动-各种X错误,然后进入登录屏幕,但不允许登录。

我已经对其进行了备份,并且/ home数据在驱动器上仍然可以正常运行,因此不是紧急情况,但是完整的重建仍然是一个烦人且耗时的过程。有什么办法可以恢复吗?我有一张9.04的CD,我正在尝试尝试在顶部安装-这是一个好主意吗?

如果失败,是否有任何好的方法来检查驱动器并生成安装的软件列表,最好甚至包括来自/ home外部(例如/ etc)的设置?


如果我必须从头开始,有什么建议与负责意外关机的人员打交道?:)


编辑:非常感谢您的所有答案,我真的需要接受所有答案,因为我需要使用每个答案中的位。我可以使用以下方法完全修复安装:

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

1
使用LART(catb.org/jargon/html/L/LART.html):“ LART classic是2x4或其他大型木料,可用作俱乐部旋钮,自动武器,喷火器和战术武器。核武器都有他们的游击队员。”
David Schmitt,2009年

您是否可以实际输入登录凭据,或者键盘和/或鼠标不可用?
2009年

我可以输入凭据,但是不会再继续了。CTRL + ALT + F1给了我一个终端,但我可以在那里登录
Colin Pickard

当从单独的磁盘装入/ usr,/ home和类似文件夹时,您可能会遇到麻烦,在这种情况下,绑定会有所帮助。使用mount --bind / proc / chrooted / proc mount --bind / mnt / usr /

Answers:


11

如果您可以将dpkg用作根用户,则可以运行 dpkg --configure -a

但是,您可能会发现该错误导致dist-upgrade崩溃,因此您可能需要:

dpkg --configure -a --abort-after=99999

7

尝试按CTRL-ALT-F1组合键,看看是否出现命令提示符。查看是否可以登录,然后尝试运行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文件夹备份到另一台设备。


我打算将dpkg --get-selections添加到我认为的备份脚本中。很有用。
科林·皮卡德

5
sudo apt-get update
sudo dpkg --configure -a
sudo apt-get update
sudo apt-get dist-upgrade

第一行刷新您正在下载的回购协议的当前级别

第二行重新配置处于“不良”状态的所有程序包

第三行位于其中,以防存储库在第二行的过程中“移至”新版本。

第四行应完成工作。


5

我能够从灾难性情况中恢复过来,在升级过程中断电后,Xubuntu无法启动。开机自检后约10秒钟,Xubuntu会因一系列错误而停止运行(尝试在grub中加载“恢复”选项也不起作用)。

因此,如果有人偶然发现此问题,我将从Ubuntu论坛中发布一些信息,这些信息可帮助我进入终端窗口,以便可以使用上面发布的命令Colin和Avery。

----------剪断----------剪断----------剪断----------剪断------ ----

ubuntuforums.org/showthread.php?t=157250

假设您的系统在升级后就崩溃了,否则您的新内核将无法启动。您无法使用apt-get解决问题,因为您甚至无法进入命令行。内核只会喷出错误并在启动时挂起。值得庆幸的是,有了现场CD,您可以修复系统并使其启动并运行。实时CD有2个选项:Knoppix或Ubuntu实时CD。由于Knoppix通常具有更好的硬件检测功能,因此将作为示例。

  1. 首先,从http://www.knoppix.org/下载iso 并将其刻录到磁盘。
  2. 将BIOS设置为从CD引导,弹出Knoppix磁盘,然后引导。
  3. 您的硬盘驱动器应在hdDE桌面上显示为hda1或sdb2或其他内容,具体取决于您的系统。
  4. 单击它以安装它,然后右键单击操作->更改为读写模式。它将弹出一个对话框。单击是。
  5. 现在,打开一个在Knoppix菜单中找到的根终端(面板上K旁边的那个)。输入:chroot / mnt / hda1或硬盘驱动器在桌面上显示的图标。

现在,您可以使用硬盘驱动器上的所有命令,包括apt-get。如果您收到以下错误消息:“ / dev / null:权限被拒绝”,请执行以下操作:“ sudo rm / dev / null”,它应该消失。现在,使用apt-get升级您的内核,udev或其他任何使您的系统混乱的东西。

----------剪断----------剪断----------剪断----------剪断------ ----

效果也很完美!我按照说明安装了硬盘驱动器,打开了一个终端窗口,输入“ sudo chroot / media / hda1”,最后可以访问硬盘了。然后,我可以使用此线程中先前发布的命令来重新启动升级过程。:)

奇怪的是,为什么Ubuntu Live / Installation CD没有内置“恢复控制台”来促进整个恢复过程。


在类似情况下,这也对我有用。SU上的此答案提供了有关如何从实时CD正确装入分区的重要说明。
zelanix '16

1

对我来说,另一个命令也可以在chroot环境中帮助所有程序包正确配置(在dpkg ,dist等之前运行):

Upstart作业无法在chroot中启动,因为upstart充当服务监督者,并且chroot中的进程无法与在chroot外部运行的upstart通信(错误:430224)。这将导致某些已转换为使用upstart作业而不是init脚本的软件包无法在chroot中升级。建议用户使用/ sbin / initctl指向/ bin / true来配置其chroot,并在chroot中运行以下命令:

码:

dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initct
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.