Odzyskiwanie po wyłączeniu podczas aktualizacji dystrybucji Ubuntu

18

Mam komputer, który został nieoczekiwanie zamknięty podczas aktualizacji dystrybucji (Ubuntu 8.10 -> 9.04). Teraz nie kończy się ładowanie - różne błędy X, następnie przechodzi do ekranu logowania, ale nie pozwala na logowanie.

Mam kopię zapasową, a dane / home są nadal w porządku na dysku, więc nie jest to kwestia nagła, ale kompletna przebudowa jest wciąż irytującym i czasochłonnym procesem. Czy jest na to jakiś sposób? Mam dysk CD z 9.04, zastanawiałem się nad próbą instalacji na górze - czy to dobry pomysł?

W przeciwnym razie, czy jest jakiś dobry sposób na sprawdzenie napędu i wygenerowanie listy zainstalowanego oprogramowania, a najlepiej nawet ustawień z zewnątrz / domu (jak / etc)?


Jeśli muszę zacząć od nowa, jakieś zalecenia dotyczące postępowania z osobą odpowiedzialną za nieoczekiwane zamknięcie? :)


EDYCJA: Dziękuję bardzo za wszystkie odpowiedzi, naprawdę muszę zaakceptować wszystkie odpowiedzi, ponieważ potrzebowałem użyć bitów z każdej z nich. Byłem w stanie w pełni naprawić instalację, używając czegoś takiego:

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
Colin Pickard
źródło
1
Skorzystaj z LART ( catb.org/jargon/html/L/LART.html ): „LART classic to kęs drewna 2x4 lub inny duży, nadający się do [...] klubowych gałek, broni automatycznej, miotaczy ognia i taktycznych wszyscy nuklearni mają swoich stronników. ”
David Schmitt
Czy faktycznie możesz wpisać swoje dane logowania, czy klawiatura i / lub mysz są niedostępne?
Oddmund
Mógłbym wpisać poświadczenia, ale nie posunęłyby się one dalej. CTRL + ALT + F1 dał mi terminal, ale mogłem się tam zalogować
Colin Pickard
Możesz napotkać problemy, gdy / usr, / home i podobne foldery są montowane z oddzielnych dysków, w takiej sytuacji bind pomaga. użyj mount --bind / proc / chrooted / proc mount --bind / mnt / usr / chrooted / usr ...

Odpowiedzi:

11

Jeśli możesz dostać się do miejsca, w którym możesz użyć dpkg jako root, możesz uruchomić dpkg --configure -a

Może się jednak okazać, że eksploduje, powodując błędne uaktualnienie, więc możesz potrzebować:

dpkg --configure -a --abort-after=99999
Oli
źródło
7

Spróbuj nacisnąć CTRL-ALT-F1 i sprawdź, czy pojawi się wiersz polecenia. Sprawdź, czy możesz się zalogować, a następnie spróbuj uruchomić sudo apt-get dist-upgrade . To powinno pozwolić ci również dokończyć aktualizację. Mogą pojawić się błędy, więc może być także konieczne użycie sudo dpkg --configure -a .


Aby uzyskać listę zainstalowanego oprogramowania, możesz uruchomić polecenie dpkg --get-selections . Jeśli zapiszesz dane wyjściowe tego polecenia do pliku, możesz użyć polecenia cat selections sudo dpkg --set-selections, a następnie użyj polecenia sudo apt-get dselect-upgrade, aby faktycznie zainstalować wszystkie pakiety.

Jeśli pójdziesz tą drogą, prawdopodobnie powinieneś wykonać kopię zapasową folderów / etc i / home na innym urządzeniu.

Zoredache
źródło
Myślę, że dodam dpkg --get-selekcje do moich skryptów tworzenia kopii zapasowych. Bardzo przydatne.
Colin Pickard
5
sudo apt-get update
sudo dpkg --configure -a
sudo apt-get update
sudo apt-get dist-upgrade

Pierwszy wiersz odświeża bieżący poziom repozytorium, z którego pobierasz

Druga linia rekonfiguruje wszystkie pakiety, które są w „złym” stanie

