机子里以前装的是Win XP和Linux双系统,出于追mm以及紧跟潮流的考虑,我重新格式化装有XP的C盘,并安装了Vista。双系统的引导成了问题,从网上搜索发现,grub4dos也在与时俱进,支持vista的引导。于是我决定通过在Vista下面安装groub4dos引导Linux。
根据grub4dos的教程,我先在命令提示符下运行
bcdedit /create /d "GRUB for DOS" /application bootsector
得到了一个类似{05d33150-3fde-11dc-a457-00021cf82fb0}的id字符串
紧接着运行如下命令,
bcdedit /set {id} device boot bcdedit /set {id} path \grldr.mbr bcdedit /displayorder {id} /addlast
其中,{id}就是先前得到的带花括号的id字符串。
然后,将GRLDR.MBR拷贝至Vista系统盘的根目录下,如C:\。同时,也将GRLDR和menu.lst拷到系统盘的根目录下(readme文件里说的是任意FAT16/FAT32/EXT2/NTFS分区的根目录下均可,不过我没来得及尝试)。
需要注意的是,C:\GRLDR文件本来就存在,任意改个名字即可。
然后修改Grub4dos的菜单文件(C:\menu.lst)和配置Windows的系统启动(系统属性 / 高级 / 启动故障和恢复)即可。
附上我的menu.lst文件内容,均可以正常启动:
color black/cyan yellow/cyan timeout 30 default /default title Windows Vista find --set-root /bootmgr chainloader /bootmgr title Slackware 12.0 root (hd0,6) kernel /boot/vmlinuz root=/dev/sda7 ro vga=791
与2k/xp不同的是,先进入grub4dos的界面,然后可进入Vista的引导界面。文件名等种种迹象标明,vista的启动管理器似乎是将grub4dos写在MBR里了。
Update:
某激活软件用的也是grub4dos,进行上面某一项设置的时候可能会导致无法激活。如果是多系统,建议通过Linux将Grub重新写在MBR,再通过Grub引导windows。不推荐使用grub4dos,感觉更混乱。
btw,通过live cd或硬盘进入linux,运行grub进入grub>提示符界面后,可通过如下命令恢复mbr:
grub>root (hd0,3) #指定linux分区所在位置 grub>setup (hd0) #将grub装到/dev/hda的MBR区。 grub>quit #大功告成,退出grub界面
在vista下这么麻烦么?我的XP+linux的grubfordos装起来时候貌似没这么复杂。。。
今天重装了xp系统,smzz的这篇文章对我恢复GRUB引导有很大帮助。不过这家伙写得太粗糙了,没有排版,也没有介绍相关的背景,一般的人很难通过这篇文章直接解决问题。比如liveCD,一般的人哪知道指的就是ubuntu的liveCD呢?建议改进一下哦。
to fire3:
vista改动了启动方式,不再使用类似以前xp/2000下的引导文件,当时参照grub4dos的文档一步一步操作,个人感觉确实繁琐一些。不过可以通过linux下的grub引导vista,安全又简单。
to 王永杰:
呵呵,主要是太推崇纯文本方式了。写这篇文章时仅仅当成了平常的笔记,下次一定改进。
btw, Linux LiveCD有很多种,详情参见《使用 Linux LiveCD》