作者:mobiledu2502853033 | 来源:互联网 | 2023-05-17 11:36
一、安装win7和centos7双系统1、从win7的硬盘中分出20G,用于安装centos7;分出的20G硬盘一定要在windows7的磁盘管理中对其“删除卷”,这样在安装centos7时才可识
一、安装win7和centos7双系统
1、 从win7的硬盘中分出20G,用于安装centos7;分出的20G硬盘一定要在windows7的磁盘管理中对其“删除卷”,这样在安装centos7时才可识别出这20G的硬盘,并将centos安装到这20G中,否则无法找到含有NTFS格式的20G硬盘。
2、 从centos官网下载CentOS-7-x86_64-DVD-1503-01.iso,用软碟通ultraiso将其写入8G U盘,将U盘制作成为启动盘。
3、 将U盘启动盘插入电脑,重启电脑,选择U盘启动,按部就班安装centos。
二、Grub2引导Win7
安装centos系统之后,重启电脑,会直接进入centos系统,而不会有win7的启动项。
这是因为安装centos时MBR中的存放引导代码的446字节写入了grub2的相关引导代码,它会直接引导启动安装centos的硬盘;而不会理睬安装win7的C盘,尽管C盘是启动盘、主分区,而且是活动的,grub2不予理睬。
这样就需要配置grub2引导启动windows7,grub2与grub有以下主要的区别
1、 支持核心动态加载功能,在运行时扩展自身,而非在构建时就有较大的体积,这使使grub2体积更小;
2、 分区编号发生变化:第一个分区是1而非0,但第一个设备仍然以0开始计数,如hd0;
3、引导启动项菜单不是在menu.ls中配置,而是存在于/boot/grub2/grub.cfg,但是grub.cfg并不需要编辑,如果需要添加启动项,在/etc/grub.d/40_custom中添加,然后执行命令"grub-mkconfig -o /boot/grub/grub.cfg"即可更新grub.cfg。
阅读grub.cfg文件时,发现引导centos的代码有这么几句:
insmod gzio
insmod part_msdos
insmod xfs
set root=’hd0,msdos9’// msdos9是/boot所在的分区
于是在40_custom中添加了如下代码:
Menuentry “windows 7 (loader)(on /dev/sda1)”{ //大括号必须在此
insmod ntfs
set root=’hd0,msdos1’
chainloader +1
}
注:在执行 “fdisk –l”命令时,C盘在centos被标记为/dev/sda1
然后执行命令
grub-mkconfig -o /boot/grub/grub.cfg,更新grub.cfg。
reboot重启系统,选择windows 7 (loader)(on /dev/sda1)启动项即可进入windows系统。
千万不要将hd0 写作hdo,我好像犯了这个伤心的错误。
续集
上面是以minimal的方式安装的centos,在之后,我又从新安装了KDE centos,按照上面的方法,却无法恢复windows的启动项。但是下面的方法其作用了:
1、yum install ntfs-3g;
2、grub2-mkconfig -o /boot/grub2/grub.cfg
输出:
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-229.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-670105607d644ae0ba1217e2cf4d300b
Found initrd image: /boot/initramfs-0-rescue-670105607d644ae0ba1217e2cf4d300b.img
Found Windows 7 (loader) on /dev/sda1
找到win7的启动项。