SO FÜHREN SIE EIN „UPDATE-GRUB“ INNERHALB VON CHROOT AUS AUS

SO FÜHREN SIE EIN „UPDATE-GRUB“ INNERHALB VON CHROOT AUS AUS

Ich verwende einen Dual-Boot von Windows 10 und Ubuntu 18.04. Ich habe vor Kurzem Windows 10 aktualisiert und kann seitdem Linux nicht mehr starten. Gelegentlich hat das Update das Booten der Linux-Partition gestört, aber ich konnte das immer über die Grub-Befehlszeile beheben. Dies scheint ein völlig anderes Problem zu sein.

Ich entschuldige mich, wenn dies ein Duplikat ist – bei allen verwandten Fragen, die ich gesehen habe, kann der Fragesteller im Allgemeinen das Wiederherstellungsmenü erreichen oder normal booten, aber nicht in den Wiederherstellungsmodus.

Ich kann den Bootvorgang erfolgreich von Grub aus starten, aber danach erreiche ich den Anmeldebildschirm für Ubuntu nicht mehr. Nachdem ich Grub (2.02) aufgerufen habe, navigiere ich entweder zu „Ubuntu“ oder „Erweiterte Optionen für Ubuntu“ und habe dort vier Optionen:

Ubuntu, with Linux  4.18.0-21-generic
Ubuntu, with Linux  4.18.0-21-generic (recovery mode)
Ubuntu, with Linux  4.18.0-20-generic
Ubuntu, with Linux  4.18.0-20-generic (recovery mode)

Wenn Sie einen der vier erfolgreich starten, wird Grub beendet und eine Kaskade von Bildschirmausgaben gestartet. Allerdings erreiche ich nie ein grafisches Anmeldefenster, eine Anmeldeaufforderung oder irgendetwas Interaktives. Ich werde hier die typischen letzten fünf Zeilen abtippen:

