![如何恢复丢失的 MBR/引导扇区?](https://linux22.com/image/1316578/%E5%A6%82%E4%BD%95%E6%81%A2%E5%A4%8D%E4%B8%A2%E5%A4%B1%E7%9A%84%20MBR%2F%E5%BC%95%E5%AF%BC%E6%89%87%E5%8C%BA%EF%BC%9F.png)
我有一个 VDI(VirtualBox 虚拟磁盘映像),上面安装了 Ubuntu 11.10(我认为是 64 位)。之前,当我在虚拟机上运行 GParted Live CD 来擦除另一个磁盘的分区表时,我无意中删除了我的 Ubuntu VDI 的分区表,而不是其他磁盘的分区表(我知道,在继续操作之前不 100% 确定我正在处理哪个磁盘是愚蠢的,但我之前已经做过很多次了,我甚至没有想到要检查一下)。
确定方向后,我尝试寻找一种方法来恢复损坏。我设法恢复了我的/dev/sda1
分区和交换分区(尽管它现在已经脱离了之前的扩展分区),使用测试磁盘。
问题是,现在,当我启动 VDI 时,只看到一个黑屏,没有任何提示,也没有任何生命迹象。
我尝试将 TestDisk 的 MBR 安装到磁盘上,现在当我运行虚拟机时,它会显示 TestDisk 的 MBR 提示符。但是,当我告诉它启动到我的 Ubuntu 分区时,它一直显示黑屏。
有没有什么办法可以克服这种情况?我认为问题可能出在分区的引导扇区内(现在我还必须在 MBR 上重新安装 GRUB 或某些东西)。
编辑:这里有一些额外的信息。
磁盘管理:
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
吗?
答案1
我找到了解决这个问题的方法。以下是我采取的步骤,供以后参考,希望可以帮助那些遇到同样问题的人。
- 我下载了 Ubuntu 11.10 的 Live CD 版本(如果您的系统是 64 位,请确保下载 amd64 Live CD)。
- 我启动了 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 安装,好像什么事都没发生过一样。