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引导)

Win8.1 + CentOS7 双系统 U盘安装--引导修复

添加后,重启,虽然出现了引导项,但是进去之后出现了grub 提示符

Win8.1 + CentOS7 双系统 U盘安装--引导修复

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 非常重要,否则将出现如下错误

Win8.1 + CentOS7 双系统 U盘安装--引导修复

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 ,如下,操作:

Win8.1 + CentOS7 双系统 U盘安装--引导修复

 

删除,其他不用的启动项,并修改名字

Win8.1 + CentOS7 双系统 U盘安装--引导修复


至此,引导修复已完成!!

 

 

Win8.1 + CentOS7 双系统 U盘安装--引导修复,布布扣,bubuko.com

Win8.1 + CentOS7 双系统 U盘安装--引导修复

上一篇:[转]window.showModalDialog以及window.open用法简介


下一篇:JPA @Query 映射自定义类型