ubuntu系统实用的界面和完全免费的优点吸引了越来越多的用户,而ubuntu系统的技巧都是在用户的摸索中总结出来的,下面就是用户使用Bootmgr引导Ubuntu的一个实例。
现在没事就喜欢玩玩Ubuntu,今天早上一打开电脑,登上百度,就看到有人问关于Windows和Ubuntu双系统的问题。我玩Ubuntu的时间其实也不长,有一年多一点的时间了吧。去年11月,笔记本的系统坏了一次,F11还原的时候崩溃了,每次开机就进入还原,而且还原不成功,很快就重启……没办法,拿去惠普金牌给重装了系统,当时硬盘的分区表坏掉了,把整个硬盘都格式化了,我有很多东西在里面的,全丢了……
那个时候,对重装系统一无所知,没想过那些问题的,不知道一个操作系统的引导有那么麻烦,对引导程序写在MBR和DBR(PBR)里面,而不是以文件形式存在,在操作系统里面看不到,感到很困惑。从那以后,意识到弄懂操作系统的安装非常重要,于是在网上下载了很多操作系统光盘来自己联系安装,微软原版的、修改版的以及Ghost版本的都用过不少。一次无意中在网上看到了Ubuntu,说这个系统蛮好,还可以安装在U盘上,这算是初步接触Ubuntu了。后来一次同寝室的同学,F11还原的时候点了取消,结果可想而知,和我一样,出现了分区表损坏,使用PE光盘,都找不到硬盘了,想要使用Ghost来安装系统,结果行不通。后来我用我的UbuntuU盘竟然成功地启动了他的计算机,可以识别他的硬盘,于是通过U盘在Ubuntu中将Ghost拷贝到他的硬盘,再安装了一个含Ghost的Dos工具箱,在DOS里面启动Ghost,给他安装了一个Ghost版本的WindowsXP。那次事件让我觉得Ubuntu这家伙还真是很牛啊!对Ubuntu愈加喜爱,后来了解了一些Ubuntu的知识,它每6个月都会发布一个新版本,新版本一出来,我就赶忙下载了下来,从Ubuntu9.10一直到现在的Ubuntu10.10。
玩Ubuntu,把我的好多U盘都做成了引导盘了,我的U盘不少,但是可以用的却一个都没有了……
好多U盘里面都是多重引导,觉得在一个U盘里面只做一个系统太浪费。用了这么多引导程序,还是觉得Bootmgr是***用的,所以习惯用Bootmgr去引导所有的系统。Bootmgr本来是用来引导Vista和Windows7,在硬盘和光盘上都可以引导,而且使用非常方便,微软提供的bcdedit命令非常好用!想要用它来引导WindowsXP和Ubuntu却不成功。WindowsXP在硬盘和光盘上使用的引导不同,直接将光盘拷贝到U盘是用不了的,想把光盘放在U盘里面用,不过没有成功过,只有修改版的才可以,原版根本不行。我向来是希望以最小的改动来达到目的的,不喜欢使用被别人修改过的,而自己不了解的东西,太不透明了,而且每个人的习惯差异很大,别人改动的,对我来说不一定好用,可能有太多冗余,累赘!干脆不用别人的,自己动手!Bootmgr引导WindowsXP光盘看来是不行了,引导已经安装好的WindowsXP倒是可以,但是要把微软的系统安装在USB可移动存储设备上,实在是太困难了,只能用PE,加载Wim镜像到内存。
Bootmgr引导Ubuntu,试验了很久,先是从UbuntuLiveUSB开始的。以前版本的Ubuntu都很容易就成功了,Ubuntu10.10不知怎么回事,刚开始试了几次都不行,后来又好了,其实采用的方法都是一样的。大概是一种***的办法,但是成功确实是要讲概率的。先制作一个UbuntuLiveUSB,引导程序是syslinux,(LiveCD用的是isolinux),使用bootice提取U盘分区的DBR(PBR),命名为syslinux.pbr,存放在U盘根目录,www.6688.cc然后把Windows7的PE光盘解压到U盘根目录,将Bootmgr引导程序写入MBR,使用,命令"Bootsect/nt60X:/force/mbr",然后使用bcdedit命令:
- bcdedit/storeX:\boot\bcd/create{45c374b2-8460-11df-8950-0024814b7667}/d"Ubuntu"/applicationbootsector
- bcdedit/storeX:\boot\bcd/set{45c374b2-8460-11df-8950-0024814b7667}deviceboot
- bcdedit/storeX:\boot\bcd/set{45c374b2-8460-11df-8950-0024814b7667}path\syslinux.pbr
- bcdedit/storeX:\boot\bcd/displayorder{45c374b2-8460-11df-8950-0024814b7667}/addfirst
这样Ubuntu的引导项就添加进去了,显示在选择菜单的最上面。
这样还是UbuntuLiveUSB,启动太慢,每次都要选择使用,跟安装好的Ubuntu相比,处于劣势,而且一般不会讲casper-rw文件设置太大,这就对安装软件产生了限制,所以希望安装一个Ubuntu系统。习惯把Windows7的PE和Ubuntu放在一个U盘上。在硬盘上,使用wubi安装使用过Ubuntu,也完全安装过,虚拟机里面也用过,在虚拟机里面用得最多,因为要解决锐捷比较麻烦,Ubuntu无法识别我的网卡,还要安装网卡驱动……真要崩溃,我没办法联网,也不知道需要什么样的网卡驱动,惠普根本就没有提供Linux的驱动……自锁了!没办法,只好在虚拟机里面玩玩。
做Ubuntu和Windows的双系统,还是很简单,但是大多都是先安装Windows,www.linuxidc.com再安装Ubuntu,***MBR里的引导程序是Grub或者Grub2,这样会自动添加Windows的引导项,以供选择。但是我们平常使用Windows还是比Ubuntu要频繁得多的,每次都要这样一次一次的选择,太麻烦了,希望能够用Bootmgr来引导Ubuntu。这种想法很早就有了,一直都没能成功,在网络上搜索,都没有找到解决方案。今天看到有人跟我有同样的想法,于是我想再试试看,争取把它解决。想到了使用wubi,在使用wubi安装的Ubuntu中就是由Bootmgr来引导Ubuntu的,但是拷贝了wubi的两个关键文件-wubildr和wubildr.mbr,还是不行。觉得问题用该是出在另外一个文件-wubildr.cfg,这个是配置文件,这个文件里面写的是wubi安装使用的虚拟磁盘root.disk和swap.disk,现在我的Ubuntu是完全安装的,直接使用这个文件肯定不行,必须要进行修改。经过多次修改最终终于获得了成功,活动的主分区的根目录里面有4个启动Ubuntu的关键文件,以上3个和grub.cfg,grub.cfg是Ubuntu分区的grub目录拷贝过来的,不需要修改。
wubildr.cfg文件修改后如下:
- setshow_panic_message=true
- setroot=(hd0,2)
- if[-e/boot/grub/grub.cfg];then
- ifconfigfile/boot/grub/grub.cfg;then
- setshow_panic_message=false
- fi
- else
- if[-e/grub/grub.cfg];then
- ifconfigfile/grub/grub.cfg;then
- setshow_panic_message=false
- fi
- fi
- fi
- if[${show_panic_message}=true];then
- echo"ItisnotpossibletobootfromtheUbuntuimage."
- echo"PleaseverifythattheUbuntuinstallationwasnotremoved."
- echo"Ifthatisnotthecase,pleasecheckthattheWindowsfilesystem"
- echo"isnotcorrupted:rebootintoWindowsandrun:chkdsk/r"
- echo"Thentryagain."
- fi
- 修改BCD文件的命令:
- bcdedit/storeX:\boot\bcd/set{bootmgr}locale"zh-CN"
- bcdedit/storeX:\boot\bcd/set{bootmgr}description"Windows启动管理器"
- bcdedit/storeX:\boot\bcd/timeout10
- bcdedit/storeX:\boot\bcd/set{default}description"Windows7PE"
- bcdedit/storeX:\boot\bcd/set{default}locale"zh-CN"
- bcdedit/storeX:\boot\bcd/set{memdiag}locale"zh-CN"
- bcdedit/storeX:\boot\bcd/set{memdiag}description"内存检测工具"
- bcdedit/storeX:\boot\bcd/create{45c374b2-8460-11df-8950-0024814b7667}/d"Ubuntu10.10"/applicationbootsector
- bcdedit/storeX:\boot\bcd/set{45c374b2-8460-11df-8950-0024814b7667}deviceboot
- bcdedit/storeX:\boot\bcd/set{45c374b2-8460-11df-8950-0024814b7667}path\wubildr.mbr
- bcdedit/storeX:\boot\bcd/displayorder{45c374b2-8460-11df-8950-0024814b7667}/addfirst
- bcdedit/storeX:\boot\bcd/enumall/v
向磁盘写入主引导:
bootsect/nt60X:/force/mbr
写入这些之后,一切OK!终于成功了,不容易啊,花了好久才解决!
还有其他方法,可以使用bootice提取Ubuntu分区,保存为ubuntu.pbr,在将它写入引导文件BCD的,一种***的方法,但是,并不一定能成功。也可以使用EasyBCD,这种方法简单,但是不透明,对软件的依耐性太高,也不太好。还是自己动手解决是***的。
总结:
希望本文介绍的使用Bootmgr引导Ubuntu实例能够对读者有所帮助,更多有关linux系统的知识还有待于读者去探索和学习。
【编辑推荐】