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

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

I have a backup of it and the /home data is all still OK on the drive so it's no emergancy, but a complete rebuild is still an annoying and time consuming process. Есть ли способ оправиться от этого? I have a 9.04 CD, I was debating trying installing over the top - is that a good idea?

Если это не удастся, есть ли какой-нибудь хороший способ проверки диска и создания списка установленного программного обеспечения, и, предпочтительно, даже расчетов извне / дома (например, /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

6 ответов

Решение

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

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

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

Попробуйте нажать 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 на другое устройство.

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

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

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

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

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

Мне удалось восстановиться после катастрофической ситуации, когда 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 отсутствует встроенная "консоль восстановления", чтобы упростить весь процесс восстановления.

Для меня также другая команда помогает в среде 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
      sudo apt-get update
sudo dpkg --configure -a
sudo apt-get update
sudo apt-get dist-upgrade

Запускайте их один за другим. Работало при обновлении с 23.04.2 по 23.10.

Другие вопросы по тегам