Назад | Перейти на главную страницу

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

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

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

Если это не удается, есть ли какой-либо хороший способ проверить диск и создать список установленного программного обеспечения и, желательно, даже настроек извне / из дома (например, / и т. Д.)?


Если мне придется начинать все с нуля, какие рекомендации по работе с лицом, ответственным за неожиданное отключение? :)


РЕДАКТИРОВАТЬ: Большое спасибо за все ответы, мне действительно нужно принять все ответы, поскольку мне нужно было использовать биты из каждого. Я смог полностью восстановить установку, используя что-то вроде этого:

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

Третья строка присутствует на тот случай, если репозиторий «переместится» на новую версию во время обработки второй строки.

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

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

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

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

ubuntuforums.org/showthread.php?t=157250

Допустим, ваша система просто расплавилась после обновления, или ваше новое ядро ​​не загружается. Вы не можете решить проблему с помощью apt-get, потому что вы не можете попасть даже в командную строку; ядро просто выдает ошибки и зависает при загрузке. К счастью, с живым компакт-диском вы можете восстановить свою систему и запустить ее. У вас есть 2 варианта для live 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: Permission denied», сделайте следующее: «sudo rm / dev / null», и она должна исчезнуть. Теперь используйте apt-get для обновления ядра, udev или чего-нибудь еще, что портит вашу систему.

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

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

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

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

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

Код:

dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initct