您的位置:首页 > 其它

y400 实现grub2 引导 win8.1 和 ubuntu12.04 双系统 时间校准

2015-02-02 17:08 253 查看
win8.1加入了 安全验证 所以grub2不能正确引导ubuntu,Secure Boot只是UEFI的一个部分。两者的关系是局部与整体的关系。

Secure Boot的目的,是防止恶意软件侵入。它的做法就是采用密钥。UEFI规定,主板出厂的时候,可以内置一些可靠的公钥。然后,任何想要在这块主板上加载的操作系统或者硬件驱动程序,都必须通过这些公钥的认证。也就是说,这些软件必须用对应的私钥签署过,否则主板拒绝加载。由于恶意软件不可能通过认证,因此就没有办法感染Boot。

这个设想是好的。但是,UEFI没规定哪些公钥是可靠的,也没规定谁负责颁发这些公钥,都留给硬件厂商自己决定。

现在,微软就是要求,主板厂商内置Windows 8的公钥。

废话少说,安装双系统不用解释了,上一个链接http://tieba.baidu.com/p/2805772637

接着说本人电脑,y400,win8系统 升级win8.1,期间安装ubuntu12.04 桌面环境kde

安装完成后grub2一直无法启动win8,老是提示失败。每次都是进bios选择引导程序,痛苦不堪。昨天晚上看了上面的帖子,终于搞定。特来与大家分享一下。

1、安装双系统,uefi模式安装,不做多余介绍。

2、关闭Secure Boot, y400默认设置了也没用,因为下面一个状态显示是不能关闭的,灰色的,怎么办呢?,解决办法将bios设置为legency
support ,uefi first模式。

3、替换bootx64.efi:

进你的efi分区,在linux下用df
命令查看efi分区, 我的分区/dev/sda1,注意以实际情况为准。

.挂载efi分区,新建文件夹
mkdir /mnt/efi

mount
-t /dev/sda1 /mnt/efi

进入分区
cd /mnt/efi

ls 看见文件夹Boot

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

sudo
mv bootx64.efi bootx64.efi.old

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

sudo
cp ../ubuntu/grubx64.efi ./bootx64.efi

- 显然,这样开机的时候,加载bootx64.efi时,实际加载了grub2,这样就不会直接进入windows了。

运行 sudo update-grub2

看到以下信息就ok了

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直接被找到了。

进bios将grub设为默认引导,以后再grub中就可以直接实现双系统引导了。

另外:双系统
ubuntu和win8 系统时间相差8小时,因为ubuntu基于utc时间,win8用系统时钟,关闭ubuntu的utc,vi /etc./default/rcS

找到 utc==yes 改为 no ,然后ubuntu中把时间设定好,重启就发现双系统时间正常了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: