versehentlich gelöscht / Boot-Ordner und neu gestartet

16

Ich habe versehentlich den Ordner / boot aus meinem Dateisystem gelöscht, neu gestartet und alles, was ich jetzt bekomme, ist Folgendes:

error: file '/boot/grub/i368-pc/linux.mod' not found.

grub rescue>
Imad Nouari
quelle
1
Möglicherweise habe ich ein
Cthulhu Tentacles
In diesem Fall wurde der Ordner / boot vollständig gelöscht. nicht nur ein paar dateien davon, danke.
Imad Nouari
Ich glaube nicht, dass eine der Antworten auf die andere Frage ausreicht, um dies zu beheben.
Graeme
Fair genug, habe nicht wirklich alle Antworten gelesen. Ich würde immer vorschlagen, das Ganze neu aufzubauen, anstatt zu versuchen, das zu finden, was fehlte. Dauert die halbe Zeit.
Cthulhu Tentacles
7
Der weitaus größere Fehler im Vergleich zum Löschen /bootbesteht natürlich darin, das System neu zu starten, bevor dies behoben wurde.
Anthon

Antworten:

36

Hoppla!

Hier ist was zu tun:

  1. Starten Sie eine Live-Distribution. Dies kann Ihre Ubuntu-Installations-CD oder eine andere wie Knoppix sein .

  2. Suchen Sie das Laufwerk / die Partition, auf dem / der Sie Ihr Root-Dateisystem installiert haben. Dazu können Sie ein Terminal öffnen und entweder sudo parted -loder ausführen sudo fdisk -l. Wenn Sie es nicht wissen, bearbeiten Sie Ihre Frage und fügen Sie die Ausgabe hinzu.

  3. Angenommen, Ihre Root-Partition, die Sie im letzten Schritt gefunden haben, ist /dev/sdxy( xsollte ein anderer Buchstabe und yeine Zahl sein), dann führen Sie die folgenden Befehle in einem Terminal aus:

    mkdir mnt
    sudo mount /dev/sdxy mnt
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    sudo chroot mnt
    
  4. Sie befinden sich jetzt in einer chrootUmgebung, dh, die Ausführung von Befehlen entspricht der Ausführung auf Ihrem installierten System. Als Erstes müssen Sie GRUB2 erneut auf dem Gerät installieren, damit die richtigen Dateien in den /bootOrdner kopiert werden . Führen Sie dazu Folgendes mit dem Laufwerk aus, auf dem sich Ihre Root-Partition befindet (dh ohne /dev/sdxydie Nummer ( y)):

    grub-install /dev/sdx
    
  5. Sie möchten nun herausfinden, welche Pakete Sie installiert haben und welche Dateien sich im Startverzeichnis befinden, und diese neu installieren. Dies ersetzt unter anderem die gelöschten Kernel-Images. Der Befehl zum Finden der Pakete lautet:

    dpkg -S /boot
    

    Und um sie neu zu installieren:

    apt-get --reinstall install ...
    

    Wo ...wird mit den Namen der Pakete aus dem ersten Befehl ersetzt. Fügen Sie keine Kommas ein, sondern trennen Sie die Paketnamen durch Leerzeichen.

    Für diesen Schritt ist wahrscheinlich ein Internetzugang erforderlich (es sei denn, die Pakete befinden sich bereits im Cache). Stellen Sie daher sicher, dass Sie verbunden sind, wenn ein Problem auftritt.

  6. Da Sie Ihre Kernel gelöscht und neu installiert haben, sollte dies automatisch ein GRUB2-Update ausgelöst haben. Aber falls nicht, können Sie Folgendes ausführen:

    update-grub
    
  7. Neustart und die Dinge sollten jetzt behoben sein. Ein Problem, das ich das letzte Mal hatte, als ich etwas Ähnliches tat, war, dass Windows-Installationen nicht gefunden wurden, update-grubwenn sie chrootaufgrund eines Fehlers in ausgeführt wurden os-prober. Wenn dies ein Problem ist, führen Sie sudo update-grubes im reparierten System erneut aus.

Graeme
quelle
@Olivier, danke ich hatte es ursprünglich /dev/sdaxüberall dann geändert /dev/sdxy.
Graeme
Vielen Dank für die tolle Info - es hat mich gerettet, mit einem Zusatz. Da ich über ein Software-RAID verfüge , musste ich auch die folgenden Anweisungen befolgen: help.ubuntu.com/community/Grub2/Installieren unter Verwendung der Chroot-Methode, um mdadm zu starten, die RAID-Mitglieder zusammenzustellen und die Bereitstellungen entsprechend vorzunehmen. Installieren Sie dann nach chroot die Pakete neu, wie in dieser Antwort beschrieben, und alles ist in Ordnung!
Bitfiddler