Wie kann ich die ursprüngliche Grub-Konfiguration wiederherstellen, nachdem ich Grub Customizer in Ubuntu 22.04 deinstalliert habe?

Wie kann ich die ursprüngliche Grub-Konfiguration wiederherstellen, nachdem ich Grub Customizer in Ubuntu 22.04 deinstalliert habe?

Also machte ich den Fehler, Grub Customizer zu verwenden, und dann einen weiteren, als ich versuchte, die vorherige Konfiguration wiederherzustellen, indem ich den Anweisungen in folgte /etc/grub.d/backup/RESTORE_INSTRUCTIONS, was zur Beschädigung meiner Grub-Konfigurationsdateien führte.

Wenn ich jetzt versuche zu rennen, sudo update-grupbekomme ich

Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Script `/boot/grub/grub.cfg.new' contains no commands and will do nothing
Syntax errors are detected in generated GRUB config file.
Ensure that there are no errors in /etc/default/grub
and /etc/grub.d/* files or please file a bug report with
/boot/grub/grub.cfg.new file attached.

Das Ergebnis grub.cfg.newist leer (es enthält nur den anfänglichen Kommentar zu seiner Generierung).

Ich habe versucht, Grub neu zu installieren, gemäßdiese Antwortvon

sudo apt-get purge grub-pc grub-common

aber es funktioniert nicht mehr. Zuerst aptbeschwerte er sich über nicht erfüllte Abhängigkeiten und als ich sie grub2-common grub-pc-binzur Liste der zu entfernenden Abhängigkeiten hinzufügte, wurde mir gesagt, dass diese stattdessen installiert werden müssen.

... grub-common:i386 grub-efi-amd64 grub2-common:i386 ...

Nach einigem Zögern habe ich es akzeptiert und die Pakete installieren lassen, mit der Absicht, sie danach wieder zu ersetzen, aber während der Installation bin ich wieder auf dieses Problem gestoßen

Script `/boot/grub/grub.cfg.new' contains no commands and will do nothing
...
dpkg: error processing package grub-pc (--configure):
 installed grub-pc package post-installation script subprocess returned error exit status 1

Offensichtlich update-groupist dies jetzt Teil des Post-Installationsskripts, und wenn es fehlschlägt, schlägt die Installation des Pakets fehl. Jetzt bin ich also in einem Zustand, in dem die Abhängigkeiten in beide Richtungen unterbrochen sind und keine der Grub-Versionen richtig installiert ist und nicht repariert werden kann.

Die Konfigurationsdateien von Grub ( /etc/default/grubund /etc/grub.d/*) wurden beim Bereinigen nie entfernt und überschrieben. Und wenn ich sie manuell lösche, werden sie nie wieder installiert.

Kann ich jetzt irgendetwas tun, um meine Betriebssysteminstallation zu retten?

Antwort1

apt purgeist für diese Art von Situation fast immer die falsche Lösung. Auf diese Weise werden wahrscheinlich wichtige Dinge entfernt, und wenn Sie genug Dinge entfernen, geraten Sie in eine Situation, die eine Neuinstallation erfordert. Das Entfernen von Paketen hilft nur dann, wenn sie andere Pakete ersetzt haben, die Sie neu installieren möchten.

Stattdessen empfehle ich, dpkg -Vbeschädigte Dateien und Berechtigungen zu finden und apt install --reinstallbeschädigte Pakete erneut zu installieren. Dadurch werden beschädigte Kerndateien ersetzt, Konfigurationsdateien bleiben jedoch möglicherweise beschädigt. Aber es ist ein Anfang.

Wenn Sie beschädigte Konfigurationsdateien finden, können Sie versuchen, sie zu reparieren oder umzubenennen und dpkg --reconfiguremit dem entsprechenden Paket zu versuchen, die Konfigurationsdateien neu zu erstellen. dpkg --configureDies kann hilfreich sein, wenn die Konfigurationen völlig durcheinander geraten oder gelöscht sind.

Eine andere Möglichkeit ist, dass esextraDateien in den Konfigurationsverzeichnissen, die Ihre Konfiguration beschädigt haben. Auch hier wird apt purge diese nicht entfernen und nichts beheben. Das Auffinden dieser zusätzlichen Dateien muss durch Ausschlussverfahren erfolgen, ist aber nicht unmöglich.

Antwort2

Das Problem waren die Berechtigungen, nicht fehlende/beschädigte Dateien oder eine falsche Syntax, sondern falsche Berechtigungen. Die von Grub Customizer erstellten Sicherungsdateien /etc/grub.d/backup/etc_grub_dhaben kein Ausführungsflag. Deshalb wurde eine leere grub.cfg generiert. Und ich konnte sie nicht sehen, weil die Fehlermeldung update-grubirreführend ist.

Es reicht also nicht aus, einfach nachzufolgen RESTORE_INSTRUCTIONSund /etc/grub.d/backup/nach zurückzukopieren /etc/grub.d/backup/etc_grub_d. /etc/grub.dSie müssen auch

sudo chmod +x 0* 1* 2* 3* 4*

Ich denke aber auch, dass dies den Paketbetreuern als Problem gemeldet werden sollte. Es ist nicht in Ordnung, dass für die erfolgreiche Installation eines Pakets die Ausführung eines Skripts erforderlich ist, das von einer zerstörbaren Benutzerkonfiguration abhängt. Und es ist nicht in Ordnung, dass der Versuch, dieses Paket vorübergehend zu deinstallieren und neu zu installieren, zur Installation eines i386-Subsystems führt.

Ende der Tirade, Danke an alle, die geholfen haben.

verwandte Informationen