Wiederherstellung nach dem Herunterfahren während des Upgrades der Ubuntu-Distribution


18

Ich habe einen Computer, der während eines Distributions-Upgrades unerwartet heruntergefahren wurde (Ubuntu 8.10 -> 9.04). Der Startvorgang wird jetzt nicht beendet - verschiedene X-Fehler, dann wird der Anmeldebildschirm angezeigt, Anmeldungen werden jedoch nicht zugelassen.

Ich habe eine Sicherungskopie davon und die / home-Daten sind auf dem Laufwerk noch in Ordnung, daher ist dies kein Notfall, aber eine vollständige Wiederherstellung ist immer noch ein lästiger und zeitaufwändiger Vorgang. Gibt es eine Möglichkeit, sich davon zu erholen? Ich habe eine 9.04-CD, ich habe darüber diskutiert, ob ich versuchen soll, sie über das Internet zu installieren. Ist das eine gute Idee?

Wenn dies nicht der Fall ist, gibt es eine gute Möglichkeit, das Laufwerk zu überprüfen und eine Liste der installierten Software zu erstellen, und vorzugsweise sogar die Einstellungen von außerhalb / zu Hause (wie / etc)?


Wenn ich noch einmal von vorne anfangen muss, gibt es Empfehlungen für den Umgang mit der Person, die für das unerwartete Herunterfahren verantwortlich ist? :)


EDIT: Vielen Dank für alle Antworten, ich muss wirklich alle Antworten akzeptieren, da ich Bits von jedem verwenden musste. Ich konnte die Installation folgendermaßen vollständig reparieren:

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

1
Verwenden Sie einen LART ( catb.org/jargon/html/L/LART.html ): "Der LART-Klassiker ist ein 2x4 oder ein anderes großes Stück Holz, das als [...] Knaufbeeren, automatische Waffen, Flammenwerfer und taktische Waffen verwendet werden kann Atomwaffen haben alle ihre Partisanen. "
David Schmitt

Können Sie tatsächlich Ihre Anmeldeinformationen eingeben, oder sind Tastatur und / oder Maus nicht verfügbar?
Oddmund

Ich könnte die Anmeldeinformationen eingeben, aber es würde nicht weiter gehen. STRG + ALT + F1 gab mir jedoch ein Terminal und ich konnte mich dort anmelden
Colin Pickard

Es kann zu Problemen kommen, wenn / usr, / home und ähnliche Ordner von separaten Datenträgern bereitgestellt werden. In dieser Situation hilft bind. Verwendung mount --bind / proc / chroot / proc mount --bind / mnt / usr / chroot / usr ...

Antworten:


11

Wenn Sie an einen Ort gelangen, an dem Sie dpkg als root verwenden können, können Sie ausführen dpkg --configure -a

Es kann jedoch vorkommen, dass das Problem bei einem verteilten Upgrade explodiert. Daher benötigen Sie möglicherweise Folgendes:

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

7

Versuchen Sie, STRG-ALT-F1 zu drücken, und prüfen Sie, ob eine Eingabeaufforderung angezeigt wird. Versuchen Sie, sudo apt-get dist-upgrade auszuführen, um sich anzumelden . Damit sollten Sie auch das Upgrade abschließen können. Möglicherweise werden Fehler angezeigt, daher müssen Sie möglicherweise auch sudo dpkg --configure -a verwenden .


Um eine Liste der installierten Software zu erhalten, können Sie den Befehl dpkg --get-selections ausführen . Wenn Sie die Ausgabe dieses Befehls in einer Datei speichern, können Sie den Befehl cat selections | verwenden sudo dpkg --set-selections und dann den Befehl sudo apt-get dselect-upgrade verwenden, um tatsächlich alle Pakete zu installieren.

Wenn Sie diesen Weg gehen, sollten Sie wahrscheinlich Ihre Ordner / etc und / home auf einem anderen Gerät sichern.


Ich werde dpkg --get-selections zu meinen Backup-Skripten hinzufügen, denke ich. Sehr hilfreich.
Colin Pickard

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

Die erste Zeile aktualisiert das aktuelle Level des Repos, gegen das Sie herunterladen

Die 2. Zeile konfiguriert alle Pakete neu, die sich in einem "schlechten" Zustand befinden

Die dritte Zeile ist nur für den Fall vorhanden, dass das Repository während des Vorgangs der zweiten Zeile auf die neue Version "verschoben" wird.

Die vierte Zeile sollte den Job beenden.


5

