У меня есть компьютер, который неожиданно выключился во время обновления дистрибутива (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 обычно лучше определяет оборудование, это будет использоваться в качестве примера.
Теперь вы можете использовать все команды на жестком диске, включая 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