歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 使用Bootmgr 引導Ubuntu (非wubi安裝)

使用Bootmgr 引導Ubuntu (非wubi安裝)

日期:2017/2/28 16:26:34   编辑:Linux教程

現在沒事就喜歡玩玩Ubuntu,今天早上一打開電腦,登上百度,就看到有人問關於Windows 和Ubuntu 雙系統的問題。我玩Ubuntu 的時間其實也不長,有一年多一點的時間了吧。去年11月,筆記本的系統壞了一次,F11還原的時候崩潰了,每次開機就進入還原,而且還原不成功,很快就重啟……沒辦法,拿去惠普金牌給重裝了系統,當時硬盤的分區表壞掉了,把整個硬盤都格式化了,我有很多東西在裡面的,全丟了……

那個時候,對重裝系統一無所知,沒想過那些問題的,不知道一個操作系統的引導有那麼麻煩,對引導程序寫在MBR 和DBR (PBR)裡面,而不是以文件形式存在,在操作系統裡面看不到,感到很困惑。從那以後,意識到弄懂操作系統的安裝非常重要,於是在網上下載了很多操作系統光盤來自己聯系安裝,微軟原版的、修改版的以及Ghost版本的都用過不少。一次無意中在網上看到了Ubuntu ,說這個系統蠻好,還可以安裝在U盤上,這算是初步接觸Ubuntu 了。後來一次同寢室的同學,F11還原的時候點了取消,結果可想而知,和我一樣,出現了分區表損壞,使用PE 光盤,都找不到硬盤了,想要使用Ghost來安裝系統,結果行不通。後來我用我的Ubuntu U盤竟然成功地啟動了他的計算機,可以識別他的硬盤,於是通過U盤在Ubuntu 中將Ghost 拷貝到他的硬盤,再安裝了一個含Ghost 的Dos 工具箱,在DOS 裡面啟動Ghost ,給他安裝了一個Ghost 版本的Windows XP 。那次事件讓我覺得Ubuntu 這家伙還真是很牛啊!對Ubuntu 愈加喜愛,後來了解了一些Ubuntu 的知識,它每6個月都會發布一個新版本,新版本一出來,我就趕忙下載了下來,從Ubuntu 9.10 一直到現在的Ubuntu 10.10。

玩Ubuntu ,把我的好多U盤都做成了引導盤了,我的U盤不少,但是可以用的卻一個都沒有了……

好多U盤裡面都是多重引導,覺得在一個U盤裡面只做一個系統太浪費。用了這麼多引導程序,還是覺得Bootmgr 是最好用的,所以習慣用Bootmgr 去引導所有的系統。Bootmgr 本來是用來引導Vista 和Windows 7 ,在硬盤和光盤上都可以引導,而且使用非常方便,微軟提供的bcdedit 命令非常好用!想要用它來引導Windows XP 和Ubuntu 卻不成功。Windows XP 在硬盤和光盤上使用的引導不同,直接將光盤拷貝到U盤是用不了的,想把光盤放在U盤裡面用,不過沒有成功過,只有修改版的才可以,原版根本不行。我向來是希望以最小的改動來達到目的的,不喜歡使用被別人修改過的,而自己不了解的東西,太不透明了,而且每個人的習慣差異很大,別人改動的,對我來說不一定好用,可能有太多冗余,累贅!干脆不用別人的,自己動手!Bootmgr 引導Windows XP 光盤看來是不行了,引導已經安裝好的Windows XP 倒是可以,但是要把微軟的系統安裝在USB 可移動存儲設備上,實在是太困難了,只能用PE ,加載Wim 鏡像到內存。

