本人装的是windows 7与ubuntu 10.10双系统,ubuntu非wubi安装,在一次操作中将自己的图形界面搞垮掉了,刚好也想重装下ubuntu于是乎进入windows 7就将ubuntu下所有分区给删除了,然后准备重新硬盘安装ubuntu,一切就绪后重启机器,可是怀具发生了,no such partition
grub rescue>(好像是这个吧,不太记得了- -)
一开始有些傻眼,可能是由于这段时间习惯了使用命令吧,所以习惯性地ls一下,成功了,然后再pwd接着就是各种unknow- -
于是乎才感到不妙,原来是自己当初做ubuntu时系统改成了grub引导的,而grub也已经写入了mbr,这个时候删除了ubuntu分区后导致无法正确引导windows 7进入windows系统,这里给出几个解决方法,然后再说下我是怎么修复的.
方法一:
grub rescue模式下修复
由于在rescue模式下,只有少量的基本命令可用,必须通过一定的操作才能加载正常模块,然后进入正常模式。
rescue模式下可使用的命令有:set,ls,insmod,root,prefix(设置启动路径)
先假设grub2的核心文件在(hd0,8)分区,再来看看怎样从 rescue模式进入从(hd0,8)启动的正常模式(normal)。
在 rescue模式下search命令不能用,对不清楚grub2文件处于哪个分区的,可以用ls命令查看,比如
ls (hd0,8)/ 查看(hd0,8)分区根目录,看看有没有boot文件夹
ls (hd0,8)/boot/ 查看(hd0,8)分区的/boot目录下文件
ls (hd0,8)/boot/grub/ 查看(hd0,8)分区/boot/grub目录下文件
通过文件查看,可以确定 grub2核心文件处于哪个分区,接下来就可以进行从rescue到normal的转变动作:
先 ls 看看分区,根据分区列表,猜下 / 分区的编号再 ls (hd0,x)/ 看分区目录下文件确定找到 / 分区,不对的话继续找。找到 / 分区的 (hd0,x) 继续
grub rescue>root=(hd0,x)
grub rescue>prefix=/boot/grub
grub rescue>set root=(hd0,x)
grub rescue>set prefix=(hd0,x)/boot/grub
grub rescue>insmod normal
rescue>normal -------->若出现启动菜单,按c进入命令行模式
rescue>linux /boot/vmlinuz-xxx-xxx root=/dev/sdax
rescue>initrd /boot/initrd.img-xxx-xxx
rescue>boot
内核版本号 -xxx-xxx可以按Tab键查看后再手动补全。
我是没有找到,因为我已经把所有的ubuntu分区给删除了- -
方法二:找到你的windos安装光盘,使用windows安装光盘进行修复(不要重装哦,重装是没用的).现在很多D版安装光盘都有一些工具,
比如你可以进入PE系统进行修复.
方法三:做一个引导U盘,里面放入一个PE系统,然后在PE里修复
方法四:重新安装ubuntu这样grub引导就又回来了
方法一中,如果你使用的是windows xp系统,可以用fdisk /mbr这个命令修复,但我没用过
windows 7可以用bootree /fixmbr
bootree /fixboot
这个我也没用过
我使用的是第三种方法,这里介绍一下
首先启动到PE下,然后可以找到一些工具,(我用的是diskgen),比如PQ什么之类的,打开它后有一个修复主引导,点击后,你一定以为太
简单了,当然你重启机器后可以看到启动菜单(我有多系统),你会很开心可是当你按下回车时却发现怀具了,因为还是无法引导..........
怎么办呢?于是乎我又启动到PE,我是windows 7所以在我的系统盘windows/system32下有个叫作bcdedit的工具,相信很多人都知道
在这里可以设置winodws 7的引导信息,于是乎在这里进行了修复,当你使用命令bcdedit时会发现你的一些参数不正确了,那么我们把
它改成正确的,让它可以正确引导我们的系统,下面给出bcdedit的命令参数等等内容
在BCD中,硬盘或分区的GUID可分为如下几类:{legacy} :指存在上一代Windows系统如Windows XP的硬盘或分区;
{default} : 默认操作系统所在硬盘或分区;
{current} : 当前硬盘或分区;
{c34b751a-ff09-11d9-9e6e-0030482375e7} : 类似于这个格式的GUID指其他安装了操作系统的硬盘或分区。
(注:这只是个例子,具体数字根据硬盘或分区参数会有相应变化,但均会类似于{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}格式)。
BCDEDIT命令 bcdedit /? : 显示命令帮助
bcdedit.exe /? CREATESTORE : 显示命令参数“ CREATESTORE ”的详细信息,——当然,“ CREATESTORE ”也只是示例,使用中对其他任何可用参数也均可使用类似格式查看该参数的具体说明。
bcdedit 或 bcdedit /enum all : 显示Vista和Windows 7系统当前的启动设置数据,这时系统中所有安装了操作系统的硬盘或分区均会显示相应的 GUID 标识,如 {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} 。
使用BCDEdit备份与恢复启动选项
在对Vista和Windows 7的启动选项修改之前,最好先对其备份,以防万一操作失误或其他故障导致系统无法启动。 bcdedit /export “D:\BCD Backup\Bcd Backup” : 将启动设置备份到D盘 “BCD Backup” 目录下;
bcdedit /import “D:\BCD Backup\Bcd Backup” : 恢复之前备份在D盘 “BCD Backup”目录下启动选项。下面详细介绍使用BCDEdit修改启动选项的常用命令格式: bcdedit /set {legacy} Description “Windows XP Professional SP2” : 修改上一代操作系统在启动菜单中的显示内容,比如说我们也可将其修改为“Vista天地专用XP SP2”之类。注意,命令中的引号不可省略;
bcdedit /set {current} description “Vista和Windows 7 Build 5270 x86″ : 修改当前启动硬盘或分区上的操作系统在启动菜单中的显示内容。注意,当前分区上的操作系统可能为Vista和Windows 7,也可以是其他系统,当然,命令中的引号也不可省略;
bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} description “Vista和Windows 7 Build 5270 x64” : 修改安装于其他硬盘或分区的系统在启动菜单中的显示内容,使用这项命令时一定要注意该硬盘/分区的GUID输入正确,相应的GUID可通过“ bcdedit ”或“ bcdedit /enum all ”命令查看。
bcdedit /default {current}: 将当前启动硬盘/分区中的操作系统设置为默认启动的系统;
bcdedit /default {5189b25c-5558-4bf2-bca4-289b11bd29e2} : 设置指定GUID上的操作系统为默认启动的系统;
bcdedit /default {legacy} : 设置上一代Windows 系统Windows XP为默认启动的系统;
bcdedit /displayorder : 设置启用菜单中各项的显示顺序,如:
bcdedit.exe /displayorder {legacy} {current}
将首先显示Windows XP,然后再显示默认启动的系统如Vista和Windows7
bcdedit /timeout 15: 将默认的启动菜单显示时间30秒更改为15秒,当然,您可以将这个时间修改为任何您希望的数值。
使用BCDEdit修复硬盘/分区结构错误
在对启动选项的修改过程中,如添加或删除某个硬盘/分区时,可能会因操作中的不慎导致硬盘/分区结构的混乱,除了采用恢复修改前的备份方法外,也可以首先使用BCDEdit来尝试一下修复。
具体方法如下: X:\>X:\boot\fixntfs.exe -lh -all : 这时的“ X: ”指引导目录 “boot” 所在的硬盘/分区;
bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} device partition=X:: 将指定GUID的分区设为启动分区。注意,这里的“ X: ”的GUID须与指定值不同,同时,运行该命令后,必须接着运行下面的osdevice命令;
bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} osdevice partition=X: : 将指定GUID的分区设为启动分区。注意,这个命令必须与上面的device命令配对使用,同时“ X: ”的GUID须与指定值不同。这样经过设置后就可以正常启动到win7下了.