一、关于系统引导过程
这次装CentOS 7反复了几次。第一次安装,在硬盘配置时,选择了”不安装boot loader“,结果重启后只能进win7,不知道怎么引导进入CentOS(后面搞懂了方法)。于是重装,选择安装boot loader,由于没有可以将grub2安装到/boot分区的选项,boot loader(即grub2)默认被安装到了硬盘MBR中,这次可以由grub2引导进入CentOS和Windows了。由于机器是ThinkPad,不想破坏ThinkVantage键的“一键还原”功能,也就是不能破坏原来的MBR,因此尝试恢复MBR,将备份的512字节恢复,结果将MBR和DPT都恢复了,导致DPT与实际分区不符,最后Windows和CentOS都无法引导。
MBR(Mater Boot Record)位于硬盘第一个扇区,共512个字节。首先是引导程序,大小446字节。紧随其后的是DPT(Disk Partition Table),大小64字节。最后是Magic Number,2个字节,固定为“55AA”。
好在以前准备了一个移动硬盘,并配置了WinRE和WinPE系统。于是从WinPE系统启动,尝试修复分区表,成功!但系统仍不能引导成功。然后进行最重要的活动:备份重要数据到移动硬盘。最后从WinRE系统启动,利用RNR恢复整个硬盘到出厂状态,等同于ThinkVantage键的“一键还原”。恢复完,电脑回到了只有Win7的状态,下载grub2win工具,制作硬盘安装CentOS的启动项。
用bcdedit命令将grub2win加入BCD菜单。将CentOS 7的ISO文件放在单独为其创建的FAT32分区中(/dev/sda6),提取出其中的images文件夹和vmlinuz、initrd.img文件放在根目录下。在grub2win的配置文件grub.conf中加入CentOS 7的启动项,关键参数如下:
set root=(hd0,6)
linux /vmlinuz linux repo=hd:/dev/sda6:/
initrd /initrd.img
重启,选择grub2win菜单,开始安装CentOS 7。
二、安装过程中的注意事项
安装开始需要配置磁盘分区,为了保留原MBR,在整个磁盘的选项中,选择“不安装boot loader”。
分配磁盘分区时,给boot单独分区,文件系统选择ext4,不能选xfs,因为xfs不允许安装boot loader。待安装完成后,有以下2种方法可以安装CentOS 7的启动管理程序grub2到/boot分区(/dev/sda7)中:
1.安装完成后,先不重启,按Ctrl + Alt + F2进入命令行控制台,执行grub2-install安装grub2。(未试验)
2.安装完重启,进入grub2win菜单,按c进入grub2命令编辑模式,输入以下命令启动CentOS 7系统,*号处根据实际版本而定,输入时可按Tab键查看可选项:
set root=(hd0,7) //此处的root指的是/boot分区,如果你有单独分区的话。
linux /vmlinuz-3* root=/dev/mapper/centos-root dolvm ro //这一部分的写法很重要,其中根分区/dev/mapper/centos-root是LVM的逻辑分区。
initrd /initramfs-3*.img
boot,启动CentOS,完成初次使用配置后,打开terminal,用root用户执行
grub2-install --force /dev/sda7,将grub2安装到/boot分区。
grub2-mkconfig -o /boot/grub2/grub.cfg
三、配置双启动
为了通过BCD菜单启动CentOS 7,需要将/boot分区的grub2加入到BCD中,先将/boot分区的引导扇区,即头512个字节导出到文件CentOS.bin:
dd if=/dev/sda7 of=CentOS.bin bs=512 count=1
将CentOS.bin拷贝到Windows系统分区,最好放C:盘。用bcdedit命令将CentOS.bin加入到BCD中:
bcdedit /create /d “CentOS 7” /application bootsector //这里会返回一个{ID}
bcdedit /set {ID} device partition=c:
bcdedit /set {ID} path \CentOS.bin
bcdedit /displayorder {ID} /addlast
bcdedit /timeout 10
重启,选择“CentOS 7”就能进入CentOS了。万事OK!