Bootmgr 引導Ubuntu ,試驗了很久,先是從Ubuntu Live USB 開始的。以前版本的Ubuntu 都很容易就成功了,Ubuntu 10.10 不知怎麼回事,剛開始試了幾次都不行,後來又好了,其實采用的方法都是一樣的。大概是一種萬能的辦法,但是成功確實是要講概率的。先制作一個Ubuntu Live USB ,引導程序是syslinux,(Live CD 用的是 isolinux ),使用bootice 提取U盤分區的DBR(PBR),命名為syslinux.pbr ,存放在U盤根目錄,www.6688.cc然後把Windows 7 的PE 光盤解壓到U盤根目錄,將Bootmgr 引導程序寫入MBR,使用,命令"Bootsect /nt60 X: /force /mbr",然後使用bcdedit 命令:


bcdedit /store X:\boot\bcd /create {45c374b2-8460-11df-8950-0024814b7667} /d "Ubuntu" /application bootsector
bcdedit /store X:\boot\bcd /set {45c374b2-8460-11df-8950-0024814b7667} device boot
bcdedit /store X:\boot\bcd /set {45c374b2-8460-11df-8950-0024814b7667} path \syslinux.pbr
bcdedit /store X:\boot\bcd /displayorder {45c374b2-8460-11df-8950-0024814b7667} /addfirst

這樣Ubuntu 的引導項就添加進去了,顯示在選擇菜單的最上面。

這樣還是Ubuntu Live USB ,啟動太慢,每次都要選擇使用,跟安裝好的Ubuntu 相比,處於劣勢,而且一般不會講casper-rw 文件設置太大,這就對安裝軟件產生了限制,所以希望安裝一個Ubuntu 系統。習慣把Windows 7 的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文件修改後如下:

set show_panic_message=true

set root=(hd0,2)
if [ -e /boot/grub/grub.cfg ]; then
if configfile /boot/grub/grub.cfg; then
set show_panic_message=false
fi
else
if [ -e /grub/grub.cfg ]; then
if configfile /grub/grub.cfg; then
set show_panic_message=false
fi
fi
fi

if [ ${show_panic_message} = true ]; then
echo "It is not possible to boot from the Ubuntu image."
echo "Please verify that the Ubuntu installation was not removed."
echo "If that is not the case, please check that the Windows filesystem"
echo "is not corrupted: reboot into Windows and run: chkdsk /r"
echo "Then try again."
fi

修改BCD 文件的命令:

bcdedit /store X:\boot\bcd /set {bootmgr} locale "zh-CN"
bcdedit /store X:\boot\bcd /set {bootmgr} description "Windows 啟動管理器"
bcdedit /store X:\boot\bcd /timeout 10
bcdedit /store X:\boot\bcd /set {default} description "Windows 7 PE"
bcdedit /store X:\boot\bcd /set {default} locale "zh-CN"
bcdedit /store X:\boot\bcd /set {memdiag} locale "zh-CN"
bcdedit /store X:\boot\bcd /set {memdiag} description "內存檢測工具"
bcdedit /store X:\boot\bcd /create {45c374b2-8460-11df-8950-0024814b7667} /d "Ubuntu 10.10" /application bootsector
bcdedit /store X:\boot\bcd /set {45c374b2-8460-11df-8950-0024814b7667} device boot
bcdedit /store X:\boot\bcd /set {45c374b2-8460-11df-8950-0024814b7667} path \wubildr.mbr
bcdedit /store X:\boot\bcd /displayorder {45c374b2-8460-11df-8950-0024814b7667} /addfirst
bcdedit /store X:\boot\bcd /enum all /v


向磁盤寫入主引導:

bootsect /nt60 X: /force /mbr

寫入這些之後,一切OK!終於成功了,不容易啊,花了好久才解決!

還有其他方法,可以使用bootice 提取Ubuntu 分區,保存為ubuntu.pbr ,在將它寫入引導文件BCD 的,一種萬能的方法,但是,並不一定能成功。也可以使用EasyBCD,這種方法簡單,但是不透明,對軟件的依耐性太高,也不太好。還是自己動手解決是最好的。

Copyright © Linux教程網 All Rights Reserved