安装完重启后,竟然没有引导!!!(难道是由于Windows 8在BIOS中使用了统一的 UEFI 接口??但是,Linux基金会早就宣布将会提供一种全新的 方式使用 UEFI Secure Boot选项安装Linux系统。她两可以和平共处啊)
本人对 UEFI 引导不太了解(UEFI boot 比 Legacy boot 要强大 ),只能另想办法了!!最终,决定采用 easyBCD 来引导 CentOS 7。
1、失败的尝试(收获巨大,得到了启动的方式)
第一次尝试中,以为只要简单的添加 grub2 的引导就行(CentOS 7采用了grub2引导)
1.1、尝试使用 grub命令,引导
注意:每个命令 与 后面参数之间都有一个空格,否则命令出错!!
a、先熟悉一下grub 的一些命令 grub>help
b、cat命令 查看文件内容
cat 指令是用来查看文件内容的,有时我们不知道Linux的/boot分区,以及/根分区所在的位置,要查看/etc/fstab的内容来得知, 这时,我们就要用到cat (hd[0-n],y)/etc/fstab 来获得这些内容;注意要学会用 tab 键命令补齐的功能;操作如下:
grub> cat ( 按tab 键会出来hd0或hd1之类的
grub> cat (hd0, 输入hd0,后 然后再按tab键;会出来分区之类的信息;如下:
Possible partitions are:
Partition num: 0, Filesystem type ntfs, partition type 0x07
Partition num: 2, Filesystem type is xfs, partition type 0x83
Partition num: 3, Filesystem type unknown, partition type 0x83
Partition num: 4, Filesystem type ntfs, partition type 0x07
Partition num: 5, Filesystem type unknown, partition type 0x82
grub> cat (hd0,2)/etc/fstab 选择 / 所在的分区(我是 2),回车,提示如下:/dev/hda3 swap swap defaults 0 0
/dev/hda4 / xfs defaults 0 1
查看/etc/fstab 中的内容,主要是为了查看Linux的 / 分区及 /boot 是否是独立的分区;如果没有/boot类似的行,证明/boot和 Linux的/处于同一个硬盘分区;(如果当初分区时,是自己指定的分区,可以忽略这一步)
注意:在安装CentOS时,如果选择的分区方案是LVM,那么 这里查看时,文件系统类型将是 unknown ,导致无法使用(其实文件系统为LVMPV,可使用其他工具查看,是grub 不认识么??不应该啊!)
d、root指令来指定/boot所在的分区
grub> root (hd0,2) 回车,提示如下:
Filesystem type is xfs, partition type 0x83
这个root (hd[0,n],y)是可以省略的,如果省略了,我们要在kerenl 命令中指定;
e、kernel指令来指定linux的内核,及root所在的分区
grub> kernel /boot/ 在这里按tab补齐,全列出 /boot 所有的文件,如下:
Possible files are: grub initrd-3.10.0-123.e17.x84_64.img vmlinuz-3.10.0-123.el7.x86_64 等kernel /boot/vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/sda3 ro quiet vga=791 回车,提示如下:
[Linux-bzImage, setup=0x1e00, size=0x18e473]
注意:vga=791 非常重要,否则将出现如下错误
root=/dev/sda3 是 / 所在的分区
如果 boot是独立分区的话(安装CentOS时,自动创建分区,默认就是独立的!)
grub> kernel (hd0,2)/boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/hda3 ro quiet vga=791
f、用initrd命令来指定initrd文件
grub> initrd /boot/init 在这里tab 来补齐;将出现 可能的文件,提示如下:
Possible files are: initramfs-3.10.0-123.el7.x86_64.img initramfs-3.10.0-123.el7.x86_64kdump.img
grub> initrd /boot/initramfs-3.10.0-123.el7.x86_64.img 选择后,回车,提示如下:
[Linux-initrd @ 0x2e1000, 0x10e685 bytes]
如果 /boot 是独立的一个分区,应该是如下样子的语法;比如下面的;
grub> initrd /init 在这里tab 来补齐;
grub> initrd /boot/initramfs-3.10.0-123.el7.x86_64.img
[Linux-initrd @ 0x2e1000, 0x10e685 bytes]注意:在 CentOS 7 中,initrd文件名不再是 initrd-3.10.0-123.e17.x86_64.img 而成了 initramfs-3.10.0-123.el7.x86_64.img
g、boot引导系统
grub> boot 回车,系统重启,则可以进入CentOS 7 了
注意:引导进入CentOS 7 后,还有部分配置,才可以正常使用 CentOS 7 !
2、完善启动项,成功引导
进入win8.1 ,打开 easyBCD ,如下,操作:
删除,其他不用的启动项,并修改名字
至此,引导修复已完成!!