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中把时间设定好,重启就发现双系统时间正常了。