一、准备工具
CentOS安装包:从CentOS官网CentOS-7.0-1406-x86_64-DVD.iso,下载这个32位、64位通用安装包
EasyBCD:这个工具在这里用于在Windows下添加Linux的Grub安装引导程序
PartAssist:这个工具在这里主要用于在Windows下进行分区的修改
Ext2Fsd:这个工具在这里主要用于在Windows读写EXT2/3文件分区系统
WinGrub:这个工具在这里主要用于查看Windows下的分区表
UltraISO:这个工具在这里主要用于提取CentOS.ISO里的文件
一个8G左右的U盘,(u盘可有也可以不用)
二、准备工作
使用UltraISO提取出CentOS.ISO镜像文件里isolinux目录下的vmlinuz、initrd.img,并把这两个文件放到C盘根目录下(即直接放在C下,不要放在任何文件夹内)
如果有U盘可以使用PartAssist这个工具将U盘格式化为Ext3(因为Linux不能认识NTFS文件系统,fat32又不能装大于4G的文件),如果没有U盘就只有在硬盘上分出一个5G左右的空间并也格式化Ext3
完成上面的步骤之后打开Ext2Fsd(因为Windows不能识别Ext3文件系统)这个软件查看大小和刚刚分的大小相同的分区(文件系统为Ext3),在这个分区上右击鼠标,在点击配置系统文件,这样就把这个分区添加到Windows里了,打开我的电脑就可以看到刚刚分的这个分区了,把之前下载好的CentOS.ISO镜像文件复制到这个分区里面
在使用PartAssist这个工具在硬盘里分出一个大小为30GB左右的空间出来(根据个人情况)格式化为fat32,完成之后把这个分区删除掉
使用WinGrub工具查看Windows的分区表:打开这个软件后单击“工具”然后单击“分区列表”,记下C盘和刚刚放了CentOS.ISO镜像文件的盘符(因为C盘里放了vmlinuz、initrd.img这两个文件)
使用EasyBCD,添加Linux的安装引导Grub程序:打开这个软件后,点击“添加新条目”,然后点击NeoGrub,点击安装,点击配置,在 menu.lst记事本中,添加下面三行的引导项:
title CentOS7
kernel (hd0,0)/vmlinuz linux repo=hd:/dev/sda8:/ (这里的(hd0,0)表示的是放置vmlinuz这个文件的位置,这里的sda8,根据具体情况,他表示的是CentOS.ISO镜像文件所放的磁盘,就是前面用用WinGrub工具所查看的,比如查看到的放CentOS.ISO镜像文件的盘符为:(hd0,7),那么repo就因该为:repo=hd:/dev/sda7+1:/也就是repo=hd:/dev/sda8:/(至于为啥要多加一原因不解释)),如果前面使用的是U盘则repo就因该为:repo=hd:/dev/sdb1:/
initrd (hd0,0)/initrd.img
三、重启开始安装
重启电脑后会出现win7和CentOS7两个引导项,选择CentOS7这个开始安装,可根安装向导的步骤进行即可,安装过程可以参考这篇文章
四、添加Windows引导
安装完成后开机将看不到win7这个引导项,这时可以在开机选择系统的界面按C,进入Grub2,进入后在命令行下输入“ls –l”命令查看Windows7的位置,可以看到Windows7的位置是(hd0,msdos1),记下这个位置,以备下面的步骤使用
在终端里输入reboot后重启电脑进入ContOS7,用root账号登录,进入CentOS中/boot/grub2这个文件夹双击修改grub.cfg这个文件,添加Windows7的引导项,命令如下:
在### END /etc/grub.d/00_header ###之后添加如下的指令:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 7 ' {
insmod chain insmod ntfs
set root=(hd0,msdos1)
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
或者添加
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 7 ' {
insmod chain insmod ntfs
search -f /ntldr --set root
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
再次重启进入CentOS,配置默认引导项为win10:
# grub2-set-default 'Windows 7'
验证默认启动项:# grub2-editenv list
输出: saved_entry=Windows 7
经过上面的设置后,重启CentOS,就可以看到在系统引导项中,有“Windows 7 ”的引导项,选择进去,如果出现了之前安装CentOS时的引导项CentOS7,说明在Windows7基础上安装CentOS7, CentOS7的Grub2没有覆盖Windows7的引导项。进入Windows后,用EasyBCD删除掉添加的CentOS安装引导项即可。