Trzeci wiersz jest na wypadek, gdyby repozytorium „przeniosło się” do nowej wersji podczas procesu drugiego wiersza.

Czwarta linia powinna zakończyć pracę.

Avery Payne
źródło
5

Byłem w stanie wyjść z katastrofalnej sytuacji, w której Xubuntu nie uruchamiał się po awarii zasilania podczas aktualizacji. Około 10 sekund po POST Xubuntu zatrzymałby się z mnóstwem błędów (próba załadowania opcji „odzyskiwania” w grub również by nie zadziałała).

Więc jeśli ktoś się na to natknie, zamieszczam informacje z forów Ubuntu, które pomogły mi dostać się do okna terminala, dzięki czemu mogłem użyć poleceń Colin i Avery opublikowanych powyżej.

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

ubuntuforums.org/showthread.php?t=157250

Powiedzmy, że twój system po prostu się stopił po aktualizacji, albo twoje nowe jądro się nie uruchomi. Nie możesz rozwiązać problemu z apt-get, ponieważ nie możesz nawet dostać się do linii poleceń; jądro po prostu wyrzuca błędy i zawiesza się podczas uruchamiania. Na szczęście dzięki płycie CD na żywo możesz naprawić system i uruchomić go. Masz dwie opcje dla live cd: Knoppix lub Ubuntu live cd. Ponieważ Knoppix ma ogólnie lepsze wykrywanie sprzętu, zostanie to wykorzystane jako przykład.

  1. Najpierw pobierz plik iso ze strony http://www.knoppix.org/ i wypal go na dysku.
  2. Przygotuj system BIOS do uruchamiania z dysku CD, włóż dysk Knoppix i uruchom system.
  3. Twój dysk twardy powinien wyświetlać się na pulpicie KDE jako hda1 lub sdb2 lub coś w zależności od systemu.
  4. Kliknij go, aby go zamontować, a następnie kliknij prawym przyciskiem myszy, akcje -> przejdź do trybu odczytu i zapisu. Otworzy się okno dialogowe; kliknij tak.
  5. Teraz otwórz terminal główny, znajdujący się w menu Knoppix (ten obok K na panelu). Wpisz: chroot / mnt / hda1 lub dowolną ikonę dysku twardego na pulpicie.

Możesz teraz używać wszystkich poleceń na dysku twardym, w tym apt-get. Jeśli kiedykolwiek pojawi się ten błąd: „/ dev / null: Odmowa uprawnień”, zrób to: „sudo rm / dev / null” i powinno zniknąć. Teraz użyj apt-get, aby zaktualizować jądro, udev lub cokolwiek innego, co psuje system.

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

To też wyszło idealnie! Zamontowałem dysk twardy zgodnie z instrukcją, otworzyłem okno terminala, wpisałem „sudo chroot / media / hda1” i wreszcie miałem dostęp do mojego dysku twardego. Byłem wtedy w stanie użyć poleceń opublikowanych wcześniej w tym wątku, aby ponownie uruchomić proces aktualizacji. :)

Nic dziwnego, że płyta CD z systemem Ubuntu Live / Installation nie ma wbudowanej „konsoli odzyskiwania” ułatwiającej cały proces odzyskiwania.


źródło
To działało dla mnie w podobnej sytuacji. Ta odpowiedź na SU daje świetne instrukcje, jak poprawnie zamontować partycje z Live CD.
zelanix
1

Dla mnie również inne polecenia pomagają w środowisku chroot, aby wszystkie pakiety poprawnie się konfigurowały (uruchom to przed dpkg ,distetc):

Zadań upstart nie można uruchomić w chroot, ponieważ upstart działa jako nadzorca usługi, a procesy w chroot nie są w stanie komunikować się z upstart działającym poza chroot (Bug: 430224). Spowoduje to, że niektóre pakiety, które zostały przekonwertowane, aby używały zadań upstart zamiast skryptów inicjujących, nie będą mogły zaktualizować się w chroot. Użytkownikom zaleca się skonfigurowanie chrootów za pomocą / sbin / initctl wskazującego na / bin / true, za pomocą następujących poleceń uruchamianych w chroot:

Kod:

dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initct
Chris Suszyński
źródło