首页 > 代码库 > Win8.1 + CentOS7 双系统 U盘安装--引导修复
Win8.1 + CentOS7 双系统 U盘安装--引导修复
安装完重启后,竟然没有引导!!!(难道是由于Windows 8在BIOS中使用了统一的 UEFI 接口??但是,Linux基金会早就宣布将会提供一种全新的 方式使用 UEFI Secure Boot选项安装Linux系统。她两可以和平共处啊)
本人对 UEFI 引导不太了解(UEFI boot 比 Legacy boot 要强大 ),只能另想办法了!!最终,决定采用 easyBCD 来引导 CentOS 7。
1、失败的尝试(收获巨大,得到了启动的方式)
第一次尝试中,以为只要简单的添加 grub2 的引导就行(CentOS 7采用了grub2引导)
添加后,重启,虽然出现了引导项,但是进去之后出现了grub提示符
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 type0x07
Partition num:2, Filesystem type is xfs, partition type0x83
Partition num:3, Filesystem type unknown, partition type0x83
Partition num:4, Filesystem type ntfs, partition type0x07
Partition num:5, Filesystem type unknown, partition type0x82
grub> cat (hd0,2)/etc/fstab 选择/ 所在的分区(我是 2),回车,提示如下:/dev/hda3swap 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 type0x83
这个root(hd[0,n],y)是可以省略的,如果省略了,我们要在kerenl 命令中指定;
e、kernel指令来指定linux的内核,及root所在的分区
grub> kernel/boot/ 在这里按tab补齐,全列出 /boot 所有的文件,如下:
Possible files are: grubinitrd-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 quietvga=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 roquiet 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 了
注意:引导进入CentOS7 后,还有部分配置,才可以正常使用 CentOS 7 !
2、完善启动项,成功引导
进入win8.1 ,打开 easyBCD ,如下,操作:
删除,其他不用的启动项,并修改名字
至此,引导修复已完成!!