Wie kann ich einen verlorenen MBR / Boot-Sektor wiederherstellen?

3929
Gabriele Cirulli

Ich hatte ein VDI (VirtualBox Virtual Disk Image) mit Ubuntu 11.10 (64 Bit, glaube ich) darauf installiert. Beim Ausführen einer GParted-Live-CD auf meiner virtuellen Maschine, um die Partitionstabelle einer anderen Festplatte zu löschen, entfernte ich letztendlich versehentlich die Partitionstabelle meiner Ubuntu-VDI anstelle der anderen Festplatten (ich weiß, es war dumm von mir, nicht zu sein 100% sicher, auf welcher Diskette ich gearbeitet habe, bevor ich fortfuhr, aber ich hatte es schon so oft gemacht, dass ich gar nicht daran dachte, nachzusehen).

Nachdem ich mich orientiert hatte, versuchte ich, einen Weg zu finden, um mich von den Schäden zu erholen. Ich konnte meine /dev/sda1Partition und die Swap-Partition (obwohl sie sich jetzt von der erweiterten Partition befand) mit TestDisk wiederherstellen .

Das Problem ist, dass ich jetzt, wenn ich in die VDI starte, nur einen schwarzen Bildschirm ohne Aufforderungen oder Lebenszeichen bekomme.

Ich habe versucht, den MBR von TestDisk auf der Festplatte zu installieren. Wenn ich nun die VM ausführte, wurde die MBR-Eingabeaufforderung von TestDisk angezeigt. Als ich ihm sagte, ich solle in meine Ubuntu-Partition booten, zeigte er diesen schwarzen Bildschirm an.

Gibt es eine Möglichkeit, diese Situation zu überwinden? Ich denke, das Problem liegt möglicherweise im Boot-Sektor der Partition (und jetzt muss ich auch GRUB oder etwas über den MBR neu installieren).


BEARBEITEN: Hier sind einige zusätzliche Informationen.

fdisk :

user@debian:~$ sudo fdisk -l /dev/sda  Disk /dev/sda: 75.0 GB, 75019321344 bytes 255 heads, 63 sectors/track, 9120 cylinders, total 146522112 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/Physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000e56c7  Device Boot Start End Blocks Id System /dev/sda1 * 2048 129746943 64872448 83 Linux /dev/sda2 129746944 146518015 8385536 5 Extended /dev/sda5 129748992 146518015 8384512 82 Linux swap / Solaris 

Ich bin mir da nicht ganz sicher (und bitte entschuldigen Sie meine Unwissenheit, wenn ich falsch liege), aber ich denke, es könnte eine Anomalie sein, die /dev/sda1beginnt 2048. Sollte es nicht bei anfangen 0?

2
Der MBR beginnt bei 0, daher muss sda1 später beginnen. Verwenden Sie `hexdump -C / dev / sda | more` um zu sehen, was zwischen MBR und Sda1 ist. ott-- vor 11 Jahren 0
Ich kann nicht viel davon unterscheiden, wenn ich es so sehe, aber ich kann sehen, dass es eine Lücke (gefüllt mit `NOPs) zwischen` 0x40` (enthalten) und `0x70` (nicht enthalten) gibt, und eine weitere zwischen` 0x200` und `0x600`. [Hier ist ein Screenshot des Dumps] (http://gabrielecirulli.com/p/20120529-221730.png) Gabriele Cirulli vor 11 Jahren 0

1 Antwort auf die Frage

3
Gabriele Cirulli

Ich habe eine Lösung für dieses Problem gefunden. Hier sind die Schritte, die ich zum Nachschlagen unternommen habe und in der Hoffnung, dass sie denen helfen können, die das gleiche Problem haben.

  • Ich habe eine Live-CD-Version von Ubuntu 11.10 heruntergeladen (stellen Sie sicher, dass Sie die amd64 Live-CD herunterladen, wenn Sie ein 64-Bit-System haben) .
  • Ich bootete in die Live-CD, bat, Ubuntu auszuprobieren, und öffnete ein neues Terminalfenster.
  • Ich folgte dem hier veröffentlichten Handbuch und führte folgende Befehle aus:
    • sudo mount /dev/sda1 /mnt
    • sudo mount --bind /dev /mnt/dev
    • sudo mount --bind /proc /mnt/proc
    • sudo mount --bind /etc /mnt/etc
    • sudo mount --bind /sys /mnt/sys
      (Einige davon sind möglicherweise redundant, aber ich habe festgestellt, dass einige Programme einige Fehler ausgeben würden, wenn sie nicht ausgeführt würden.)
    • sudo chroot /mnt
  • Als ich in wie war Wurzel, lief ich:
    grub-install /dev/sda.

Der letzte Befehl sagte, dass alles in Ordnung war und funktionierte. Ich habe die virtuelle Maschine neu gestartet und war wieder in meiner Ubuntu-Installation, als ob nichts passiert wäre.