最终效果:小Y电源键进入Win;恢复键进入Ubuntu。
其他联想笔记本也可改造。非联想笔记本因为无对应物理键,不如选单。
在虚拟机使用Ubuntu始终不如物理机;Wubi安装总觉的有些杂。正好小Y备份分区一直闲置,本来是为快速还原系统不用装驱动的,现在感觉甚是浪费。恰好以前也改造过那块分区,在bootmgr下添加grub。所以原理来说应该可以实现双键进入不同系统。
装Win8之后恢复键失效了,要先修复下。
找到这篇文章:[教程] 联想一键恢复7.2绿色安装全过程 非常简单 不用刻盘安装 不用重新分区
如果像我一样原来的已经失效或没有那个隐藏区了,请先看文章中提到的:在win7下修复一键恢复分区的办法
修复需要帖子中提到的联想一键恢复系统7.2镜像。
简单说就是分出新主分区——使用联想工具配置修复——放置所需文件。注意修复时候一定要看到Success。
Success
看帖子里说明,用DiskGenius修改分区隐藏/显示。即分区参数在12/07间换。
然后到此时我还在想把Ubuntu往15G的隐藏分区里装-_-!完全没有意识到Linux才不要NTFS。
既然这样就再分个区吧~注意我们只需要那个分区里的启动部分,所以帖子中\Onekey文件夹不用放置,节省空间,整个分区大概150M不到就行了。恢复键启动时候应该卡在找不到windows setup上。于是我的分区变成了这个样子:
然后参见 How to create a bootable USB stick on Windows 制作一个Ubuntu启动U盘。(本来想直接硬盘上装的,太折腾了)
到这里我觉得什么都很顺……愉快地开始安装了。
但是我太天真了,操作系统学了个皮毛,完全不知到大神们发明硬盘时候条件所限,MBR只允许4个主分区……
而现在我的分区结构为:[win引导区][win C分区][扩展分区-逻辑分区D E F][隐藏OEM分区]
所以再分一个主分区Ext格式是不可能了。本着大胆假设,小心求证的原则,我们转变一个方向:Ubuntu能不能装在逻辑分区呢?
查阅资料是可以的。那么方案就是:把OEM隐藏分区移到硬盘最后,前面留出的空间合并到扩展分区,作为逻辑分区使用。
我顺便把最后一个F盘减小了一点,留出了20多G给Ubuntu。btw硬盘工具DiskGenius 绝对是感天动地的国产优秀软件,当年我不小心把硬盘格了用它恢复了分区表,于是捐了10块钱^_^!。
这样就可以开始在逻辑分区安装了:
./ 主分区,留出一些空间给Swap,选择逻辑分区(这里其实也可以选择主分区了,因为此时在扩展分区中)
总结要点:
- 安装位置选择其他,不要覆盖win分区,也不要让grub接管win,因为我们要用隐藏分区引导Ubuntu。
- 引导装在./所在分区,同上因为我们要手动做Ubuntu的引导。
好了到这里你是进不去Ubuntu的,因为……引导写在了它自己那里,而mbr里没有那个分区!
因为隐藏的OEM分区是win的bootmgr引导,为了修改能引导linux,我们要使用EasyBCD,个人免费,注册下就好。
显示OEM分区,打开EasyBCD,打开OEM分区中的BCD(在boot文件夹下),添加新条目-添加NeoGrub,同时删除原来的Windows setup
这时候应该在OEM分区自动添加了一些文件,没有的话找一下EasyBCD安装分区根目录。现在隐藏分区是这样的:
OEM隐藏分区
打开NST文件夹,找到"menu.lst",添加以下内容:
timeout 0 default 0 title Ubuntu root (hd0,7) kernel /boot/grub/i386-pc/core.img boot
Thanks to :
http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=376981
http://www.pcbeta.com/forum.php?mod=viewthread&tid=1165473
说明(hd0,7)应该按照你的分区改变,具体查看CMD:
DISKPART sel disk 0 list partition
注意这里居然是7而不是刚才的8……为什么刚才Ubuntu下是8……
然后再隐藏分区,试试按下恢复键?啦啦啦Ubuntu启动了!
但是到这里还有点不爽,默认启动是显示grub菜单的,这样还是不能达到“一键”的目的,所以我们还要修改下grub启动项:
资料:https://help.ubuntu.com/community/Grub2#GRUB%20vs%20GRUB%202
(Ubuntu现在已经是grub2)
可以修改:/boot/grub/grub.cfg中第二个timeout,默认为10,改为0就可以了。但是这样每次系统更新内核,自动更新启动项时候还要手动设置;
也可以修改:/etc/grub.d/00_header中make_timeout ()函数,也是第二个timeout改为0。再update-grub一下。这样的好处是系统生成就是0。
应该也可以修改全局变量的……修改了不对,应该是没找到正确的。有兴趣研究那个资料。
其实grub引导能写到mbr中,这样就不用多一个隐藏分区引导了。为什么不这样做呢?因为这篇……知网文章《基于联想一键恢复技术的一种多系统引导方案》(我靠都写成论文样子了)说那个一键恢复按了以后是修改mbr的!
在关机状态下,只要按下NOVO键,电脑就会开机加电自检,LEOS将标准主引导记录替换成自己的引导程序,BIOS引导程序将修改后的主引导记录读入内存,并利用ATA协议的Int13H指令对HPA进行访问即可进入LEOS系统。
还有一个讲MBR、PBR的帖子也不错:http://bbs.wuyou.com/forum.php?mod=viewthread&tid=166641
如果是双显卡,在Ubuntu下独显风扇声音很大,可参考这个设置:http://forum.ubuntu.org.cn/viewtopic.php?t=366609
好吧学无止境,要专一一点。
Ubuntu还不错~
Now, enjoy!