安装CentOS7前,我的PC是win7和CentOS6.5的双系统,使用GRUB引导启动。我在CentOS6.5中安装了很多应用软件和服务器软件,并重新编译了高版本的内核。但由于在按自己需求打造linux系统的过程中,犯了很多不能解决的错误,导致系统有些地方配置的不如人意。作为一个完美主义轻度患者,得知CentOS7发布后,就开始琢磨升级。
1. 首先尝试了在线升级的方法。参照http://wiki.centos.org/TipsAndTricks/CentOSUpgradeTool给出的教程,尝试之后未能成功。
2. 然后尝试通过硬盘安装的方式,这也是我安装CentOS6.5双系统时采用的方法。在win7系统环境下,具体步骤如下。
(1) 使用ext2Fsd软件读入linux分区
(2) 然后将CentOS-7.0-1406-x86_64-DVD.iso文件拷贝到linux分区的根目录下
(3) 将CentOS-7.0-1406-x86_64-DVD.iso解压,将解压文件夹中的isolinux和images复制到linux分区根目录下
(4)使用EasyBCD配置linux启动入口后重启计算机
(5) GRUB引导处选择win7启动后进入windows启动界面,再选择CentOS启动。
经过上面的步骤,本应进入CentOS7的安装界面。但实际上未能进入CentOS7的安装界面,而是出现了类如下面的错误。
dracut-initqueue[624]:Warning: Could not boot.
dracut-initqueue[624]:Warning: /dev/root does not exist.
Starting Dracut EmergencyShell…
Warning: /dev/root does not exist
经过搜索,发现使用在windows环境制作的启动盘安装时,也可能会出现相同的错误。可能是因为在windows环境下拷贝安装镜像CentOS-7.0-1406-x86_64-DVD.iso的时候发生了文件遗失。
3. 参照http://wiki.centos.org/HowTos/InstallFromUSBkey给出的教程在linux环境下制作USB启动盘安装。具体步骤如下。
(1) 将U盘(容量为8G)连接到电脑,在root权限下,使用
fdisk –l
命令查看U盘的设备号。需要注意,将要使用的是U盘的设备号(e.g./dev/sdb)而不是分区(e.g./dev/sdb1)。另外制作USB启动盘将会格式化U盘,使用前应对U盘进行备份。
(2)在root权限下,进入CentOS7镜像文件所在目录,使用下面命令制作USB启动盘。
ddbs=4M if=CentOS-7.0-1406-x86_64-DVD.iso of=/dev/sdb
其中bs参数可选,它只影响制作启动盘的速度。if参数指定输出文件。of参数指定输入装置,值为上一步中确认过的USB设备号。执行该命令前,需确定U盘处于unmount状态。根据计算机硬件水平,该过程可能需要10分钟或更多。
另外需要注意的是,成为启动盘后U盘的容量将变小许多,格式化也不能使其恢复。这是由于启动盘不能通过格式化释放的缘故。安装完成确定USB启动盘不再使用的时候,可以在win7环境的命令行模式下,使用diskpart工具进行容量恢复。
(3)保持USB启动盘连接状态,重启计算机,进入主板设置界面,设置BOOT启动优先级为移动设备最高后保存并重启计算机即可正常进入如下CentOS7的安装界面。选择Install CentOS 7后进入下一步。
(4) 然后在初始化设定页面进行必要的设定。点击相应的图标例如DATE& TIME, KEYBOARD和LANGUAGE SUPPORT等设定时间,将要使用的键盘和系统语言支持等。
其中INSTALLATIONSOURCE里保持默认的Auto-detected installation media不变。
其中SOFTWARESELECTION中根据需要选择待安装的工作环境。需要桌面环境的,可以选择GNOME或KDE,其中前者更适合入门用户;后者则相对华丽,接近windows的桌面。Add-ons软件也根据需要选择。这些软件及服务器环境都可以在将来的使用过程中进行安装,所以选择时候不必太过斟酌。
其中INSTALLATIONDESTINATION选定将要安装CentOS7系统的硬盘。选定硬盘并在分区设定处选择I willconfigure partitioning后单击左上角的 Done按钮,计入如下的分区设定界面。一般来说,只要设定 /分区和swap分区即可。
最后是网络设定,可以设定计算机的网络连接方式。
经过以上的步骤,就能正常完成CentOS7的安装了。重新启动,设置主板优先从硬盘启动,然后就能进入CentOS 7操作系统了。
4. 安装完成并重新启动后,由于原来的grub引导程序失效,系统默认进入CentOS而没有引导进入win7系统的入口。并且,CentOS7使用GRUB2管理启动引导程序,因此原来修改/etc/grub.conf的方式不能达到恢复win 7启动入口的目的。
启动时,可以使用grub命令行手动引导进入win7系统。系统启动进入下面的画面时,按键盘上c键进入grub命令行。使用ls命令查看所有硬盘装置,显示结果如下:
(hd0)(hd0, msdos6) (hd0, msdos5)...(hd0,msdos1) (hd1) (hd1,msdos1)
然后在grub命令行连续输入执行下面的命令,就能进入到win7系统了。
setroot=(hd0, msdos1)
chainloader+1
boot
上面三条命令中,set命令指定将要启动系统的分区,我的win7系统安装在第一块硬盘hd0的msdos1(即第一个分区)。第二条命令注意chainloader和参数之间必须有空格。第三条命令启动系统。
但是,我还是需要使用grub自动为win7系统提供入口。参考http://superuser.com/questions/781300/searching-for-grub-configuration-file-in-centos-7Adam C的解答,CentOS 7的grub启动配置文件路径为 /boot/grub2/grub.cfg。但是一般不通过修改上述文件来更改启动引导。可修改文件/etc/grub.d/40_custom,在其中添加如下内容:
menuentry"Windows 7"{
set root=‘(hd0, msdos1)‘
chainloader +1
}
然后执行如下命令。
grub2-mkconfig–output=/boot/grub2/grub.cfg
将自定义的系统启动文件反映到启动配置。再次重启计算机时,就能发现win7系统入口,并能正常进入win7系统了。
另外,可以通过修改 /etc/default/grub文件设定默认的启动系统(参数GRUB_DEFAULT),也可以修改等待选择启动的时间(参数GRUB_TIMEOUT)。
原文地址:http://blog.csdn.net/kleguan/article/details/39499931