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

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

我正在尝试使用 Ubuntu Live CD 修复 MBR。我已经有了微软系统但从我看到的线程来看,我不完全确定应该在哪个 /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,因为在尝试加载操作系统时出现黑屏。

答案1

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

修复MBR的方法是:

  1. 使用 Live USB/CD 启动机器。
  2. 安装 lilosudo apt-get install lilo
  3. 使用以下命令通过 lilo 修复 MBR:sudo lilo -M /dev/sda mbr

奇迹般有效!

答案2

首先,您的分区表似乎有两个活动分区,即使您修复了 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/sdaX您的 Windows 7 分区在哪里sdaX。这可能按照你的期望去做,但是大概不是。

我认为你用的这个工具不合适。它不会“修复” MBR,而是会破坏并创建它们。你可能会很幸运,让新分区表与新分区表对齐,但我不会指望它。尝试启动 grub CD 并chainloader (hd0,<win7 partition>)+1在提示符下输入,看看它是否启动。这将有助于诊断问题所在。如果其他方法都失败了,请使用你的 windows 安装 dist 来修复 MBR。

答案3

以下是对我有用的两种解决方案。

启动 Linux 并确保您已拥有可用的 Internet 连接,然后在终端上输入以下内容。

1.解决方案

sudo apt-get install syslinux

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

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

或(取决于位置)

sudo dd if=/usr/lib/syslinux/mbr/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 应该可以启动。

相关内容