SafeBoot双系统引导

[Preface]
印象中,security总与convenience矛盾,虽然有时候inconvenience并不总是那么的显而易见。

[Background]
公司的电脑总是会冷不丁的给你surprise,真所谓“重启就会有奇迹”,某次系统reboot后,我惊奇的发现系统在介于BIOS和Boot Loader之间多了个步骤(user experience蛮好,至少有个进度条),然后就是我的linux dual boot不灵了,kernel都没有解压完就卡在那不动了,windows倒是继续能很happy的boot,一刹那顿时觉得好神奇……

系统真正起来后才发现windows多了个软件叫SafeBoot(被McAfee收购后,现在学名McAfee Endpoint Encryption

别的功能不清楚,一个最醒目的feature是disk encryption,经我测试貌似不是full disk的encryption,只是windows所在的那几个分区被加密了,开机的时候那个进度条应该是在解密(把MBR都改了,好强悍,更强悍的是改MBR连告都不告诉一下,算你狠),加了密然后boot时实时解密,所以windows还能很perfect的boot,linux所在的分区并未被加密,按理来说boot应该不会有问题,但是不知道为啥就是卡在那不动,想来必是boot时的实时解密多此一举了,导致没有加密的硬盘反而无法正确读取,真是you don’t know what you know……

[Solution 1: Uninstall]
很多人可能和我一样,第一反应是卸载,眼不见为净,但是这个想法在这儿貌似有点naive,就像fox river一样,有些东西真的是进去简单出来难,搜索到的卸载方法并没有让我实现我的家庭梦想,sbsetup -uninstall 后我得到了如下的错误提示:“Boot protection is still enabled on this machine. The client can not be uninstalled while boot protection is enabled.”

然后搞笑的是disable这个boot protection的option在我client端是没有的(怀疑server端应该是有的,当然我没有授权,呵呵),由于这个boot protection是被写到了MBR,安全模式引导也绕不过,所以我马上想到了……

[Solution 2: Overwrite MBR, then uninstall]
当时的想法是把MBR给覆盖了,然后boot protection估计就没了,然后再uninstall估计就可以过了……

但是这里面还有个鸡生蛋,蛋生鸡的问题,MBR覆盖掉,没有boot protection(估计就是解密)后,加了密的disk就没办法读了,windows系统都起不来了,你还怎么uninstall……

好吧,看来加了密的硬盘是个问题……

[Solution 3: Decryption]
到这一步,其实脑子里面还一直想着uninstall,可不是吗,decryption后然后再overwrite mbr,硬盘可以继续保持可读,uninstall就可以实现了,但是天知道解密本身对我来说又有一个不可能完成的任务……

参照这篇文章,正常解密需要server端配合或者是要有safeboot的专用软盘……

巧妇难为无米之炊,何况还不是很巧……

[Solution 4: Overwrite MBR, starting SafeBoot with Grub]
终于放弃卸载的想法了,换种思考的方式,linux系统boot不能有safeboot,windows又一定需要safeboot,能不能修改MBR和Grub,同时满足以上两个条件呢,答案是肯定的,前人已经给出了解决方案(Starting SafeBoot with Grub)

其主要思想就是备份现在被safeboot改过的MBR,然后用grub重新覆盖MBR,这样linux的boot就没有safeboot骚扰了,然后为了让windows能够继续以safeboot进行引导,修改grub的menu.lst文件,在chainloader里加上刚才备份过的safeboot的MBR。

Looks good, isn’t it? 但是最后并没用这个方法,因为据说safeboot每次和server同步后还会再把你的MBR改回去……何况老是整MBR也不是什么安全的事情……

[Solution 5: Walk around]
这也是我最后采用的方法,主要原因是因为其对本机的影响最小,基本上不用做任何修改,缺点是你要另外搞个liveusb,由于我之前本身就做好一个,所以工作量很小,呵呵。

下面具体解释一下,看完不要打我:),启动windows什么也不用做,启动linux时插上usb,设置BIOS从usb引导,这样就绕过了本机的safeboot,也绕过了本机的grub,然后设置liveusb上的grub去引导本机的linux,that’s it。一旦grub的bootloader完成,usb就可以拔了,因为控制权又交回主机硬盘上的linux了。

[Screenshot]
最后截图一张:
archlinux-liveusb

Related posts:

