• 云途科技成立于2010年 - 专注全球跨境电商服务器租赁托管!
  • 帮助中心

    您可以通过下方搜索框快速查找您想知道的问题

    预装win8 centos 双系统 双硬盘 efi 启动

      in  unix      Tags: 

    刚买的thinkpad t430u 64位的笔记本,发现装linux是一件非常麻烦的事,以前装个linux系统,配置双启,1个小时就能搞定,而这一次我连装CentOS6.4带配置双启,花了三个星期。双启后成功后又装了arch,现在笔记本是三系统,三周的时间里,笔记本重启不下300次。我也不知道能不能成功,所以事先,并没有做详细的笔记。所以下面,只是大致的记录。注意,在实际操作前,一定要把这篇博客好好看几遍,理解清楚,在操作。

    一,关闭secure boot

    开机按F1进入bios=>security=>secure boot

    笔记本不同,可能secure boot的配置不同,将其disabled掉,要不然,选择U盘启动,光盘启动都无效,报没有权限。

    二,bios里面配置启动项,默认efi only,改为both

    bios=>startup=>uefi/legacy boot

    启动优先级里面有三个选择,

    1,efi only(注释:默认)
    2,both (注释:二种方式都可以)
    3,legacy only(注释:grub1)

    这里说的启动根选择U盘启动,光盘启动不一样。这里的启动是,多系统安装好了,而选择的启动模式。而U盘启动,光盘启动这种情况是系统还没有装时选择的安装启动。我的本子,按F12可以选择U盘启动,或者光盘启动。

    为什么要进行这一步,如果不改,默认是装在第二块硬盘上面的,也就是efi的默认启动盘,安装CentOS时:

    win8装centos

    win8装CentOS

    根本没有“更换设置”这个按钮,并且引导程序只能安装在/dev/sda2上面,选中的情况下,CentOS6.4 64位,根本安装不成功,所有包安装完后,配置时提示报错,

    an unhandled exception has occurred.this is most likely a bug.plese copy the full text of this exeception and file a detailed bug report.against anaconda at http://bug.centos.org/

    让提交bug到centos,这个有点坑爹。

    将efi only改成both后,重新安装,“更换设置”就会出现,并把引导程序装到centos所在的分区,这样centos可以顺利装完,怎么安装网上太多,在这儿就不哆嗦了。

    三,用easybcd和纯grub1实现双启都不可能

    用easybcd和纯grub1实现双启根本不可能,大家就不要浪费时间了。网上有说easybcd2.2可以实现,我试过无数次不行。

    在启动优先级里面选择,legacy only,保存重启,久违的centos界面出现了,那叫一个激动。下方向键选择others,windows进不去。总之还是有点高兴的,centos装成功了,我信心大增,通过grub1,我想能启动win8,然后我就开始尝试用grub1启动win8,又试了不知道多少次不行。我想完全靠grub1启动是不可能了

    四,用centos自带的efi实现双启,或者是多启,这一块是本文的重点,希望大家能理解我的思路。

    1,启动优先级里面,选择legacy only,进入到centos

    2,下载三个文件,BOOTX64.conf  BOOTX64.efi  splash.xpm.gz

    http://mirrors.163.com/centos/6.4/os/x86_64/EFI/BOOT/    或者是从iso镜像中解压也行。

    3,挂载efi的启动盘

    mkdir /mnt/usb
    mount /dev/sda2 /mnt/usb
    cd /mnt/usb
    mkdir image
    cp /boot/initramfs-2.6.32-358.el6.x86_64.img ./image/initrd.img
    cp /boot/vmlinuz-2.6.32-358.el6.x86_64 ./image/vmlinuz

    在efi启动盘的根目录也就是/dev/sda2上面,建一个image文件夹,把装好的cenots内核考过来,我为什么要这么干呢,因为BOOTX64.conf这个文件就是这么干的。

    [root@localhost image]# ll /mnt/usb/image/
    总用量 26812
    -rwxr-xr-x. 1 root root 16532286 6月   1 18:11 initrd.img
    -rwxr-xr-x. 1 root root  3089184 6月   1 19:11 initrd.img-arch    //这是arch的,装了三系统
    -rwxr-xr-x. 1 root root  4043888 6月   1 18:10 vmlinuz
    -rwxr-xr-x. 1 root root  3778496 6月   1 19:10 vmlinuz-arch       //这也是arch的,

    4,这一步建redhat目录是多余的,我是按照操作时候的步骤来写这篇博客的

    [root@localhost EFI]# mkdir /mnt/usb/EFI/redhat

    为什么要redhat,而不是centos呢,装好的centos,/boot/efi/EFI(注:这个目录在系统的boot下面,不在sda2上面),这个目录下就有redhat,后来我才知道,这个目录没用。

    将上面的三个文件BOOTX64.conf  BOOTX64.efi  splash.xpm.gz,copy到/mnt/usb/EFI/redhat目录下面

    看一下我的配置:

    [root@localhost redhat]# cat BOOTX64.conf
    #debug --graphics
    default=1
    #splashimage=/EFI/BOOT/splash.xpm.gz
    timeout=5
    #hiddenmenu
    title CentOS 6.4
     kernel /image/vmlinuz ro root=/dev/sda7
     initrd /image/initrd.img
    title Windows8
     chainloader /EFI/Microsoft/Boot/win8.efi
    title Archlinux
     kernel /image/vmlinuz-arch ro root=/dev/sda9
     initrd /image/initrd.img-arch

    上面的win8.efi是bootmgfw.efi的备份,后来我把bootmgfw.efi也替换了,下面会提到的,这东西启动win8用的。

    五,重启测试

    重启F1,进bios,把启动优先级设为efi only,保存重起进grub

    grub> configfile /efi/redhat/BOOTX64.conf

    注意:grub下面是小定的,linux系统下是大写的,最好是用tab键提示。然后三个启动选项就出现了,我选了一下,都是可以进的,那叫一个激动啊,离成功不远了。

    grub> chainloader /efi/Microsoft/Boot/win8.efi

    win8也是可以进的

    只要启动时能让EFI识别BOOTX64.conf这个文件,并读取,就搞这定了。

    然后我就开始把redhat这个目录到处copy,发现不行,我又把BOOTX64.conf  BOOTX64.efi  splash.xpm.gz,这三个文件到处copy,EFI下面的每个目录我都试了。不行。

    六,refind efi启动器

    没办法啊,就上google上面找efi启动工具,看了好多,发现The rEFInd Boot Manager还是比较靠谱的。

    下载地址:http://sourceforge.net/projects/refind/?source=dlp,这个是二进制版的。

    该工具官方地址:http://www.rodsbooks.com/refind/ ,下载,安装,以及使用说明都有。

    安装配置地址:http://www.rodsbooks.com/refind/installing.html#Linux

    下面是我的操作:

    cp -r refind /mnt/usb/EFI/
    cd /mnt/usb/EFI/refind
    rm -rf drivers_ia32
    rm -f refind_ia32.efi
    rm -rf tools_ia32

    [root@localhost boot]# ll /mnt/usb/EFI/refind/   //删除后就是这样子
    总用量 224
    drwxr-xr-x. 2 root root   4096 6月   1 17:52 drivers_x64
    drwxr-xr-x. 2 root root   8192 6月   1 17:52 icons
    -rwxr-xr-x. 1 root root  17774 6月   1 20:55 refind.conf
    -rwxr-xr-x. 1 root root  17911 6月   1 17:52 refind.conf-sample
    -rwxr-xr-x. 1 root root 170824 6月   1 17:52 refind_x64.efi
    drwxr-xr-x. 2 root root   4096 6月   1 17:52 tools_x64

    如果你是64的系统,就把32的删除掉,反之就删64的。

    mv refind.conf-sample refind.conf

    然后配置refind.conf,我的配置肯定不对,如果要对的话,直接是可以用refind进入centos,win8,arch的。而不是refind去调用grub来启动

    http://www.rodsbooks.com/refind/installing.html#Linux中的Installing rEFInd Manually Using Linux,安装方法中,6,7这二步,没敢做,我实在无法预测,efibootmgr -c -l \\EFI\\refind\\refind_x64.efi -L rEFInd,执行这个命令到底会有什么后果

    七,重启后,无法进入refind界面

    然后就在仔细阅读文件

    Rename EFI/BOOT/refind_x64.efi to the name of the boot loader it's replacing—it should become EFI/BOOT/bootx64.efi or EFI/Microsoft/Boot/bootmgfw.efi.

    发现有上面的东西,操作如下:

    [root@localhost EFI]# cp -r ./Microsoft/Boot/ ./Microsoft/Boot_bak
    [root@localhost EFI]# cp -r ./refind/* ./Microsoft/Boot/
    [root@localhost EFI]# cd ./Microsoft/Boot/
    [root@localhost Boot]# cp bootmgfw.efi win8.efi        //上面提到的win8.efi就是在这儿来的
    [root@localhost Boot]# mv refind_x64.efi bootmgfw.efi

    先把EFI/Microsoft/Boot/这个目录备份,这样我不管怎么配置Boot的目录,我可以还原,进WIN8绝对没问题。efi启动,会默认读取/EFI/Microsoft/Boot/bootmgfw.efi,我的机子是这样子的,规定死了。

    八,重启后,可以进入refind的引导界面,但是没有一个系统能进。

    refind配置不正确,无法进入任何一个系统,但是我发现refind的第二个引导项读取到了/grub/BOOTX64.conf,并且是默认的centos的BOOTX64.conf,grub是什么时候建的我都忘了,里面是下载的原始的centos的BOOTX64.conf  BOOTX64.efi  splash.xpm.gz

    [root@localhost refind]# cp /mnt/usb/EFI/redhat/* /mnt/usb/EFI/grub
    
    [root@localhost refind]# cd /mnt/usb/EFI/Microsoft/Boot/
    
    [root@localhost Boot]# vim refind.conf
    timeout 2
    default_selection 2   //将第二引导项调为默认

    知道refind读取哪个启动文件就好办了,把redhat下面已经配置好的文件copy到grub目录下就搞定了。

    就这样我的三系统启动搞定了,不过还有缺点,

    第一,引导是分二步的,首先是refind引导,然后refind调用BOOTX64.conf,在通过grub来引导,之后才能进入系统。
    第二,内核版本,是copy到了,efi的启动盘上面,升级内核,也用不了,除非在重新将内核copy到sda2上面。



    • 外贸虚拟主机

      1GB硬盘

      2个独立站点

      1000M带宽

      不限制流量

      美国外贸专用虚拟主机,cPanel面板,每天远程备份.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥180/年

    • 美国/荷兰外贸VPS

      2核CPU

      1G内存

      30硬盘

      10M带宽

      美国/荷兰外贸云服务器,专注外贸服务器行业12年.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥99/月

    • 全球外贸服务器

      8核CPU

      32G内存

      1TB硬盘

      1000M带宽

      已部署数据中心:美国洛杉矶/亚特兰大、荷兰、加拿大、英国伦敦、德国、拉脱维亚、瑞典、爱沙尼亚
      自有机柜(全球九大数据中心),稳定在线率:99.9%

      ¥999/月 原价1380

    7*24小时 在线提交工单

    如果您的问题没有得到解决,推荐您在线提交工单,我们的客服人员会第一时间为您解决问题

    展开