Как я могу восстановить потерянный 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?
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, как будто ничего не произошло.