使用Ubuntu Live CD和ms-sys工具修复Windows MBR


13

我正在尝试使用Ubuntu Live CD修复MBR。我已经安装了ms-sys,但是从我看到的线程中,我不确定要在哪个/ dev中执行命令:

sudo ms-sys --mbr7 /dev/???

(使用Windows 7时mbr7是正确的选项吗?)

ubuntu@ubuntu:~$ sudo fdisk -l

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 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: 0x1f205b1f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          38          38           0    0  Empty
/dev/sda2   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda3          206848   155854847    77824000    7  HPFS/NTFS/exFAT
/dev/sda4       155854848   625137663   234641408    7  HPFS/NTFS/exFAT
ubuntu@ubuntu:~$ 

为什么是/dev/sda1空的?

我试图修复MBR,因为尝试加载操作系统时出现黑屏。

Answers:


7

要还原MBR,可接受的方法是使用Windows CD。我们没有那么奢侈。幸运的是,我们手头有一个Ubuntu Live USB。

修复MBR的方法是:

  1. 使用Live USB / CD引导计算机。
  2. 安装lilo sudo apt-get install lilo
  3. 使用lilo使用以下命令修复MBR: sudo lilo -M /dev/sda mbr

奇迹般有效!


1
BG-Rescue Linux也具有LILO,只有4 MB
Steven Penny

4

首先,您的分区表似乎有两个活动分区,即使您解决了MBR问题,这也可能阻止计算机启动。

Windows的MBR引导有点时髦,因为它使用“默认” MBR来加载活动分区的MBR。在更改启动记录之前,请尝试取消标记分区之一并启动。

如果这不起作用,则该包装mbr可能值得研究。它能够将“默认” MBR安装到磁盘上,从而仅从活动分区加载引导代码。

根据您的问题,请阅读/遵循这些要点,后果自负。这些东西可以弄乱您的分区表。dd if=/dev/sda of=table.bin bs=512 count=1首先使用它进行备份。我还建议备份所有文件。如果我正确理解了文档,则不执行这些命令-w可能会阻止它们在没有其他用户干预的情况下编写任何内容。

  • ms-sys /dev/sda 将检查硬盘分区
  • 请在此处阅读文档。据我所知,这ms-sys可能非常危险,并且在某些情况下会破坏整个MBR以及分区表。看来您使用的是错误的实用程序。
  • ms-sys --ntfs /dev/sdaXsdaX装有Windows 7的分区在哪里?这可能会达到您的期望,但可能不会。

我认为您在此工作中使用的工具错误。这不会“修复” MBR,而是会破坏并创建它们。您可能会很幸运,并且拥有新的分区表和新的分区表,但是我不会指望它。尝试引导grub CD,然后chainloader (hd0,<win7 partition>)+1在提示符下键入并查看其是否启动。这将有助于诊断问题所在。如果失败,请使用Windows安装发行版修复MBR。


2

这是对我有用的两个解决方案。

引导Linux,并确保您的Internet连接正常,然后在终端上键入以下内容。

1.解决方案

sudo apt-get install syslinux

如果已安装软件包,请使用以下命令编写MBR:

sudo dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda

2.解决方案

sudo apt-get install mbr

如果安装了软件包,请使用以下命令编写MBR。

sudo install-mbr -i n -p D -t 0 /dev/sda

两者共同

如果要将MBR安装到其他驱动器,请更换sda。不要把sda1sda2sda3。只要把它放在sda硬盘上即可。最后重新启动,您的Windows应该会启动。


dd擦除整个sda磁盘吗?
帕维尔·弗拉索夫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.