预装win8.1 GPT+EFI ubuntu 双系统 图文过程

. 好吧,我很懒,这是搬运的~~~~~~~~~~~~~~~~~~~~这里出处http://tieba.baidu.com/p/2805772637

开篇首先说明两个问题


1、之所以搞了这么久,是因为Lenovo锁定了EFI启动的文件路径,ubuntu安装在EFI分区的文件会被直接无视。所以本文最后会提到替换efi文件,参考了(http://benyouhui.it168.com/thread-3141134-1-1.html),但是不完全一样。
2
Legacy方式安装的ubuntu不会在启动grub时挂载EFI分区,而windows 8的启动文件是在EFI分区里的,所以Legacy方式的ubuntu是不能引导EFI方式的Windows 8的。有的话请告诉我,谢谢!
BIOS设置

下面我们开始解决这个问题

     [b]关闭secure boot[/b]      这个是微软的验证,用于禁止其他操作系统的启动。虽然ubuntu 12.10开始支持secure boot,但是显然我手头的联想并没有更新License。如果不关闭secure boot,最终(已经安装ubuntu,并替换引导文件)会有下面这个华丽的界面。
  • Thinkpad启动时按F1(或者按Enter,再按F1),就可以进入BIOS。在Security下,找到secore boot,Disable就可以了。

  • 在Start选项下,默认UEFI Only,不用改,因为ubuntu就是EFI的。CSM Support是No,因为不用兼容Legacy。官网上说需要选Yes,但是我的机器上不用。

  1. 安装ubuntu
  • Windows下刻录ubuntu 13.10 64位(32位的不支持EFI)到USB里。我用的是UltraISO,可以下到绿色版。注意UltraISO直接打开ubuntu的iso文件可能不正常,会只有EFI分区,没有数据分区。解决办法是:a)在ubuntu的iso上点右键,打开方式,Image Mount什么的,也就是把这个iso加载成虚拟光驱。b)然后在UltraISO里面,选打开光驱,这样加载的就是正确的了。c)某个菜单下选“写入硬盘镜像”,写到USB里就行了。

  • 开机的时候按F12,打开Boot Menu,选USB HDD

  • 看到EFI模式的grub启动菜单,注意EFI模式的grub和Legacy的grub是不一样的。我们要用EFI模式的。
    EFI:

Legacy:

  • 选择Try ubuntu,这步是为了找到EFI分区到底是那个,已知的话可以直接选Install ubuntu。

  • 进入之后,打开gparted:

  • 这里看到,我的/dev/sda2是预装的EFI分区。特点:FAT32格式,Flags是boot

  • 怎么确认呢?打开terminal(Ctrl+Alt+t),像下面这样,建一个文件夹,把我的sda2挂载出来,然后用ls看到这个分区里面有BOOT,有EFI,说明确实是我的EFI分区。记住了,我的EFI分区是/dev/sda2,你需要确定你自己的。如果gparted识别了你的USB,那么你的硬盘可能会变成sdb。

  • 接着就打开Install Ubuntu,在下面这个页面,ubuntu问你怎么安装,请选Something else。

  • 关于分区注意:刚才那个EFI分区(我的是/dev/sda2),需要Use as:EFI boot partition,如果你的显示Type不是efi,需要点这个分区,点change,像下面这样修改。

  • 然后给ubuntu分配空间,主要有两部分:a)我的/dev/sda5,格式是ext4,挂载到 / 。这个首先要有freespace,然后点+,然后选大小(记得留swap的空间),选主分区,从起始点开始,选挂载到 / 。b)剩下的空间(4G-8G,一般不小于你的内存大小),新建一个swap分区(我的是sda7):选大小,选逻辑分区,从起始点开始,挂载到swap。

  • 三个条件:有efi,有 / ,有swap,就可以安装了。这里 / 下包含了/boot,/home,/opt等等,也有人为这几个单独建立分区,可以的,不过我建议等你懂了之后下次再试吧。

  1. 安装完之后,系统重启,一般来说会直接进入windows,就好像ubuntu不存在一样。原因如下:
  • Lenovo支持EFI,但是不支持自动检索可用的启动项,所以虽然EFI分区里面有ubuntu的启动项,但是会被无视。
  • 启动顺序:
    a)/EFI/Boot/LenovoBT.EFI,显示下面的logo:

b)/EFI/Boot/bootx64.efi,加载windows的boot loader
c)/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi,启动windows

  • 这样3步之后,完全没ubuntu什么事。所以我们要打断这个顺序。
  1. 再次用USB启动,Try ubuntu,打开terminal。
    a)创建这个文件夹:
    sudo mkdir /mnt/efi

b)挂载EFI分区(记得改成你自己的)到刚才的文件夹里:
sudo mount /dev/sda2 /mnt/efi

c)打开一个Administrator权限的文件管理器:
sudo nautilus /mnt/efi

d)打开EFI/Boot,看到里面有一个bootx64.efi,把它改名成bootx64.efi.old,以后不用它了

e)打开EFI/ubuntu,里面有一个grubx64.efi,这个是grub的启动文件,把它复制到刚才的EFI/Boot里面,改名成bootx64.efi,顶替Windows的loader。

  • 显然,这样开机的时候,加载bootx64.efi时,实际加载了grub,这样就不会直接进入windows了。
  1. 开机时看到了grub,但是里面没有windows 8。
  • 进入ubuntu,打开terminal,输入
    sudo update-grub2
  • 看到下面这样:
    neil@neil-ThinkPad-T440s:/boot/efi/EFI/Boot$ sudo update-grub2
    Generating grub.cfg …
    Found linux image: /boot/vmlinuz-3.11.0-12-generic
    Found initrd image: /boot/initrd.img-3.11.0-12-generic
    Found Windows Boot Manager on /dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi
    Adding boot menu entry for EFI firmware configuration
    done
  • 发现上面的windows boot manager直接被找到了。这也就是为什么之前替换了bootx64.efi,而不是bootmgfw.efi。我们需要留着bootmgfw.efi来启动windows。
  1. 到此,双系统已经可以正常工作了。EFI分区会自动挂载到/boot/efi下面,这样就是为什么EFI模式的ubuntu可以启动windows,而Legacy模式的ubuntu不能,因为Legacy模式的ubuntu不会挂载这个分区。
  • 如果有童鞋想要让windows在grub的第一位,可以这样打开grub的顺序文件夹:
    sudo nautilus /etc/grub.d/
  • 把 30_os-prober 改成 01_os-prober,‘01’可以是别的数字,只要是比header靠后,比其他考前就行。
  • 然后更新grub2:
    sudo update-grub2
  • 会发现Windows Boot Manager被排到前面了:
    neil@neil-ThinkPad-T440s:~$ sudo update-grub2
    Generating grub.cfg …
    Found Windows Boot Manager on /dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi
    Found linux image: /boot/vmlinuz-3.11.0-12-generic
    Found initrd image: /boot/initrd.img-3.11.0-12-generic
    Adding boot menu entry for EFI firmware configuration
    done

无图无真相!!

楼主你的图片被百度防盗链了

好吧,看不到的朋友去贴吧看吧TTlz是个很懒的人

“在Security下,找到secure boot,Disable就可以了。”

我们在装Ubuntu 14.04 时(从LiveUSB装设),已不必把secure boot停掉就可以装了。

实际上,在已有 “win8.1 GPT+EFI” 的电脑里,因为没有旧式BIOS只有4个主要分割区(primary partitions)的限制,在装Ubuntu + Win8 dual-boot时,反而更容易。:victory:

好吧,看到了,LZ无力吐槽了,论坛不知怎么我自己的图片传不上去(传上来了只是显示error),默认相册的引用不了,贴吧的被拼掉了TTTTTT之后再改吧

机器的bios的版本有区别,主要是EFi的写入的问题吧,以前出过一次问题,结果比较麻烦的恢复格式化的数据花了些时间,新版的还没试过