在部分使用GPT硬盘并启用(U)EFI模式已安装Windows 8/Server2012的计算机上,在未分配空间追加安装Ubuntu操作系统时(12.04.2和12.10以后的64位版本支持EFI),可能发生 Ubuntu安装后无法实现Grub引导Ubuntu启动的问题。 这种情况发生时,我们可以利用LiveCD模式进行处理,从而实现双启动。但是这必须破坏Windows原有的启动引导来完成,尚不清楚这是否违反微软的用户协议,但为了解决Ubuntu启动的问题,暂时仅能这样处理了。 在UEFI模式下,在GPT硬盘(GPT硬盘对分区有特别要求,但只要使用支持GPT的新系统安装包重新分区一般可以解决)分区情况一例如下:
/dev/sda1 (恢复分区)
/dev/sda2 efi (boot分区)
/dev/sda3
/dev/sda4 Windows
/dev/sda5 /boot
/dev/sda6 /
/dev/sda7 linux-swap
在使用Ubuntu可引导安装介质照常安装完Ubuntu(启动引导器放在/dev/sda,若放在他处可能需要根据需 要改变下面的操作步骤)后,我们挂载/dev/sda2会发现在该分区中,Ubuntu已经将自己的EFI启动文件grubx64.efi写入了 ubuntu目录中,但仍然仅有Windows可以启动。部分网上的方案是使用EasyBCD 2.2进行处理,虽然该版本自称可以支持EFI,但事实并非如此,请直接略过该软件。在/dev/sda2分区中,我们可以发现共有三个文件 夹:Boot、Microsoft、ubuntu,下面为了能够让ubuntu顺利启动,我们要用先重命名Windows本身的efi文件并用 ubuntu的efi文件将其替换掉。
以上就是我们的思路,下面是利用LiveCD启动并进入Try Ubuntu(试用)后的终端处理步骤(#后为注释):
sudo -i #提权 mkdir /mnt/temp #新建挂载目录 mount /dev/sda2 /mnt/temp #挂载efi分区,根据实际情况选择sda的分区号 cd /mnt/temp/EFI/Microsoft/Boot/ #进入Windows启动文件所在目录 cp bootmgfw.efi win.efi #备份Windows启动引导文件 cd ../.. cp ubuntu/grubx64.efi Microsoft/Boot/bootmgfw.efi #用ubuntu启动文件替换掉Windows引导文件 exit
此时,重启移除引导设备,你应该就可以看到Grub启动菜单了,即使你看到了Windows启动菜单,请不要选 择,ubuntu生成的那个启动项并不能真正的启动Windows 8以及更新的操作系统,因为这些新系统的启动方式已经变动,而ubuntu仍然使用了旧的方法生成Windows启动项。选择ubuntu系统进入,然后 提权编辑/etc/grub.d/40_custom文件,在文件尾部追加以下几行:
menuentry "Windows 8" { #引号内的内容随便填,总之就是新启动条目的名字 insmod part_gpt insmod ntfs set root='(hd0,gpt2)' #这里的GPT2的2就是efi分区的sda编号 chainloader /EFI/Microsoft/Boot/win.efi #这里指定我们先前备份的Windows引导文件 }
在终端中执行sudo update-grub即可更新启动菜单。重新启动后,Windows的系统时间可能发生问题,采用太平洋时间而不是东八区,这时需要在/etc /default/grub中将UTC=yes改为UTC=no。之后,重新启动你就会看到支持双启动的Grub菜单。
如果是更多重启动,也可采用类似方式进行编辑。
本文出自:http://xsk.tehon.org/den/index.php/category/tech/uefi-gpt-win8-ubuntu.html

获取更多建站运营运维新知!互联网创业、前沿技术......
最新评论
感谢分享,谢谢站长!!@天天下载
求同型号
能别用城通吗,缺钱缺这样啊
你好,请问有华硕ac68U可以使用的版本吗
xiaomi mini 是什么架构阿 是mipsel_24kc架构ma