GPT时代硬盘安装_实测grub2win失败(不能将GPT切换为MBR的情况下)
确定预装Win8是使用UEFI+GPT方式,不用光驱,不用U盘,直接安装Ubuntu14.04.1 x64
Step1.下载grub2win(http://sourceforge.net/projects/grub2win/),解压到C盘根目录下,文件夹应该为grub2才行;
Step2.运行C:\grub2\grub2win.exe
Step3.在Win8.1里按住shift键点重启
Step4.选择其他操作系统
Step5.选择Grub 2 For Windows,无法进入Grub2
GPT时代硬盘安装思路(第一部)(菜鸟不要使用此方法)
预装Win8电脑不带光驱,且确定Win8建基于纯UEFI+GPT方式,且安装者手头上没有U盘,直接安装Ubuntu14.04.1 x64
根据ubuntu官档,EFI Bootloader只有三个,分别是ELILO、Grub2、Kernel EFI stub loader
另外,支持Chain loading的只有Grub2、rEFIt、rEFInd、Grub 0.97;支持Ext4的只有Grub2、rEFInd、Grub0.97;支持NTFS的只有Grub2。
于是,我决定选用Grub2硬盘安装
讲一下我的预装环境,安装的是正版Windows 8.1 update x64,请注意:当你建立一个50G分区的时候,微软会帮你建立四个分区(在真正的纯EFI模式)。
Step1:第一时间关闭Fast Startup快速启动。
Step2:下载ubuntu-14.04.1-desktop-amd64.iso,将其复制到C盘,Grub2理论支持NTFS,(为防止NTFS出现问题,我删除C盘后面的所有磁盘,建立一个2000MB的FAT格式分区,即D盘,并将ISO镜像也复制到这里)。
Step3:安装前,通过傲梅分区助手,可以看到C盘排第4,FAT格式的D盘排第5,(排第几不能通过微软自带的磁盘管理查看,因为它隐藏了MSR分区)。
Step4:以管理员身份,利用mountvol命令挂载ESP分区,将EFI分区设定为M盘,此时,ESP分区仍未能直观显示。(注:如果不超过两个ESP分区,不需要动用diskpart。)
mountvol M: /s
Step5:打开任务管理器->详细信息,记下explorer.exe名称,选中explorer并把它结束。
Step6:在任务管理器上,点文件->运行新任务explorer,必须勾选“系统管理权限”,确定,打开“这台电脑”即可看到esp分区。此时已经具备写权限,我在efi目录下新建了一个文件夹,重启后它会自动消失。请不要删除或替换任何文件,否则,Win8将无法启动。
Step7:下载最新的Grub2 for Windows 8(http://alpha.gnu.org/gnu/grub/grub-2.02~beta2-for-windows.zip),将其解压存放至C盘下,并更名为grub2
GPT时代硬盘安装思路(第二部)(不对ESP分区做危险的替换操作)
接上篇,讲到第7步,Grub2 for Windows8的安装方法
Step8:通过cd命令跳转到grub2目录下,
cd c:\grub2
Step9:安装命令部分比较艰辛,主要参考archlinux中文维基解释(https://wiki.archlinux.org/index.php/GRUB_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29#UEFI.E7.B3.BB.E7.BB.9F),后来,又参考了无忧上的一位高人写的方法,现在用的就是1698写的安装方法。
超过90%的UEFI主板为64位固件,我的主板就是64位,使用如下安装命令,M: 表示挂载的盘符号,此方法仅适用于64位主板:
grub-install --target=x86_64-efi --efi-directory=M: --bootloader-id=Boot --boot-directory=M:/EFI --modules="part_gpt fat normal"
命令执行成功之后,打开ESP分区,可以看到EFI文件夹下多了一个grub文件夹(需要做一个grub.cfg存放在这里),Boot文件夹下多了一个grubx64.efi,如下图所示:
Step10:需要手动配备开机选择菜单grub.cfg文件,因为Windows版本缺少grub-mkconfig.exe这个文件。见第三部
GPT时代硬盘安装思路(第三部,反复测试ISO镜像加载命令,终于成功!!)
接上篇,讲到第10步,需要手动配备开机选择菜单grub.cfg文件,存放位置见上篇。本以为成功进入Grub2敲两条命令就ok了,但UEFI的安装命令不一样,而且,还需要考虑显卡的问题,否则,将会进入 Blind Mode摸黑状态!
menuentry "14.04.1 LiveCD (hd0, gpt5) insmod efi_gop efi_uga cyberfung is Here"{
insmod efi_gop
insmod efi_uga
set isofile="/ubuntu-14.04.1-desktop-amd64.iso"
loopback loop (hd0,gpt5)/$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
经反复测试,Grub2面对NTFS、FAT16、FAT32,均可直接启动ISO镜像文件,关键是需要加载正确的显卡模块
注:以上图片上传到红联Linux系统教程频道中。
本文提供一个简单的万能菜单,下载附件后,需要将“万能grub .cfg.txt”改为"grub .cfg"
万能grub .cfg.txt:
menuentry "Boot Windows 8.1_update x64 with GPT" --class windows --class os {
search --no-floppy --file --set=root /EFI/microsoft/boot/bootmgfw.efi
chainloader /EFI/microsoft/boot/bootmgfw.efi
}
menuentry "System restart" {
echo "System rebooting..."
reboot
}
menuentry "System shutdown" {
echo "System shutting down..."
halt
}
menuentry "14.04.1 LiveCD (hd0, gpt2) insmod all_video" {
insmod all_video
set isofile="/ubuntu-14.04.1-desktop-amd64.iso"
loopback loop (hd0,gpt2)/$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
menuentry "14.04.1 LiveCD (hd0, gpt3) insmod all_video" {
insmod all_video
set isofile="/ubuntu-14.04.1-desktop-amd64.iso"
loopback loop (hd0,gpt3)/$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
menuentry "14.04.1 LiveCD (hd0, gpt4) insmod all_video Huggo is Here" {
insmod all_video
set isofile="/ubuntu-14.04.1-desktop-amd64.iso"
loopback loop (hd0,gpt4)/$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
menuentry "14.04.1 LiveCD (hd0, gpt5) insmod all_video Huggo is Here" {
insmod all_video
set isofile="/ubuntu-14.04.1-desktop-amd64.iso"
loopback loop (hd0,gpt5)/$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
menuentry "14.04.1 LiveCD (hd0, gpt2) insmod efi_gop efi_uga"{
insmod efi_gop
insmod efi_uga
set isofile="/ubuntu-14.04.1-desktop-amd64.iso"
loopback loop (hd0,gpt2)/$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
menuentry "14.04.1 LiveCD (hd0, gpt3) insmod efi_gop efi_uga"{
insmod efi_gop
insmod efi_uga
set isofile="/ubuntu-14.04.1-desktop-amd64.iso"
loopback loop (hd0,gpt3)/$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
menuentry "14.04.1 LiveCD (hd0, gpt4) insmod efi_gop efi_uga cyberfung is Here"{
insmod efi_gop
insmod efi_uga
set isofile="/ubuntu-14.04.1-desktop-amd64.iso"
loopback loop (hd0,gpt4)/$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
menuentry "14.04.1 LiveCD (hd0, gpt5) insmod efi_gop efi_uga cyberfung is Here"{
insmod efi_gop
insmod efi_uga
set isofile="/ubuntu-14.04.1-desktop-amd64.iso"
loopback loop (hd0,gpt5)/$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
之后进入ubuntu安装界面,点一下左上角的Dash,键入ter点一下终端,输入:
sudo umount -l /isodevice
卸载ISO镜像文件后,即可跟光盘安装一样了。