之前一直使用的是winXP+Ubuntu的双系统,后来winXP出现了些问题,而且越来越慢,好吧,既然工作的主系统是Unbutu,那么从用户体验上来说,win7无疑是更好的选择.
 覆盖安装win7后,Ubuntu的启动项直接不见了,手上又没有阿j哥的Ubuntu的安装盘,只能用工具去引导了.
网上很多相关资料都是Ubuntu老的版本的,挣扎了几个小时后,终于搞定了.
 所需工具:1.grub4dos 2.Ubuntu的livecd或者u盘中的linux系统,我用的是KNOPPIX.
 准备好后就可以动手了。
 1.进livecd的Ubuntu或u盘中的linux,找到:文件系统/boot/grub/grub.cfg,用记事本打开,记下ubuntu的启动命令(有很多个,我们只需要第一个);
 2.安装grub4dos,即解压后把grldr,grldr.mbr,menu.lst粘到X盘(win7所在分区)。
 3.X盘新建boot.ini,键入[boot loader]
[operating systems]
C:\grldr.mbr="grub4dos"
 4.在menu.lst中键入之前记下的ubuntu启动信息(不同电脑,系统参数不同)
 title Unbuntu 10.10
root (hd0,1)
kernel /boot/vmlinuz-2.6.35-24-generic root=UUID=1fe21987-20c1-4eb1-9a8a-c943e53b2f7e ro   quiet splash
initrd /boot/initrd.img-2.6.35-24-generic
boot
 5.重启,选grub4dos,再选Unbuntu 10.10,可爱的logo出现了。
 也可以直接用grub4dos的commondline来进系统,不过麻烦了。

 裝pe的话会顺坏grub4dos,重复2->5步骤即可。

 就是这样。

这篇是一年前写的文章,当时发在校内上了,看的人也不多,结果当时就没怎么在意。

但这两天刚好又在倒腾电脑,发现这文章写得真是 。。。 烂。

说明不清楚,还有拼写错误,想起了一句话:错误的注释比没注释更可怕。

改正如下:

 假设电脑上已装有Ubuntu,重装win7到C盘后引导项被删除。为重新引导ubuntu,我们先在win7上装grub4dos。

原理是利用win7的bootmgr。

准备软件:grub4dos软件。

步骤:

1.在X盘中新建boot.ini,在里面写入

[boot loader]

[operating systems]
C:\grldr.mbr="grub4dos"

这样在开机的时候bootmgr就能从boot.int中读取启动信息,在次启动的时候就能选择启动win7或是启动grub4dos;

2.解压grub4dos后拷贝文件夹中grldr,grldr.mbr,menu.lst三个文件到C盘,到这grub4dos就算装好了,开机后能够选择grub4dos引导;

3.menu.lst中记录的是引导信息,这里我们有利用它来引导Ubuntu,先要获得Ubuntu的启动信息,10.10之后的系统都存放在/boot/grub/grub.cfg,有两种方法,1)在装好Ubuntu后,打开/boot/grub/grub.cfg,找到如下字段

menuentry 'Ubuntu,Linux 3.0.0-12-generic' --class ubuntu --class gnu-linux --class gnu --class os {

    recordfail
    set gfxpayload=$linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 60aeeaf3-1d61-47f4-a2c5-72d18e775e86
    linux    
/boot/vmlinuz-3.0.0-12-generic root=UUID=60aeeaf3-1d61-47f4-a2c5-72d18e775e86 ro   quiet splash vt.handoff=7
    initrd  
 /boot/initrd.img-3.0.0-12-generic
}

红色的字段就是有用的信息,新建一个文档把它存起来;2)如果是之前没有记录启动信息,那在装完win7之后可利用Ubuntu的livecd,或是U盘linux系统来获取;

4.编辑menu.lst,

 title Unbuntu 10.10

root (hd0,0)
kernel /boot/vmlinuz-3.0.0-12-generic root=UUID=60aeeaf3-1d61-47f4-a2c5-72d18e775e86 ro   quiet splash
initrd
/boot/initrd.img-3.0.0-12-generic
boot

注意一下第二行,grub.cfg中写的是 root='(hd0,msdos1)',menu.lst中也这样写的话会提示错误,改成hd0,0后就没问题了,意思是挂在第一块硬盘的第一分区。

5.grub4dos还有很多其他功能,比如引导pe,安装系统,这里就不意义赘述了。