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中把时间设定好,重启就发现双系统时间正常了。
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中把时间设定好,重启就发现双系统时间正常了。
相关文章推荐
- Shell实现系统时间和BIOS时间同步校准脚本分享
- Shell实现系统时间和BIOS时间同步校准脚本分享
- 轻松实现双重系统引导
- Linux下获得系统时间的C语言的实现方法
- 用GPS模块校准系统时间
- 自动同步/校准系统时间
- Linux下获得系统时间的C语言的实现方法
- VB.NET 如何实现强制修改系统时间
- 用Silverlight 1.0实现一个基于客户端系统时间的电子表。
- (汇编实现)显示系统时间
- c++实现显示系统当前时间
- PPT实现播放时即时显示系统日期与时间
- 时间同步系统的实现和应用
- Linux下获得系统时间的C语言的实现方法
- (三)边做边发---产销系统---详细设计--代码实现--更新时间2007/8/1--提供整站完整源代码下载
- Ubuntu 9.10开始使用grub2引导系统
- Linux下获得系统时间的C语言的实现方法
- Linux下获得系统时间的C语言的实现方法
- 基于ARM-uCLinux嵌入式系统启动引导的实现
- asp.net中实现页面上动态显示系统时间