花了一天時間,終於在老本上折騰好了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)