您的位置:首页 > 运维架构 > Linux

Windows 7下硬盘安装CentOS 7,BCD引导双系统

2014-07-20 13:16 696 查看
CentOS 7发布了,由于内核和GNOME都有大版本升级,因此本人也升级体验一把。其中过程略有曲折,记录一下,以为后鉴。
一、关于系统引导过程

这次装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)位于硬盘第一个扇区,[u]共512个字节。首先是引导程序,大小446字节。紧随其后的是DPT(Disk Partition Table),大小64字节。最后是Magic Number,2个字节,固定为“55AA”。[/u]

好在以前准备了一个移动硬盘,并配置了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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: