双系统windows7,ubuntu104 用grub4dos安装
发表于 : 2010-09-28 1:06
本文说明用grub4dos安装windows7和ubuntu10.04双系统
磁盘分区如下图 分区
sda1:dell保留的隐藏分区,放置硬件参数,容量70MB。硬盘引导MBR放置于此处。
sda2:windows7的隐藏分区Recovery,容量10GB,放置有已授权的windows7,用于工厂预置软件的恢复。
sda3:卷标OS,盘符C:,是windows7的系统分区,win7的内核引导程序放置在此,c:\windows\winload.exe。
sda4 扩展分区
sda5:NTFS的文件分区,110GB。
sda6:NTFS的另一个文件分区,144GB。
sda7:linux分区,60GB。linux下ext3为65GB。
sda8:linux分区,4.6GB,挂载点是引导分区 /boot。linux下ext3为4.9GB。
sda9:linux根文件分区,19GB,linux下ext3为20GB,挂载点/。
sda10:linux home文件分区,46GB,linux的挂载点是/home。
sda11:linux系统的交换分区swap,容量10GB。
本机安装windows7和ubuntu10.04双系统
回顾windows7的引导启动过程:
1、开机后,运行BIOS,从硬盘的第一个分区读取主引导记录MBR,MBR读取DPT(分区表),从中找出活动的主分区。本机中活动主分区是sda2。一块硬盘只有一个活动主分区,windows7中将隐藏分区设置为活动主分区。
2、读取活动主分区的PBR(分区引导记录,也叫Pbr)。PBR再搜寻该分区内的启动管理器文件BOOTMGR,在BOOTMGR被找到后,控制权就交给了BOOTMGR。
3、 BOOTMGR读取\boot\bcd文件(Boot Configuration Data,“启动配置数据”)。windwows7下的bcd文件就相当于xp下的boot.ini文件,如果存在着多个操作系统并且选择操作系统的等待时间不为0的话,这时就会显示多操作系统的选择界面。
4、在我们选择启动windows7后,BOOTMGR就会去启动盘寻找 windows\system32\winload.exe,然后通过winload.exe加载windows7内核,从而启动整个windows7系统。
可以把这个过程简单地概括为:BIOS-->MBR-->DPT-->pbr--> Bootmgr-->bcd-->Winload.exe-->内核加载 -->整个windows7系统。
图2 win7引导过程
ubuntu的启动引导过程
图3 ubuntu的引导 ubuntu可以用Grub引导,在ubuntu9.10以后的安装版本都用Grub2,以下描述简称为Grub。Grub默认启动引导程序安装在硬盘第一分区的MBR,而Grub的MBR就是把引导文件boot.img写入MBR。启动时根据MBR提供的信息找到linux启动分区/boot,加载Grub的核心core.img和配置文件grub.cfg。在grub.cfg中实现多系统引导。
从这里可以看出,Grub引导时,改写了原来windows7的MBR。因此,如果某些原因,导致开机后不能加载Grub,则windows7和ubuntu两个系统都不能进入,这可是非常危险的。据说ubuntu10.04安装Grub引导是存在一个BUG,可能导致无法引导情况发生。
我安装过程就是这样,原来的系统是windows7,后安装ubuntu10.04。安装ubuntu成功后,重新启动机器,可以出现Grub引导菜单,可以引导windows7和ubuntu,但是如果进入了windows7,再次启动机器后,Grub引导菜单消失,无法引导任何系统。只好重新恢复windows7的MBR,此时ubuntu再也不能进入。
经过几次折腾,决定用Grub4dos来实现多系统引导,其过程图如下:
图4 Grub4dos引导过程
与windows7的引导过程一样,BIOS->MBR->DPT->Pbr->Bootmgr->bcd。到此需要在bcd中配置两个引导:windows7和Grub4dos。启动windows7的过程与前面所述一致,启动Grub4dos后,装载Grub4dos,产生引导菜单,可引导windows7和ubuntu,引导菜单的配置由menu.lst指定,menu.lst放置在sda2中。这样不破坏windows7的MBR,保持原系统的引导过程,比较安全。
这种方式最重要步骤是配置bcd,可以用bcdedit程序来设置,比较麻烦。这里介绍一个windows程序EasyBCD比较方便。EasyBCD 2.02下载地址:
http://neosmart.net/dl.php?id=1
windows7和ubuntu10.04双系统安装过程如下:
step1 :安装windows7,其过程再次不叙述。
step2: 安装ubuntu10.04,一个比较好的办法是制作USB安装盘,可以用UltraISO程序制作USB安装盘。当然也可以用光盘安装ubuntu。注意在安装ubuntu10.04过程中,在安装引导加载程序步骤时,不要按“高级”按钮,只要继续进行下去即可。据说这是ubuntu10.04的一个BUG,不知现在解决没有。
step3: 安装完ubuntu后,重启计算机,看到Grub2菜单后,选windows7,进入windows7运行环境。
step4: 运行EasyBCD2.02,按“Add New Entry”,选择NeoGrub,按下面的Configure,出现menu.lst,编辑Grub4dos启动菜单项。这里给出我的menu.lst
title Ubuntu Linux 2.6.32-24-generic-pae (Chinese mode)
root (hd0,7) # /dev/sda8
kernel /vmlinuz-2.6.32-24-generic-pae root=UUID=0c10efa6-fcbe-4993-ab58-9c171e3800e1 ro quiet splash
initrd /initrd.img-2.6.32-24-generic-pae
title Ubuntu Linux 2.6.32-24-generic-pae (Chinese recovery)
root (hd0,7)
kernel /vmlinuz-2.6.32-24-generic-pae root=UUID=0c10efa6-fcbe-4993-ab58-9c171e3800e1 ro single
initrd /initrd.img-2.6.32-24-generic-pae
title Grub2
root (hd0,7)
kernel /grub/core.img root=UUID=0c10efa6-fcbe-4993-ab58-9c171e3800e1 ro single
这里面有三个ubuntu选项,正常模式、修复模式和linux的Grub2,其中Grub2可以取消。
我的linux分区中,专门划分出引导分区 /boot,在第八分区(sda8),而在grub4dos中,这个分区是(hd0,7),内核是 vmlinuz-2.6.32-24-generic-pae,根文件的分区标识为=0c10efa6-fcbe-4993-ab58-9c171e3800e1,这可以从linux 分区 /boot/grub/grub.cfg文件中找到,初始化程序是initrd.img-2.6.32-24-generic-pae。内核与初始化程序都可以从/boot分区中找到。
同样地,title Grub2是加载Grub内核,内核放置在/boot/grub/core.img。
step5: 选Bootloader Setup,在BMR configuration options中选 Install the windowsVista/7 Bootloader to the MBR,按write MBR。其实这一步可以不做,这实际是写windows7的MBR到硬盘中,保证windows7的引导过程。
step6: 关闭EasyBCD,这样就给bcd配置了两个启动项,windows7和NeoGrub Bootloader。
step7: 重启计算机,看到EasyBCD产生的启动菜单,有两个选项:
windows7
NeoGrub Bootloader
当选择NeoGrub Bootloader后,加载Grub4dos,出现由menu.lst指定的选择菜单
Ubuntu Linux 2.6.32-24-generic-pae (Chinese mode)
Ubuntu Linux 2.6.32-24-generic-pae (Chinese recovery)
Grub2
至此,完成了windows7和ubuntu双系统安装。
你可以试着选择Grub2,就可以出现久违的linux Grub启动选择菜单,这是由linux中的grub.cfg文件指定的启动选项。当然这纯粹脱裤子放屁,我这里仅仅为了试验如何启动Grub2。
希望本文对同学们有所帮助。
磁盘分区如下图 分区
sda1:dell保留的隐藏分区,放置硬件参数,容量70MB。硬盘引导MBR放置于此处。
sda2:windows7的隐藏分区Recovery,容量10GB,放置有已授权的windows7,用于工厂预置软件的恢复。
sda3:卷标OS,盘符C:,是windows7的系统分区,win7的内核引导程序放置在此,c:\windows\winload.exe。
sda4 扩展分区
sda5:NTFS的文件分区,110GB。
sda6:NTFS的另一个文件分区,144GB。
sda7:linux分区,60GB。linux下ext3为65GB。
sda8:linux分区,4.6GB,挂载点是引导分区 /boot。linux下ext3为4.9GB。
sda9:linux根文件分区,19GB,linux下ext3为20GB,挂载点/。
sda10:linux home文件分区,46GB,linux的挂载点是/home。
sda11:linux系统的交换分区swap,容量10GB。
本机安装windows7和ubuntu10.04双系统
回顾windows7的引导启动过程:
1、开机后,运行BIOS,从硬盘的第一个分区读取主引导记录MBR,MBR读取DPT(分区表),从中找出活动的主分区。本机中活动主分区是sda2。一块硬盘只有一个活动主分区,windows7中将隐藏分区设置为活动主分区。
2、读取活动主分区的PBR(分区引导记录,也叫Pbr)。PBR再搜寻该分区内的启动管理器文件BOOTMGR,在BOOTMGR被找到后,控制权就交给了BOOTMGR。
3、 BOOTMGR读取\boot\bcd文件(Boot Configuration Data,“启动配置数据”)。windwows7下的bcd文件就相当于xp下的boot.ini文件,如果存在着多个操作系统并且选择操作系统的等待时间不为0的话,这时就会显示多操作系统的选择界面。
4、在我们选择启动windows7后,BOOTMGR就会去启动盘寻找 windows\system32\winload.exe,然后通过winload.exe加载windows7内核,从而启动整个windows7系统。
可以把这个过程简单地概括为:BIOS-->MBR-->DPT-->pbr--> Bootmgr-->bcd-->Winload.exe-->内核加载 -->整个windows7系统。
图2 win7引导过程
ubuntu的启动引导过程
图3 ubuntu的引导 ubuntu可以用Grub引导,在ubuntu9.10以后的安装版本都用Grub2,以下描述简称为Grub。Grub默认启动引导程序安装在硬盘第一分区的MBR,而Grub的MBR就是把引导文件boot.img写入MBR。启动时根据MBR提供的信息找到linux启动分区/boot,加载Grub的核心core.img和配置文件grub.cfg。在grub.cfg中实现多系统引导。
从这里可以看出,Grub引导时,改写了原来windows7的MBR。因此,如果某些原因,导致开机后不能加载Grub,则windows7和ubuntu两个系统都不能进入,这可是非常危险的。据说ubuntu10.04安装Grub引导是存在一个BUG,可能导致无法引导情况发生。
我安装过程就是这样,原来的系统是windows7,后安装ubuntu10.04。安装ubuntu成功后,重新启动机器,可以出现Grub引导菜单,可以引导windows7和ubuntu,但是如果进入了windows7,再次启动机器后,Grub引导菜单消失,无法引导任何系统。只好重新恢复windows7的MBR,此时ubuntu再也不能进入。
经过几次折腾,决定用Grub4dos来实现多系统引导,其过程图如下:
图4 Grub4dos引导过程
与windows7的引导过程一样,BIOS->MBR->DPT->Pbr->Bootmgr->bcd。到此需要在bcd中配置两个引导:windows7和Grub4dos。启动windows7的过程与前面所述一致,启动Grub4dos后,装载Grub4dos,产生引导菜单,可引导windows7和ubuntu,引导菜单的配置由menu.lst指定,menu.lst放置在sda2中。这样不破坏windows7的MBR,保持原系统的引导过程,比较安全。
这种方式最重要步骤是配置bcd,可以用bcdedit程序来设置,比较麻烦。这里介绍一个windows程序EasyBCD比较方便。EasyBCD 2.02下载地址:
http://neosmart.net/dl.php?id=1
windows7和ubuntu10.04双系统安装过程如下:
step1 :安装windows7,其过程再次不叙述。
step2: 安装ubuntu10.04,一个比较好的办法是制作USB安装盘,可以用UltraISO程序制作USB安装盘。当然也可以用光盘安装ubuntu。注意在安装ubuntu10.04过程中,在安装引导加载程序步骤时,不要按“高级”按钮,只要继续进行下去即可。据说这是ubuntu10.04的一个BUG,不知现在解决没有。
step3: 安装完ubuntu后,重启计算机,看到Grub2菜单后,选windows7,进入windows7运行环境。
step4: 运行EasyBCD2.02,按“Add New Entry”,选择NeoGrub,按下面的Configure,出现menu.lst,编辑Grub4dos启动菜单项。这里给出我的menu.lst
title Ubuntu Linux 2.6.32-24-generic-pae (Chinese mode)
root (hd0,7) # /dev/sda8
kernel /vmlinuz-2.6.32-24-generic-pae root=UUID=0c10efa6-fcbe-4993-ab58-9c171e3800e1 ro quiet splash
initrd /initrd.img-2.6.32-24-generic-pae
title Ubuntu Linux 2.6.32-24-generic-pae (Chinese recovery)
root (hd0,7)
kernel /vmlinuz-2.6.32-24-generic-pae root=UUID=0c10efa6-fcbe-4993-ab58-9c171e3800e1 ro single
initrd /initrd.img-2.6.32-24-generic-pae
title Grub2
root (hd0,7)
kernel /grub/core.img root=UUID=0c10efa6-fcbe-4993-ab58-9c171e3800e1 ro single
这里面有三个ubuntu选项,正常模式、修复模式和linux的Grub2,其中Grub2可以取消。
我的linux分区中,专门划分出引导分区 /boot,在第八分区(sda8),而在grub4dos中,这个分区是(hd0,7),内核是 vmlinuz-2.6.32-24-generic-pae,根文件的分区标识为=0c10efa6-fcbe-4993-ab58-9c171e3800e1,这可以从linux 分区 /boot/grub/grub.cfg文件中找到,初始化程序是initrd.img-2.6.32-24-generic-pae。内核与初始化程序都可以从/boot分区中找到。
同样地,title Grub2是加载Grub内核,内核放置在/boot/grub/core.img。
step5: 选Bootloader Setup,在BMR configuration options中选 Install the windowsVista/7 Bootloader to the MBR,按write MBR。其实这一步可以不做,这实际是写windows7的MBR到硬盘中,保证windows7的引导过程。
step6: 关闭EasyBCD,这样就给bcd配置了两个启动项,windows7和NeoGrub Bootloader。
step7: 重启计算机,看到EasyBCD产生的启动菜单,有两个选项:
windows7
NeoGrub Bootloader
当选择NeoGrub Bootloader后,加载Grub4dos,出现由menu.lst指定的选择菜单
Ubuntu Linux 2.6.32-24-generic-pae (Chinese mode)
Ubuntu Linux 2.6.32-24-generic-pae (Chinese recovery)
Grub2
至此,完成了windows7和ubuntu双系统安装。
你可以试着选择Grub2,就可以出现久违的linux Grub启动选择菜单,这是由linux中的grub.cfg文件指定的启动选项。当然这纯粹脱裤子放屁,我这里仅仅为了试验如何启动Grub2。
希望本文对同学们有所帮助。