Как я могу восстановить потерянный MBR / загрузочный сектор?

3894
Gabriele Cirulli

У меня был VDI (VirtualBox Virtual Disk Image) с Ubuntu 11.10 (64 бит, я думаю), установленный на нем. Ранее, запустив живой CD с GParted на моей виртуальной машине для стирания таблицы разделов другого диска, я случайно удалил таблицу разделов моего Ubuntu VDI вместо другого диска (я знаю, это было глупо с моей стороны 100% уверен, с каким диском я работал, прежде чем продолжить, но я делал это так много раз, что даже не думал проверять).

Собрав все ориентиры, я попытался найти способ оправиться от повреждений. Мне удалось восстановить мой /dev/sda1раздел и раздел подкачки (хотя он был теперь вне расширенного раздела, в котором он был раньше), используя TestDisk .

Проблема в том, что теперь, когда я загружаюсь в VDI, я просто получаю черный экран без подсказок и признаков жизни.

Я попытался установить MBR TestDisk на диск, и теперь, когда я запустил виртуальную машину, отобразился запрос MBR TestDisk. Когда я сказал ему загружаться в мой раздел Ubuntu, он продолжал отображать этот черный экран.

Есть ли способ преодолеть эту ситуацию? Я думаю, что проблема может быть в загрузочном секторе раздела (и теперь мне также придется переустанавливать GRUB или что-то поверх MBR).


РЕДАКТИРОВАТЬ: Вот некоторая дополнительная информация.

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 

Я не совсем уверен в этом (и, пожалуйста, извините за мое невежество, если я ошибаюсь), но я думаю, что это может быть аномалией, которая /dev/sda1начинается в 2048. Не должно ли это начаться в 0?

2
MBR начинается с 0, поэтому sda1 должен начать что-то позднее. Используйте `hexdump -C / dev / sda | чтобы узнать, что находится между MBR и sda1. ott-- 11 лет назад 0
Я не могу особо различить его, видя это таким образом, но я вижу, что есть промежуток (заполненный `NOP`ами) между` 0x40` (включенным) и `0x70` (не включенным), и еще один между` 0x200` и ​​`0x600`. [Вот скриншот дампа] (http://gabrielecirulli.com/p/20120529-221730.png) Gabriele Cirulli 11 лет назад 0

1 ответ на вопрос

3
Gabriele Cirulli

Я нашел решение этой проблемы. Вот шаги, которые я предпринял для дальнейшего использования, и в надежде, что это поможет тем, кто столкнулся с той же проблемой.

  • Я скачал версию Live CD для Ubuntu 11.10 (убедитесь, что вы загружаете amd64 Live CD, если ваша система 64-битная) .
  • Я загрузился на Live CD, попросил попробовать Ubuntu и открыл новое окно терминала.
  • Сильно следуя опубликованному здесь руководству, я выполнил следующие команды:
    • 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
      (некоторые из них могут быть избыточными, но я обнаружил, что некоторые программы выдают некоторые ошибки, если они не были запущены)
    • sudo chroot /mnt
  • Когда я был в качестве корня, я побежал:
    grub-install /dev/sda.

Последняя команда сказала, что все в порядке и работает. Я перезагрузил Виртуальную машину и вернулся к установке Ubuntu, как будто ничего не произошло.

Похожие вопросы