装Win7有快两个月了吧,对于我这个没有用过Vista的人来说,Win7是很不错的:
可是某天我想起来,自从装了Win7,MBR被覆盖以后,我的Ubuntu好像好久都没有进去玩过了,于是我就股沟了一下。得到这篇来自JavaEye的文章,看了以后直接操作:
1:先去下载grub4dos
2:解压grldr.mbr,grldr,menu.lst三个文件到C盘根目录,注意是根目录哦!
3:然后以管理员模式运行cmd,输入bcdedit /create /d "grub" /application bootsector
会有一大串id,要记下,等下要用,然后:
4:bcdedit /set {id} device partition=c:
5:bcdedit /set {id} path \grldr.mbr
6:bcdedit /displayorder {id} /addlast
杯具发生在第5条命令,当我在我下到的grub4dos里面没有找到 \grub.mbr那个文件只有\grldr之后,我居然脑子一昏,直接把那个命令换成了 \grldr,启动之后,Win7的C盘的启动扇区被改成了grub……
于是一个死循环出现了,当我在Grub命令行里使用
1. root (hd0,0)
2. chainloader +1
3. boot
来启动Win7的时候,它等于又一次引导了grub……试过很多办法,都不能打破这个死循环了。
于是,我想,就先用Ubuntu吧,我可不想再折腾着装系统了。晚上睡觉前,电脑一开,直接升级到9.10,一路next,很快我就用上了9.10 。在Linux底下,我自然而然地会减少上网时间,可能是以前在Linux下上网实在不是一件能带来快乐的事情,反而有很多时间玩玩技术,不错不错。可是终究有一天,我想用支付宝交电费了,终究必须用Windows了,于是我想,再折腾一下吧。
这个阶段的杯具在于我的光驱适时地坏掉了,Dell的光驱太牛了,刚好撑过保修期过了10几天就自我歇菜,骂娘都没的地方了。按以前的经验,只要把Win7的光盘搞进去再重新引导一下,都不需要安装或者最多运行几个命令,就可以修复那个启动扇区,可是我光驱没法用,grub引导iso半天没成功,就在我万念俱灰的时候,我看到了Win7的C盘下面躺着一个bootsect.bak,眼睛一亮。Google告诉我这个玩意是Win7安装的时候备份下来以前的pbr(partition boot record),可是我想,备份以前的干啥啊,应该是自己的PBR吧。于是乎想到了dd,同时为了防止杯具的再次发生,我先把grub安装到了MBR:grub-install /dev/sda
。然后研究那个bootsect.mbr,先后使用以下命令:
1. file bootsect.bak //确认一下是不是启动记录,结果OK
2. ls -l bootsec.bak //看下是多大,得到是8192字节,不错不错
3. dd -i /dev/sda1 -o win7_pbr.bak -bsize 512 -count 16 //备份C盘PBR
4. dd -i bootsect.bak -o /dev/sda1 -bsize 512 -count 16 //强力重写C盘的PBR
忐忑不安地重启了机器……
Grub出现,OK;验证Linux启动,OK;重启,选择Grub认出来的那个Win7 label,哇,看见了久违的Starting Windows,GREAT!感谢Win7的bootsect.bak,感谢dd!此次事件,让我对Win7的好感又增加一些。不过最近一段时间,我基本都只用Ubuntu了,Windows只用来打游戏,付支付宝水电费账单,原因很简单,因为Ubuntu可以让我集中精力玩技术,嘿嘿。后来知道Win7有个easyBCD的程序,可以方便添加启动条目,可惜我已经用不到了。
联系客服