在Centos7中配置grub2引导windows8启动,实现双系统启动
前言
自己在自己的笔记本上,除了自带的windows8系统,然后又安装了一个centos7系统,但是后来发现如果从windows启动就不能启动centos7,如果启动了centos7就无法启动windows,于是上网查了查,发现可以配置grub2来实现双系统引导,这样每次就可以自己选择启动哪个系统了,很方便。下面是具体的操作步骤。
Linux GRUB2 简介
GRUB 来自 GRand Unified Bootloader
的缩写。它的功能是在启动时从 BIOS 接管掌控、加载自身、加载 Linux 内核到内存,然后再把执行权交给内核。一旦内核开始掌控,GRUB 就完成了它的任务,也就不再需要了。
具体配置方法
第一种方法:直接在boot/grub2/grub.cfg
中找到
### BEGIN /etc/grub.d/30_os-prober ###
在后面添加
menuentry 'Windows8'{
insmod ntfs
set root=(hd1,1)
chainloader +1
}
如果不清楚windows安装在哪的话可以使用fdisk -l
查看,比如我就是安装在了C盘,这是我的显示:
磁盘 /dev/sda:500.1 GB, 500107862016 字节,976773168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:dos
磁盘标识符:0x00080e4a
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 104861695 52429824 7 HPFS/NTFS/exFAT
/dev/sda2 104861696 976773119 435955712 f W95 Ext'd (LBA)
/dev/sda5 104863744 541073407 218104832 7 HPFS/NTFS/exFAT
/dev/sda6 541075456 976773119 217848832 7 HPFS/NTFS/exFAT
磁盘 /dev/sdb:24.0 GB, 24015495168 字节,46905264 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000cf9f8
设备 Boot Start End Blocks Id System
/dev/sdb1 * 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 46903295 22402048 8e Linux LVM
磁盘 /dev/mapper/centos-root:20.5 GB, 20535312384 字节,40108032 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:2403 MB, 2403336192 字节,4694016 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
虽然在boot界面的我的centos是在hd1
盘上,但是我把它作为了启动盘,就变成了hd0
,所以此处我的windows的盘就变成了hd1
这里有个问题,这个文件是不推荐直接手动改的,因为系统更新会执行grub更新操作,这个文件就会被刷新,添加的内容就没了,所以推荐第二种方法,在etc/grub.d/40_customer
修改:
#!/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 'Windows8'{
insmod ntfs
set root=(hd1,1)
chainloader +1
}
就是前面提到的那个内容,实际上应该是在这个模板文件里输入,再刷进boot下的文件里,使用命令:
grub2-mkconfig -o /boot/grub2/grub.cfg
查看cat /boot/grub2/grub.cfg
...
### BEGIN /etc/grub.d/40_custom ###
# 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 'Windows8'{
insmod ntfs
set root=(hd1,1)
chainloader +1
}
### END /etc/grub.d/40_custom ###
...
然后重启你的电脑,就可以看到你的启动项里成功地多了一个windows的引导项: