Восстановление после выключения во время обновления дистрибутива 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 обычно имеет лучшее обнаружение оборудования, это будет использоваться в качестве примера.
- Сначала загрузите iso с http://www.knoppix.org/ и запишите его на диск.
- Настройте BIOS на загрузку с компакт-диска, вставьте диск Knoppix и загрузитесь.
- Ваш жесткий диск должен отображаться на рабочем столе KDE как hda1 или sdb2 или что-то еще, в зависимости от вашей системы.
- Нажмите на него, чтобы смонтировать его, затем щелкните правой кнопкой мыши, действия -> перейдите в режим чтения-записи. Это откроет диалог; нажмите да.
- Теперь откройте корневой терминал, найденный в меню 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.