[   OK   ] Reached target Local Encrypted Volumes.
[   OK   ] Reached target Local File Systems (Pre).
[   OK   ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch
[   OK   ] Reached target Sound Card.
[   OK   ] Found device WDC_WDBNCE5000PNC SSD.

Und dann passiert nichts. Ich muss den Einschaltknopf sechs Sekunden lang gedrückt halten, um den Computer wieder zu starten. Hat jemand außer einer Neuinstallation eine Idee?

Wenn jemand frühere Zeilen wissen möchte, transkribiere ich sie gerne hier. Ich bin für jede Hilfe dankbar, die ich bekommen kann.

EDIT: Folgendes ist passiert, als ich dem Rat von @K9spud gefolgt bin. fsckEs kam sauber zurück, das ist also eine Erleichterung. Ich habe chrootdie Linux-Installation als Stammverzeichnis verwendet und festgestellt, dass /var/boot.log viel weiter fortgeschritten ist als ursprünglich aufgeführt. Eine Sache, die mir aufgefallen ist, war, dass das Gerät am Ende des Protokolls, als ich es gepostet habe, nicht gemountet werden konnte, wahrscheinlich weil ich es falsch eingerichtet habe /etc/fstab. Die letzte Nachricht im Protokoll ist

[  OK   ] Started Show Plymouth Boot Screen

Nach dem Entfernen der fehlerhaften Zeile aus /etc/fstab startet das System normal.

TL;DR: Eine falsche Konfiguration /etc/fstabverhindert, dass der Anmeldebildschirm angezeigt wird.

Antwort1

Diese Frage ist möglicherweise schwer zu beantworten. Die einfachste Antwort ist eine Neuinstallation, aber das ist ärgerlich, wenn Sie bereits viele Daten/Anpassungen in Ihre alte Installation investiert haben.

Wenn es mein Rechner wäre, würde ich Ubuntu im Live-Modus von meinem Ubuntu-USB-Installationsstick booten und anfangen, auf der Festplatte herumzustöbern, um herauszufinden, was schiefgelaufen ist, und zu versuchen, es zu reparieren.

Als Erstes sollten Sie ein Sicherungsimage von allem erstellen, da Sie bei Ihren ersten Reparaturversuchen möglicherweise alles noch schlimmer machen.

Als nächstes würde ich fsck auf der Linux-Partition ausführen, um sicherzustellen, dass die Partition nicht beschädigt wurde. Wenn fsck sauber zurückkommt, ist das großartig, denn alle Ihre Daten sind noch da und können bei Bedarf auf die eine oder andere Weise wiederhergestellt werden. Wenn fsck mit einer Reihe von Fehlern zurückkommt, würde ich sagen, dass die Installation kaputt ist, die Partition beschädigt ist und es sich nicht lohnt, sie zu retten, abgesehen von benutzerdefinierten Daten, die Sie möglicherweise vor einer Neuinstallation abrufen können.

Nachdem fsck erfolgreich war, würde ich wahrscheinlich die Linux-Partition mounten und „chroot“ verwenden, um innerhalb der Linux-Installation zu arbeiten, als ob ich von der Linux-Installation gebootet worden wäre. Sie müssen mit dem Mounten von dev, sys, proc usw. innerhalb der chroot-Umgebung herumspielen, dann können Sie „update-grub“ ausführen, um zu versuchen, Grub neu zu installieren. Das Ausführen von „update-grub“ könnte einige Fehler aufdecken, die erklären könnten, warum Sie nicht booten können.

Wenn „update-grub“ funktioniert, ohne etwas Wichtiges preiszugeben, können Sie vielleicht unter /var/log herumstöbern, um zu sehen, ob in den Protokolldateien Fehler angezeigt werden, die Aufschluss darüber geben könnten, warum das System nicht gestartet werden konnte.

Darüber hinaus bin ich nicht sicher, was ich sonst noch vorschlagen soll, ohne alle Fehlermeldungen selbst zu sehen und zu versuchen, zu beurteilen, was kaputt ist und was nicht.

Es ist sehr frustrierend, dass Windows Linux-Installationen so wenig Beachtung schenkt, dass es Linux manchmal beim Booten blockiert. Das bringt mich dazu, ein Dual-Boot-System mit Windows ganz zu vermeiden. Hoffentlich wird Microsoft sich verbessern und in Zukunft vorsichtiger sein, wenn es darum geht, Linux-Installationen zu vermasseln.

Antwort2

SO FÜHREN SIE EIN „UPDATE-GRUB“ INNERHALB VON CHROOT AUS AUS

  1. Booten Sie von Ihrem Ubuntu-USB-Stick im Linux Live-Modus. Stellen Sie sicher, dass Ihr BIOS den USB-Stick im richtigen Modus (UEFI vs. Legacy/MBR) für Ihr System bootet, sonst haben Sie große Probleme, update-grub zum Laufen zu bringen.

  2. Sobald Sie in Live-Linux gebootet haben, öffnen Sie ein Terminal und beginnen Sie mit der Arbeit mit diesen Befehlen:

mkdir linux

sudo mount /dev/sdXX linux

(Ersetzen Sie „/dev/sdXX“ durch die richtige Geräte-/Partitionsnummer für die Linux-Partition auf Ihrer Festplatte. Möglicherweise müssen Sie „gparted“ ausführen, um Ihre Partitionstabellen zu überprüfen und herauszufinden, was was ist.)

sudo chroot linux /bin/bash

mount -t devtmpfs udev /dev

mount -t proc proc /proc

mount -t sysfs sysfs /sys

update-grub

(einige Systeme benötigen möglicherweise einige zusätzliche „Mount“-Befehle für /boot und/oder /boot/efi – Hilfe zum Mounten dieser Befehle finden Sie in der Datei /etc/fstab Ihres Systems, falls erforderlich)

Wenn alles richtig funktioniert, sollte „update-grub“ etwa Folgendes anzeigen:

Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-48-generic
Found initrd image: /boot/initrd.img-4.15.0-48-generic
Adding boot menu entry for EFI firmware configuration
done

Bei mir hat „update-grub“ alles gereicht, was ich brauchte, um mein System wieder zum Booten zu bringen. Bei manchen Leuten muss jedoch möglicherweise auch „grub-install“ verwendet werden, wenn Grub vollständig aus dem MBR oder was auch immer UEFI verwendet, gelöscht wurde.

Sobald das alles ohne Fehler erledigt ist, müssen Sie vor dem Beenden alle zuvor gemounteten Sachen aus der Chroot-Umgebung aushängen. Andernfalls wird Ubuntu beim Herunterfahren Schwierigkeiten haben, die Linux-Partition sauber auszuhängen.

umount /sys

umount /proc

umount /dev

exit

sudo umount linux

sync

verwandte Informationen