(一)windows8.1的安装(已经预装好UEFI启动Win8.1的朋友可以直接下跳到Ubuntu的安装。)
首先我们还是按老办法,先规划好磁盘分区在开始安装系统。首先用PE启动你的电脑
使用PE自带的DG分区软件对硬盘进行分区操作。
建立或者转换成GPT分区表,DG软件会提示你是否建立ESP分区,勾选上,分区大小100~300随意(当然你也可以自己建立一个fat或者fat32格式的分区作为启动分区),勾选对齐到4096(4k对齐,固态硬盘都懂得,不是固态也勾选吧)然后确定。
先建立一个NTFS分区安装Windows,接下来按部就班的建立Linux分区以及交换空间
完整的分区图如上图,看看跟上一篇的MBR分区图有什么不同?多了两个小黑头对吧,这两个小黑头就是ESP启动分区和MSR保留分区。特别说明的是ESP分区只是一个FAT或者fat32格式分区,可以再分区表的任意位置,名字大小随意(100~3、500)都行,但是它对于UEFI系统的启动必不可少。
国际惯例还是重安装Win8.1开始,依旧选在原版镜像的U盘或者光盘安装。开机按Del,根据主板的不同开始UEFI模式(固态硬盘的同学AHCI记得开启来),保存然后重启。插入U盘或者光盘,开机按F11(或者其他根据主板不同而异)选择前面带UEFI_字样的启动选项。
安装没什么好说的愉快的一路NEXT。直到选择自定义安装。
Win安装程序读出了我们刚才分好的5个分区,选择30G的我们刚才规划的要安装Win8的分区,NEXT,又是愉快的等待,然后简单的设置,再次愉快的等待,差不多半小时到40分钟,Windows就算安装好了。
这样就算是在UEFI模式下装好了WIN8.1,打开磁盘管理,可以看到windows只读取了硬盘上的4个分区,并没有读取ESP分区,所以UEFI模式相对于BIOS模式是要安全很多,不会受到诸如以前恐怖的CIH病毒侵害的。
接下来,我们先不忙安装Ubuntu ,继续用PE启动电脑,来看看我们这个硬盘的ESP启动分区的情况(当然可以用windows自带的Diskpart命令来查看,并挂载,这里主要是面对新手朋友,所以还是图形见面直观大方)。
接下来,我们先不忙安装,先来看看我们的虚拟机,点开虚拟机设置-》固件,
我们可以看到UEFI模式安装好的win8.1在安装过程中自动的为UEFI控制添加了从文件Bootmgrfw.efi 启动。这个反映在实体机器上就是,你在UEFI模式下安装好WIN8.1的时候,按住启动选择,就只有Windows Boot Manager和你插入的其他启动设备选项了。如果没有其他设备,UEFI会快速的找到Bootmgrfw.efi启动windows。不会再出现原来按F11时候的选择,什么从光驱启动,从硬盘启动的选项了。更不会再找到Bootmgrfw.efi启动windows的情况下,继续去找Grub或者是其他什么传统启动助手软件,然后再通过软件,根据硬盘分区的启动信息,启动多系统选择。(另外,还需要说明的一点事,在GPT分区表上是不存在激活的当前分区这种说法的,因为UEFI启动系统只是找第一个FAT(fat32)分区,在分区中找到EFI文件夹和里面的启动信息就停止了,如果没找到继续找第二个FAT分区,当前设备没有就换下一个设备,以此类推)
说了这么多大概很多在UEFI模式下安装了Windows再安装Ubuntu系统的朋友会多少明白一点,为什么装好双系统,第一次进入了Grub,可以看到多重引导,但是一旦选择进入了Windows8.1,接下来,再重新启动就会直接进入Windows,不会再去启动Grub了吧。
我们再一次用PE启动电脑,现在我们读取到了ESP启动分区,即我标示的F盘(这个盘符是PE启动系统随机分配的)
打开这个F盘,看看里面的结构式是不是
/efi/boot/bootX64.efi
/efi/mircosoft/boot/ bootmgfw.efi
这样的文件结构吧。
这样我们就算不仅仅在UEFI模式下安装好了Win8.1,并且还大体明白了,Win8.1在UEFI模式下是怎么启动电脑的。接下来就是在UEFI模式安装Ubuntu了。
(二)UEFI模式安装Ubuntu
Unbuntu14.04的发行版ISO,已经支持UEFI模式安装了,所以,我们还是选择最简单的办法就是写到U盘或者是光盘安装,启动的时候照例选择有UEFI_前缀字样的启动项。因为安装过程跟上一篇BIOS+MBR的安装差不多,相同的地方我就不一一详细介绍了,只是针对不同的地方。
开始一路NEXT,到选择安装的时候仍然选择其他选项(这个很重要,建议以后折腾电脑的时候,均采取自定义,这样你才明白程序会对自己的电脑做些什么,做了些什么)。
接下来出现我们在上一篇安装里面说得比较详细的自定义安装界面,分区安排还是跟BIOS安装的时候差不多,只是多了两个分区而已(编号方法仍旧是/dev/sda12345)
值得注意的是,我们现在在选安装启动器的设备位置时,选择的是efi启动分区,在本例装就是/dev/sda1 不要遗漏数字1,这样就是把Ubuntu的EFI启动信息安装到我们的ESP启动分区上了,而且,Ubuntu很聪明小心谨慎,只是添加,不会去动微软大爷的原来的。
接下来又是愉快的NEXT,NEXT。。。大概20~30分钟的愉快等待,机器重启,进入熟悉的Grub界面,UEFI的双系统安装就算完成了!
当然到这里大多数的朋友都会遇到,用Grub启动到Ubuntu,愉快的玩耍了几下,然后再回到Windows再次愉快的LOL了两把或是其他神马,然后又想起了,去Ubuntu看看,结果再次启动电脑的时候,直接就进Windows了,微软大爷就是这么霸气。。。等下我们再来说怎么解决这个问题,现在还在等虚拟机装好Ubuntu。。。
同样,我们先不忙配置双启动,先再来看看装好双系统的的情况下的ESP启动分区的情况,启动装好的Ubuntu,打开文件管理器,点击计算机,进入/boot/efi目录, (ESP启动分区默认挂载到/boot/efi目录的)
看到没有,ESP分区根目录下面是不是比刚才装好WIN8.1的时候多了一个Ubuntu文件夹。
这样我们大概也明白了,安装玩UEFI模式的Ubuntu,安装程序会低调的在ESP启动分区的根目录下面添加一个自己的启动信息文件夹。
(三)配置refind管理UEFI下的双系统启动(ubuntu安装完就默认先启动ubuntu并使用grub2管理启动项了,只有不想用grub2或某些特殊主板一旦进入了WBM,就会自动清除固件上的其他引导,才需要此步。大多数情况不需要此步)
大概是由于微软大爷的霸气,UEFI双系统做好以后,进入了Win8.1就再也无法看见,引导Grub的界面了。好了现在接下来说说如何解决UEFI模式下,可以愉快的启动切换Win或者Ubuntu,我们可以采取用其他管理引导的方式,例如,Clover和refind,因为Clover是在OSX下配置引导安装的,我们就选择refind(这个可以到官网直接下载,目前的最新版本是0.83版实际上刚才有吧友在回复中提到了,可以使用refind)。那么我就来说说怎么使用refind配置双系统吧。首先下载refind包,解压后得到一个文件夹。
现在,我们需要用PE启动电脑(当然也可以直接使用Diskpart挂载ESP分区,为了方便新同学,直观的了解就直接使用PE了)打开我们安装好的双硬盘的ESP分区,首先完整备份EFI文件夹及文件夹里面的所有内容到一个你认为安全的地方然后打开EFI文件夹,现在你看到的结构内容是
/efi/boot
/efi/Microsoft
/efi/Unbuntu
现在,打开我们下载并解压好的refind-bin-0.83文件夹,选中其中的叫refind的文件夹,全部复制到ESP分区的根目录下面,下面是复制好的,ESP文件结构,如下图所示:
/efi/boot
/efi/Microsoft
/efi/Unbuntu
/efi/refind
现在,我们可以开始配置refind了,首先选择,Microsoft文件夹,随便改个名字,叫做Win81,然后把refind文件夹改名字为Microsoft,改好后的文件结构为:
/efi/boot
/efi/Microsoft
/efi/Ubuntu
/efi/Win81
现在我们进入win81文件夹,进入里面的Boot目录,全选所有的文件,拷贝到Win81中来,然后再删除掉Win81中的这个空的Boot目录。现在Win81的目录结构大体上就是
/efi/Win81/bootmgfw.efi(等等文件和语言文件夹)。
然后我们在进入那个假的Microsoft文件夹(实际上是我们的refind目录更改而来的),新建一个Boot文件夹,剪切原来该文件中的类容,到我们新建的这个Boot目录中来。完成后这个伪装的Mircosoft文件夹的结构为:
/efi/Mircosoft/boot/refind_x64.efi等文件及一些文件夹
选中其中的refind_x64.efi,文件更改名字为bootmgfw.efi,得到这里为止,大体工作就完成了,剩下来的就是改变配置菜单。这个等下再说,为了确保不出错,我们现在来看看修改好的ESP分区里面的文件结构:
/efi/Boot
/efi/Microsoft/boot
/efi/Win8.1
/efi/Ubuntu
确保你的文件结构如上面所示,并且在假Microsoft文件夹的Boot目录下面的refind_x64.efi已经更名为bootmgfw.efi。 现在剩下最后一步工作写refind的配置文件了,实际上下载的软件包里面,已经有写好的模板了(即名为refind.conf-sample),我们只需要更改其中的类容就可以安全的愉快的启动双系统了。
废话不多说,进入/efi/Mircosoft/bott目录,打开其中的refind.conf-sample文件,然后另存为refind.conf 。(打开方式可以选择写字板,这样可以看到清晰的分行和格式)
这是一个脚本文件,“# ”后的类容表示注释,我们仔细浏览这个文件找到下面这段:
这是一个refind为我们写好的定义的启动菜单脚本,启动菜单叫Ubuntu ,使用的启动文件为/efi/ubuntu/Grubx64.efi,另外加载的图标是icon/efi/refind/icons/os_linux.png
现在我们按照菜单指示的路径打开,发现Grubx64.efi,确实存在于我们的目录里面保持不变,
但是图标路径发生了变化,这个原来写好的refind目录已经变为Microsoft/boot了,所以我们更改下这个菜单图标路径为 /efi/Microsoft/boot/icons/os_Ubuntu.png (其实icons目录下面已经有了Linux各种发行版的图标了,所以我直接改成了Ubuntu的)
改好的Ubuntu菜单脚本:
menuentry Ubuntu {
loader/EFI/ubuntu/grubx64.efi
icon/EFI/Microsoft/Boot/icons/os_ubuntu.png
disabled
}
然后再继续找到下面字段,也就是WINDOWS的菜单脚本
这段代码写的win7 ,我们可以更改为Win8.1,按照我们自己的ESP分区的目录结构,修改好windows菜单脚本,修改好的菜单脚本如下:
menuentry "Windows 8.1" {
loader\EFI\Win81\bootmgfw.efi
icon/EFI/Microsoft/Boot/icons/os_win.png ///这里我添加了图标路径
disabled
}
这样我们就弄好了我们双系统的引导菜单,但是refind的功能远不止于此,实际模板提供了包括OSX在内的菜单引导脚本,由于我们电脑上只有Win8.1和Ubuntu,那么我们就把其他模板禁用了以保证我们的启动菜单清清爽爽(直接在不需要的菜单引导脚本前面加上“#”就可以了)
好了,保存退出,大功告成了。 然后进入BIOS,设置windows启动顺序为第一位。
总算写完了,最后发一张喜闻乐见的refind引导开机图片!
这样,就可以愉快的在UEFI模式下,愉快的使用Windows+Ubuntu双系统了。另外提醒下大家,在刚才 的工作做完以后记得保存ESP分区下面的EFI文件夹到安全的目录里面去。