Win7下硬盘安装CentOS,实现双系统

  花了一天时间,终于在老本上折腾好了Win7+CentOS的双系统,记录一下安装步骤。

  • Win7下的分区设置

  在Win7中利用分区助手从F:中划出30G自由空间,再将30G中的10G建立新分区I:格式为FAT32,还剩余20G自由空间。其中10G的I盘用于存放硬盘安装CentOS所需的镜像文件,20G的自由空间即为Linux所分硬盘大小,可根据需要自行调整。

  • 硬盘安装的准备工作

  将CentOS的镜像文件即CentOS-6.3-i386-bin-DVD1.iso拷贝至I盘,并用WinRAR打开CentOS-6.3-i386-bin-DVD1.iso将其中image文件夹和ioslinux文件夹中的vmlinuz、initrd.img文件解压到I:分区。

  下载wingrub工具选择工具栏中Tools->Partiton List,查找并记录刚才创建的分区I的Name,格式应为(hd0,X),我的为(hd0,7)。

  下载EasyBCD创建多重启动,添加新条目->NeoGrub->安装

  再选择配置,进入menu.lst编辑。将如下代码复制到menu.lst

title install CentOS6.3
kernel (hd0,7)/vmlinuz
initrd (hd0,7)/initrd.img

其中(hd0,7)即为之前记录I:的值。保存退出,至此硬盘准备工作完成。

  • 硬盘安装

  重启,选择NeoGrub Boot loader启动项进入CentOS的安装。

  在选择安装路径时,选择/dev/sdaY,其中Y=X+1,X即为刚才记录的(hd0,X)。这是因为(hd0,X)为grub中的硬盘分区编号,从0开始;/dev/sdaY为Linux中设备文件名,从1开始。所以我这应为/dev/sda8。

  一路安装至CentOS分区设置,选择Create Custom Layout。选择sda8下面的空闲空间,即之前预留20G的自由空间,分1G为swap,其余为ext4格式的根分区/。

  之后选择引导加载程序(boot loader)的安装位置,应安装在MBR中。在下方操作系统列表中,应有一项为Other即为Win7系统,可编辑名称为Windows7,并根据需要选择默认操作系统。

  之后按照说明完成剩余步骤,此时Win7+CentOS双系统安装完成。

  • 清理工作

  重启,此时MBR中已经为CentOS的引导装载程序grub,可选择进入Win7或者CentOS。进入Win7,在EasyBCD中删除之前创建的启动安装项NeoGrub Boot loader。

  至此,整个安装及清理已经完成,但我选择将删除安装时划分出来的I:并将其合并至F:,这一操作导致分区表发生变化:

  操作前 操作后
C:(Windows7引导程序所在分区) (hd0,0) (hd0,0)
Extended分区(包括D、E、F盘) (hd0,1) (hd0,3)
swap (hd0,2) (hd0,1)
/(CentOS引导程序所在分区) (hd0,3) (hd0,2)

但grub的配置文件menu.lst中仍为操作前的分区情况:

default=1
timeout=5
splashimage=(hd0,3)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-279.el6.i686)
    root (hd0,3)
    kernel /boot/vmlinuz-2.6.32-279.el6.i686 ro root=UUID=70499906-706d-4bc1-ac59-8202b9efb98c rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
    initrd /boot/initramfs-2.6.32-279.el6.i686.img
title Windows7
    rootnoverify (hd0,0)
    chainloader +1

使得开机时,只能进入grub shell环境,无法进行操作系统各自引导加载程序的选择。只能使用grub命令手动进入操作系统再进行配置:

#进入Windows7
grub> root (hd0,0)
grub> makeactive
grub> chainloader +1
grub> boot


#进入CentOS
grub> root (hd0,2)
grub> kernel /boot/vmlinuz[tab] ro root=/dev/sda3 rhgb quiet
grub> initrd /boot/ininramfs[tab].img

进入CentOS后配置/boot/grub/menu.lst:

default=1
timeout=5
splashimage=(hd0,2)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-279.el6.i686)
    root (hd0,2)
    kernel /boot/vmlinuz-2.6.32-279.el6.i686 ro root=UUID=70499906-706d-4bc1-ac59-8202b9efb98c rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
    initrd /boot/initramfs-2.6.32-279.el6.i686.img
title Windows7
    rootnoverify (hd0,0)
    chainloader +1

并在终端中恢复grub:

sudo grub                               
find /boot/grub/stage1
root (hdX,Y)
setup (hdX)
quit

 

  • 参考资料

  Win7下硬盘安装Linux(http://hi.baidu.com/sf_chipan/item/59c3272d425bf72e43634a6b)

  删除Linux与恢复grub(http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=65991)

     

posted @ 2013-08-02 10:49  JimMoriarty  阅读(4227)  评论(0编辑  收藏  举报