2012-02-06

修复被grub覆盖的ntfs分区引导扇区

grub既可以被安装到硬盘的MBR上,也可以安装到分区的第一个扇区,作为该分区的启动程序。
安装到MBR总是可行的,但要安装到分区的开头,则要求分区的这一扇区必须未被使用。
不幸的是,XFS文件系统恰好把分区的第一个扇区做为超级块,也就是有关文件系统的信息被存储到这一扇区,
导致grub不能被简单地安装到此种分区上。
NTFS文件系统也把第一个扇区(Sector 0)作为存放文件系统信息的扇区。


1.使用Windows故障恢复控制台 (此方法未经测试!请谨慎使用。)


从一张Windows安装光盘启动,并进入恢复控制台。
在控制台中输入 fixboot 。它向第一主分区的第一扇区写入引导代码。


2.在Linux下修复


sudo fdisk -lu


下面是一个例子,输出结果是


Device Boot Start End Blocks Id System
/dev/sda1 * 63 71682029 35840983+ 7 HPFS/NTFS/exFAT
/dev/sda2 71682030 122881184 25599577+ 7 HPFS/NTFS/exFAT


修复 ntfs 分区 sda1 的命令是
sudo dd if=/dev/sda of=/dev/sda bs=512 count=1 seek=63 skip=71682029


修复 ntfs 分区 sda2 的命令是
sudo dd if=/dev/sda of=/dev/sda bs=512 count=1 seek=71682030 skip=122881184

没有评论: