2010年5月8日星期六

20100508 thinkpad R&R vista grub

近来有了个新电脑,终于有了一块能备份完我笔记本硬盘资料的地方,决定重新装一下笔记本(T400 2767 MU7),一个分区太伤了……Windows启动和关闭速度太慢了……整个完全装机流程走了4天orz,我都不知道自己怎么突然这么有耐心了……

装机目标:
总体来说就是让我的thinkpad中 R&R vista grub都能互相照顾一些:保留thinkvantage蓝键的一键恢复功能(鸡肋啊鸡肋……),保留Windows vista(割舍不下游戏啊,程序兼容性实在很头痛啊,我还没牛到能单系统啊,更关键我还没决心单系统啊……),一定要装Linux(跑程序,跑数值,跑仿真特别犀利,使用方便,简洁,折腾很有成就感,开源资料丰富,还略微可以炫耀一下……)至少,这三者要并存,不排除我会常试再装个其他Linux系统,没办法啊,我是个版本控=w=


装机过程:
重装之前,除了S,Q两个盘,还有Windows的C,E两个盘Linux的/boot,/,/home,swap几个分区,当初是用Windows自带的分区工具强行压缩出那么一点点空间,现在看来,给系统C盘留那么大分区并且在那个分区上下载什么的简直是在慢性自杀……开关机速度真是越来越慢……在我终于不能忍受vista动辄5分钟的开关机速度时终于下定了决心,全盘格式化!
首先,备份完所有资料后,我尝试了系统的一键恢复,Windows下的R&R居然不认Q盘中的恢复系统
FT,当然,脆弱的开机蓝键在我这么乱的磁盘结构上肯定是不起作用的了……
那么,既然我从来没有动过预装的S、Q两个盘,分别是硬盘的第一分区和最后一个分区,一键恢复应该还是在里面,以我之前对grub的一点浅薄理解加上在网上查到的一点资料,thinkvantage引导的也是一个pe系统,看了下S,Q的大小,S盘1个g多点,里面应该就是那个系统了,可是,万恶的系统无论怎么着也无法引导到R&R的那个(用Grub),如果强行从第0分区启动,直接就引导到vista了……这里,我没有本着科学严谨的态度深究,草率的看到一些说明,说蓝键用得是病毒注入的类似方式,让系统误认为系统分区被隐藏,从而进入了R&R,但这也不对,至少在我这样的机型上不对,因为我尝试了隐藏C,S&C,S都不行,总不会隐藏Q吧……
论坛上求助未果,Google没了耐心,那位联想工程师的恢复盘说我系统使用过久,没法恢复蓝键,伤……果断进行全盘恢复,因为已经进入了D2
拿出当年刻录的恢复盘,进入R&R(这个系统为啥不能用Q盘备份……就非要把硬盘全部清洗一遍么……)很快,我的机子就变成出厂状态了(这里,R&R恢复第一次确定DVD不要选,因为我没用Windows恢复盘,用的是刚拿到机子刻录的Rescue and Recovery盘),然后用联想工程师的分区工具便捷的分成了C(50g)S Q三个盘,之后正常安装Windows各项软件,当然我考虑再三,还是把Q盘删了,那个鸡肋,不后悔,嗯,安装完Windows正常组件后,使用系统下的R&R制作的一个硬盘备份,希望今后S盘中的R&R能认出……当然,不重装更好

安装Linux时,注意了蓝键的工作方式,于是不能破坏第一分区的mbr,也就不能把grub装在第一分区,那就装在boot分区吧
这样可以避免grub把第一分区的引导给洗掉,造成悲剧的ThinkVantage蓝键失效
但是引导Linux安装还需要grub
所以可以先在win下弄个grub4DOS应急
我是vista系统,下载的grub4DOS 0.4.4
bcdedit /create /d "Grub4Dos" /application bootsector
bcdedit /set {id} device partition=C:
bcdedit /set {id} path \grldr.mbr
bcdedit /displayorder {id} /addlast
拷贝grldr、grldr.mbr到C盘根目录,我的win安装默认分区为C
然后,我经常会进Linux玩,所以,开机1秒的停留时间太短,改为了两秒
bcdedit /timeout 2
然后进入grub,随便参照硬盘安装的方法(当然我肯定参照自己的啦硬盘安装fedora啦)
安装Linux系统,这里因为上文提到的防止破坏蓝键,于是把grub装在了boot分区,以下Linux blabla……
安装完后,Linux下的grub并不能直接被win下认出这样在Linux内核有升级时,menu.lst不能自动更新,而且,如果安装了多个 Linux系统时,也不利于管理,于是我尝试将win vista的bcd引导定位到Linux下的grub

尝试中:
由于硬盘内存有4个g,我就没有留swap空间
linux中只分了3个驱,
/boot ext3 200m
/ ext4 20G
/home ext4 10G

安装时,将bootloader安装在了boot分区中,在我的机子上为/deb/sda5
默认引导操作系统为/dev/sda1的win 也就是我硬盘(hd0,1)的Windows,因为有一个R&R分区占用了(hd0,0)....
系统目前还有的引导系统为/dev/sda6的fedora

先在vista下bcdedit命令
查找出grub4dos的那一项id
将其引导device 改为boot
方法告错,无法引导


考虑可以定义grub4dos,让其使用boot分区(hd0,4)/grub下的menu.lst
那么,grub4dos的菜单也就没啥用了,直接让它用Linux的menu.lst配置,grub4dos的menu.lst写法如下
color blue/green yellow/red white/magenta white/magenta
timeout 0
default 0
# default is start from 0, 0 here means use menulistinLinux
title Menu List In Linux
configfile (hd0,4)/grub/menu.lst

然后,Linux的menu.lst会随着Linux系统的升级和配置自动变化(这多包容,比win强太多了),可惜的是,Linux下的grub没法引导至vista系统,grub中出现的Windows只会让启动引导到前面bcd的那个菜单……这样,进Linux得读两次秒……但是好处就是,3个东西都可以正常工作了~

最终,我的电脑引导启动方式是 第0分区mbr引导第一分区vista 的 bcd ,bcd中有两个启动项:启动vista或启动vista根目录下的grub4dos;grub4dos采用Linux的boot分区中的grub的menu.lst进行配置,内有引导至Linux和返回vista系统bcd引导的两个引导方式;蓝键应该是在第0分区mbr读取时进行的注入(这点不是很清楚)

虽说这样,我还是要求一句?怎么样让grub跳过vista的bcd,直接引导系统?怎样让grub直接引导R&R系统?欢迎围观指导~

已知缺陷,重装Windows必定需要重新执行bcd设置,将引导指向boot分区下的grub
重装Linux效果还没测验,不过boot下的menu.lst都是会跟着自己变得应该没问题~

0 评论:

发表评论