Восстановление после выключения во время обновления дистрибутива Ubuntu

18

У меня есть компьютер, который был неожиданно выключен во время обновления дистрибутива (Ubuntu 8.10 -> 9.04). Теперь он не завершит загрузку - различные ошибки X, затем он перейдет на экран входа в систему, но не разрешит вход в систему.

У меня есть его резервная копия, и данные / home все еще в порядке на диске, так что это не аварийная ситуация, но полное восстановление все еще раздражает и отнимает много времени. Есть ли способ оправиться от этого? У меня есть компакт-диск 9.04, я пытался установить его поверх - это хорошая идея?

Если это не удастся, есть ли какой-нибудь хороший способ проверки диска и создания списка установленного программного обеспечения, и, предпочтительно, даже расчетов извне / дома (например, / 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 представляет собой крупную заготовку размером 2x4 или другую, пригодную для использования в качестве [...] ручных клюшек, автоматического оружия, огнеметов и тактических целей. у всех ядерщиков есть свои партизаны.
Дэвид Шмитт
Можете ли вы ввести свои учетные данные для входа или клавиатура и / или мышь недоступны?
Оддмунд
Я мог бы ввести учетные данные, но это не пойдет дальше. CTRL + ALT + F1, однако, дал мне терминал, и я смог войти туда
Колин Пикард
В этом случае может возникнуть проблема, когда / usr, / home и подобные папки монтируются с отдельных дисков, в этом случае помогает bind. использовать mount --bind / proc / chrooted / proc mount --bind / mnt / usr / chrooted / usr ...

Ответы:

11

Если вы можете добраться до места, где вы можете использовать dpkg от имени root, вы можете запустить dpkg --configure -a

Тем не менее, вы можете обнаружить, что он взрывается для расширенного dist-upgrade, поэтому вам может понадобиться:

dpkg --configure -a --abort-after=99999
Oli
источник
7

Попробуйте нажать CTRL-ALT-F1 и посмотреть, появляется ли командная строка. Посмотрите, можете ли вы войти в систему, затем попробуйте запустить sudo apt-get dist-upgrade . Это должно позволить вам завершить обновление. Вы можете получить ошибки, поэтому вам также может понадобиться использовать команду sudo dpkg --configure -a .


Чтобы получить список установленного программного обеспечения, вы можете выполнить команду dpkg --get-selections . Если вы сохраните вывод этой команды в файл, вы можете использовать команду cat selection | sudo dpkg --set-selections, а затем используйте команду sudo apt-get dselect-upgrade, чтобы фактически установить все пакеты.

Если вы пойдете по этому пути, вы, вероятно, должны сделать резервную копию ваших папок / etc и / home на другое устройство.

Zoredache
источник
Я собираюсь добавить dpkg --get-selections к моим сценариям резервного копирования, я думаю. Очень полезный.
Колин Пикард
5
sudo apt-get update
sudo dpkg --configure -a
sudo apt-get update
sudo apt-get dist-upgrade

1-я строка обновляет текущий уровень репо, против которого вы скачиваете

2-я строка переконфигурирует все пакеты, которые находятся в «плохом» состоянии

3-я строка находится на всякий случай, если хранилище «переместится» в новую версию во время процесса 2-й строки.

4-я строка должна закончить работу.

Эйвери Пэйн
источник
5

Мне удалось восстановиться после катастрофической ситуации, когда Xubuntu не загружался после отключения питания во время обновления. Примерно через 10 секунд после POST Xubuntu остановится с множеством ошибок (попытка загрузить опцию «recovery» в grub также не будет работать).

Поэтому, если кто-то наткнется на это, я публикую некоторую информацию с форумов Ubuntu, которая помогла мне добраться до окна терминала, чтобы я мог использовать команды Colin и Avery, опубликованные выше.

---------- snip ---------- snip ---------- snip ---------- snip ------ ----

ubuntuforums.org/showthread.php?t=157250

Допустим, ваша система просто перестала работать после обновления, иначе ваше новое ядро ​​не загрузится. Вы не можете решить проблему с помощью apt-get, потому что вы даже не можете добраться до командной строки; ядро просто выдает ошибки и зависает при загрузке. К счастью, с помощью live cd вы можете восстановить свою систему и запустить ее в работу. У вас есть 2 варианта для живого CD: Knoppix или Ubuntu Live CD. Так как Knoppix обычно имеет лучшее обнаружение оборудования, это будет использоваться в качестве примера.

  1. Сначала загрузите iso с http://www.knoppix.org/ и запишите его на диск.
  2. Настройте BIOS на загрузку с компакт-диска, вставьте диск Knoppix и загрузитесь.
  3. Ваш жесткий диск должен отображаться на рабочем столе KDE как hda1 или sdb2 или что-то еще, в зависимости от вашей системы.
  4. Нажмите на него, чтобы смонтировать его, затем щелкните правой кнопкой мыши, действия -> перейдите в режим чтения-записи. Это откроет диалог; нажмите да.
  5. Теперь откройте корневой терминал, найденный в меню Knoppix (рядом с K на панели). Введите: chroot / mnt / hda1 или любой другой значок вашего жесткого диска на рабочем столе.

Теперь вы можете использовать все команды на жестком диске, включая apt-get. Если вы когда-нибудь получите эту ошибку: «/ dev / null: разрешение отклонено», то сделайте это: «sudo rm / dev / null», и она должна исчезнуть. Теперь используйте apt-get для обновления вашего ядра, udev или чего-либо еще, что портит вашу систему.

---------- snip ---------- snip ---------- snip ---------- snip ------ ----

Это тоже отлично сработало! Я установил свой жесткий диск в соответствии с инструкциями, открыл окно терминала, ввел «sudo chroot / media / hda1» и, наконец, получил доступ к своему жесткому диску. Затем я смог использовать команды, опубликованные ранее в этой теме, чтобы перезапустить процесс обновления. :)

Неудивительно, что на компакт-диске Ubuntu Live / Installation отсутствует встроенная «консоль восстановления», чтобы упростить весь процесс восстановления.


источник
Это сработало для меня в аналогичной ситуации. Этот ответ на SU дает отличные инструкции о том, как правильно смонтировать раздел (ы) с live CD.
Зеланикс
1

Для меня также еще одна команда помогает в среде chroot для правильной настройки всех пакетов (выполните это раньше и dpkg ,distт. Д.):

Задания Upstart не могут быть запущены в chroot, потому что upstart действует как супервизор службы, и процессы внутри chroot не могут обмениваться данными с upstart, работающим вне chroot (Ошибка: 430224). Это приведет к тому, что некоторые пакеты, которые были преобразованы для использования заданий upstart вместо сценариев инициализации, не смогут выполнить обновление в chroot. Пользователям рекомендуется настраивать свои chroot с помощью / sbin / initctl, указывающего на / bin / true, с помощью следующих команд, запускаемых в chroot:

Код:

dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initct
Крис Сушински
источник