码迷,mamicode.com
首页 > Windows程序 > 详细

安装linux发生的无法引导windows以及windows分区变为raw的解决

时间:2014-12-20 09:19:10      阅读:387      评论:0      收藏:0      [点我收藏+]

标签:linux   解决方案   硬盘   磁盘   分区   

先说明一下操作系统的引导流程:

主引导记录(MBR,Main Boot Record)是位于磁盘最前边的一段引导(Loader)代码

分区引导记录(PBR,Partition Boot Record)是各个分区自己的引导记录,写在各个分区开始处第一个扇区

DOS引导记录(DOS Boot Record)应称为OBR(OS Boot Record),意思是活动分区的PBR,即操作系统引导记录

在系统启动时,最先读取的硬盘信息是MBR,然后由MBR内的主引导程序读出PBR,最后才由PBR内的DOS引导代码读取操作系统的引导程序

====================================事件分割线=====================================

由于调整分区信息,今天笔者重装了windows7与centos6,首先当然是安装windows,因为linux可以识别windows分区并引导,与此相反windows不会识别linux分区

然后安装centos,安装到最后一步时,笔者将grub放入了linux中boot分区(其实就相当于先安装了linux又安装了windows,windows覆盖了硬盘主引导记录),这就导致重启后无法进入linux

解决方法很简单,使用linux安装盘的修复模式,chroot后grub-install到磁盘MBR就可以解决

但笔者神经一短路,用grub-install往一个ntfs分区中写入了引导记录,占据了NTFS分区的引导扇区,导致该ntfs分区被识别为RAW

解决方案也很简单,我是在linux下进行操作的

首先,列出

sudo fdisk -lu

注意是 -lu 不是 -l。下面是一个 U 盘的例子,输出结果是

/dev/sdc1 63 25671869 12835903+ 7 HPFS/NTFS
/dev/sdc2 25671870 31696244 3012187+ 7 HPFS/NTFS

修复 ntfs 分区 sdc1 的命令是

sudo dd if=/dev/sdc of=/dev/sdc bs=512 count=1 seek=63 skip=25671869

修复 ntfs 分区 sdc2 的命令是

sudo dd if=/dev/sdc of=/dev/sdc bs=512 count=1 seek=25671870 skip=31696244

请参照你的情况修改,把上面的 if 和 of 两处 sdc 改为比如 sda,seek 和 skip 的值改为你需要修复的ntfs 分区的精确起止扇区。再说一遍,这里的值来自 sudo fdisk -lu 的输出,而不是 sudo fdisk -l,请再三确认。

具体请参照http://linux-wiki.cn/wiki/%E4%BF%AE%E5%A4%8D%E8%A2%ABgrub%E8%A6%86%E7%9B%96%E7%9A%84ntfs%E5%88%86%E5%8C%BA%E5%BC%95%E5%AF%BC%E6%89%87%E5%8C%BA

该网页中也说明了如何在windows下进行恢复操作以及这样操作的原理

安装linux发生的无法引导windows以及windows分区变为raw的解决

标签:linux   解决方案   硬盘   磁盘   分区   

原文地址:http://blog.csdn.net/ytingone/article/details/42034145

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!