29 Comments on "SafeBoot双系统引导"

  1. goodtiger China Mozilla Firefox Windows says:

    最后几句话是关键

  2. soquick China Mozilla Firefox Linux says:

    天啊!!你们公司是怎么把这电脑装上这玩意,我头大,最后这个方法,USB也不怎么方便啊,而且USB等于对电脑啥都没做啊,妥协啊!
    前两天那个EXT4的格盘,grub2都让我焦头烂额(orz,囧吧),更囧的是后来我干脆用移动硬盘安装ubuntu9.04,从开机到装完ubuntu不到五分钟,比我那破折腾省事多了。这算不算是妥协哈。

    • Samson United States Google Chrome Windows says:

      公司搞成update,然后强制安装,事实上在update的时候你也不知道在装啥
      ,呵呵

      ubuntu现在装起来这么快了啊?还是因为你装在移动硬盘上的缘故?

  3. soquick China Mozilla Firefox Ubuntu Linux says:

    俺现在要郑重说俺不是升级狂哈哈,虽然ARCH一直开着testing。ubuntu9.04现在还没卸载哩,主要是下了一个DEB包,直接安装上kernel2.6.30-rc5,都是为了intel显卡的缘故,在30的内核上glxgears值会升到1500,而原先29的内核以级intel显卡配合起来,才只有200,现在俺的ARCH也只有400(内核还是29)。
    当初就是为了显卡的问题才不断尝试linux版本,ARCH满足当时俺需要新intel显卡驱动的要求,不过总有一些磨矶问题。pacman实在感觉非常好。但这几天先在ubuntu上耍耍。
    那个安装方式,是我把自己光驱整坏了,最后只好想办法,然后就成功用移动硬盘当介质安装到电脑上,话说,速度快得让人抓狂哈哈,5分钟嘛。
    同理我之前也装过sabayon,就是快速入门gentoo用的,sabayon的确非常漂亮啊,(不过黑色调的我有点不乐意),看了一下glxgears,天,5!!自带的totem有问题,编译了gxine、totem倒是正常,不过那编译速度实在慢啊(可以多个进行编译耶!那cpu就一直100%挂着),而且又费空间,很快就格了它。

  4. soquick China Mozilla Firefox Ubuntu Linux says:

    系统没啥问题就不要升级,除非需要新版软件的某些功能。这个,是不是要共勉来着。不过俺怀疑,隔个一年不升级,然后是不是一升级就挂了哈。
    其实俺除了显卡困挠,好像完全没有升级的必要,ARCH让俺升级变得盲目了唉。

    • Samson China Mozilla Firefox Windows says:

      我那个升级是windows下的,呵呵,而且是强制的,不是我不想和你共勉,实在是人在江湖,身不由己啊,呵呵
      arch下和你共勉~

  5. soquick China Mozilla Firefox Linux says:

    理解理解!俺也到了愁就业的时候,所以有工作,怎么说也是件可以为之忍受的事,哈!

  6. soquick China Mozilla Firefox Linux says:

    这世界真不安全,看来得小心跨省追捕,OMGod!
    大连念书而己哈,明年大四再说,主要是不学无术愁哎
    对了,终于想起能找个帮事地,在AUR上有kernel26-git的内核,我这访问不了那个git站点,能请你帮忙编译一下pkg.tar.gz邮箱发过来一下?
    应该是有两个pkg包。哎,先谢过了!!盼30版内核都盼了近个把月。发觉终于有戏,激动啊!!

  7. soquick China Mozilla Firefox Linux says:

    要能翻墙早翻了啊,俺多守法的和谐社会公民啊,翻墙就看点大黄和blogs,要是用免费翻墙能下载大东西那还得讨教哈。
    我呢自己办法想光了,编译个软件还行,内核这玩意没搞过。今天本来在同学XP上用netpas商用代理挂VirtualBOX,然后用Arch的livecd,能编译kernel26-firmware-git,这东西比较小;但是kernel26-git太大了,等很久之后去看,估计是live内存不够用(近七百兆啊),直接VBox没反应了。
    所以,嗯,看哥们你那能不能连上喽。网址给贴上哈http://aur.archlinux.org/packages.php?ID=25304,感激不尽!!还没问你哪里人嘿

  8. soquick China Mozilla Firefox Linux says:

    GappProxy以前就主打用这个啊,当时教育网那个快啊,当时因为它需要python2.6以上版本才支持https才尝试Debian以外的其他linux,唉,blogspot被封之后惊觉好久没用它,速度变得慢死。
    现在只能用FF的gladder。俺老家福建,毕业回老家去哈。终于有希望用上30内核,那个激动啊,这个版本的intel显卡3D提升相当大。

  9. soquick China Mozilla Firefox Linux says:

    漂亮!感激哈感激哈!
    就报了MODULES里的vboxdrv,重新makefile一下就OK。
    还一个比较离奇,报了DAEMONS的alsa!注释掉,之后声音也OK。
    没啦,相当顺利!比ubuntu里的效果差了一些,但总算了一桩心愿!
    嘿,教育网最好用的邮箱是QQ(foxmail),最大附件50M,最主要的是速度离奇快。同理,tor名气虽大,但教育网里根本毫无速度,教育网里emule不能用,等等等。俺几乎用gladder的历史等同于FF哈。

  10. Suk United States Maxthon Windows says:

    SH COE?
    哪个team的?

  11. kvn Germany Internet Explorer Windows says:

    最近公司也要搞这个safeboot, 这下好了,自己装的ubuntu看来也是死定了,老兄都试了这么多想法,呵呵,看来当初我没选择在移动硬盘上装ubuntu就完全是个错误啊。打算去买个强力吸盘,把移动硬盘吸在手提屏幕反而。哈哈。

    以后多来看看。有意思。

  12. kvn Germany Internet Explorer Windows says:

    另外如果要Fan强,在ubuntu里用your-freedom, 很好用啊,而且文件包特小,以前在xp里被它三番五次的大包更新害死了。

    • Samson China Mozilla Firefox Mac OS says:

      吸盘创意不错哈哈~ 欢迎欢迎,always welcome~

      your-freedom没用过,以后有空试试,主要是现在翻墙已经不是问题了,呵呵

  13. Jack China Internet Explorer Windows says:

    我很需要卸载SafeBoot能不能给个具体的操作方法,
    kernel26-firmware-git:
    http://blog.samsonis.me/wp-content/uploads/2009/05/kernel26-firmware-git-20090518-1-i686pkgtar.gz

    kernel26-git:
    http://blog.samsonis.me/wp-content/uploads/2009/05/kernel26-git-20090518-1-i686pkgtar.gz
    这两个已经下载
    进入Linux后具体怎么操作,如何卸载掉SafeBoot

Got something to say? Go for it!

使用新浪微博登陆