Ich konnte mich von einer katastrophalen Situation erholen, in der Xubuntu nach einem Stromausfall während eines Upgrades nicht mehr gestartet werden konnte. Ungefähr 10 Sekunden nach dem POST wurde Xubuntu mit einer Vielzahl von Fehlern angehalten (der Versuch, die Option "recovery" in grub zu laden, würde auch nicht funktionieren).

Wenn also jemand darauf stößt, veröffentliche ich einige Informationen aus den Ubuntu-Foren, die mir geholfen haben, zu einem Terminalfenster zu gelangen, damit ich die oben angegebenen Befehle Colin und Avery verwenden kann.

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

ubuntuforums.org/showthread.php?t=157250

Angenommen, Ihr System ist nach einem Upgrade eingeschmolzen, oder Ihr neuer Kernel bootet nicht. Sie können das Problem mit apt-get nicht beheben, da Sie nicht einmal zu einer Befehlszeile gelangen können. Der Kernel gibt nur Fehler aus und bleibt beim Booten hängen. Zum Glück können Sie mit einer Live-CD Ihr System reparieren und in Betrieb nehmen. Sie haben 2 Möglichkeiten für die Live-CD: Knoppix oder die Ubuntu-Live-CD. Da Knoppix im Allgemeinen eine bessere Hardwareerkennung aufweist, wird dies als Beispiel verwendet.

  1. Laden Sie zuerst die ISO-Datei von http://www.knoppix.org/ herunter und brennen Sie sie auf eine Festplatte.
  2. Stellen Sie Ihr BIOS so ein, dass es von der CD bootet, die Knoppix-Diskette einlegt und bootet.
  3. Ihre Festplatte sollte auf dem KDE-Desktop je nach System als hda1 oder sdb2 oder so angezeigt werden.
  4. Klicken Sie darauf, um es zu laden, und klicken Sie dann mit der rechten Maustaste auf Aktionen -> und wechseln Sie in den Lese- / Schreibmodus. Es öffnet sich ein Dialog. Klicken Sie auf Ja.
  5. Öffnen Sie nun ein Root-Terminal, das sich im Knoppix-Menü befindet (das neben dem K auf dem Bedienfeld). Geben Sie Folgendes ein: chroot / mnt / hda1 oder was auch immer das Symbol für Ihre Festplatte auf dem Desktop anzeigt.

Sie können jetzt alle Befehle auf der Festplatte verwenden, einschließlich apt-get. Wenn Sie jemals den folgenden Fehler erhalten: "/ dev / null: Berechtigung verweigert", dann tun Sie dies: "sudo rm / dev / null" und es sollte verschwinden. Verwenden Sie jetzt apt-get, um Ihren Kernel, udev oder irgendetwas anderes zu aktualisieren, das Ihr System durcheinander bringt.

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

Es hat auch perfekt geklappt! Ich habe meine Festplatte gemäß den Anweisungen gemountet, ein Terminalfenster geöffnet, "sudo chroot / media / hda1" eingegeben und hatte schließlich Zugriff auf meine Festplatte. Ich konnte dann die zuvor in diesem Thread veröffentlichten Befehle verwenden, um den Aktualisierungsprozess neu zu starten. :)

Es ist kein Wunder, dass auf der Ubuntu Live / Installation-CD keine "Wiederherstellungskonsole" eingebaut ist, um den gesamten Wiederherstellungsprozess zu vereinfachen.


Das hat bei mir in einer ähnlichen Situation geklappt. Diese Antwort auf SU enthält nützliche Anweisungen zum korrekten Mounten der Partition (en) von der Live-CD.
Zelanix

1

Für mich hilft auch ein anderer Befehl in der chroot-Umgebung, um alle Pakete richtig zu konfigurieren (dies vorher ausführen dpkg ,distetc):

Upstart-Jobs können nicht in einer Chroot gestartet werden, da Upstart als Service-Supervisor fungiert und Prozesse innerhalb der Chroot nicht mit dem außerhalb der Chroot ausgeführten Upstart kommunizieren können (Bug: 430224). Dies führt dazu, dass einige Pakete, die so konvertiert wurden, dass sie Startaufträge anstelle von Init-Skripten verwenden, nicht innerhalb einer Chroot aktualisiert werden können. Benutzern wird empfohlen, ihre Chroots so zu konfigurieren, dass / sbin / initctl auf / bin / true zeigt. Dabei werden die folgenden Befehle in der Chroot ausgeführt:

Code:

dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initct
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.