故障原因
先安装的Windows,安装CentOS7后无法引导Windows
解决方案
因为CentOS 7已采用新式的grub2系统,所以需要进入/boot/grub2目录后使用vi编辑grub.cfg文件。
方法一:修改Centos 7的Grub2引导,添加Windows的启动项
终端输入
sudo vi /boot/grub2/grub.cfg
找到 ### BEGIN /etc/grub.d/30_os-prober ###
在后面添加
menuentry "Windows" {
insmod ntfs
set root=(hd0,1) #由于我的windows安装在硬盘的C盘,故(hd0,1)
chainloader +1
}
备注:
vi命令使用方法:按【i】进入插入模式;编辑文档后,按【esc】退出编辑模式;输入【:wq】保存并退出
如果想默认启动Windows系统,顺便可以把
else
set default=“${next_entry}”
改成
else
set default=2 #0是第一个,2代表第三个
方法二:系统自动检测是否有其他系统
直接修改grub的配置文件 /boot/grub2/grub.cfg 。但是看到里面有警告:不要编辑这个文件,他是通过grub2-mkconfig 使用配置文件模版和设置自动生成的,系统执行grub2-mkconfig之后修改的配置就会失效。因此可以通过下边的命令自动识别,但是可能存在不认识磁盘的问题。
grub2-mkconfig -o /boot/grub2/grub.cfg
Linux只能认识Ext3/4,fat32格式,如果Windows是NTFS格式磁盘分区,Grub2将无法识别。
也可以通过修改模版文件,然后执行 grub2-mkconfig 自动重建grub2引导。
sudo vi /etc/grub.d/40_custom
修改为:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry 'Windows7'{
set root=(hd0,1)
chainloader +1
}
然后运行
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot