本人裝的是windows 7與ubuntu 10.10雙系統(tǒng),ubuntu非wubi安裝,在一次操作中將自己的圖形界面搞垮掉了,剛好也想重裝下ubuntu于是乎進入windows 7就將ubuntu下所有分區(qū)給刪除了,然后準(zhǔn)備重新硬盤安裝ubuntu,一切就緒后重啟機器,可是懷具發(fā)生了,no such partition
grub rescue>(好像是這個吧,不太記得了- -)
一開始有些傻眼,可能是由于這段時間習(xí)慣了使用命令吧,所以習(xí)慣性地ls一下,成功了,然后再pwd接著就是各種unknow- -
于是乎才感到不妙,原來是自己當(dāng)初做ubuntu時系統(tǒng)改成了grub引導(dǎo)的,而grub也已經(jīng)寫入了mbr,這個時候刪除了ubuntu分區(qū)后導(dǎo)致無法正確引導(dǎo)windows 7進入windows系統(tǒng),這里給出幾個解決方法,然后再說下我是怎么修復(fù)的.
方法一:
grub rescue模式下修復(fù)
由于在rescue模式下,只有少量的基本命令可用,必須通過一定的操作才能加載正常模塊,然后進入正常模式。
rescue模式下可使用的命令有:set,ls,insmod,root,prefix(設(shè)置啟動路徑)
先假設(shè)grub2的核心文件在(hd0,8)分區(qū),再來看看怎樣從 rescue模式進入從(hd0,8)啟動的正常模式(normal)。
在 rescue模式下search命令不能用,對不清楚grub2文件處于哪個分區(qū)的,可以用ls命令查看,比如
ls (hd0,8)/ 查看(hd0,8)分區(qū)根目錄,看看有沒有boot文件夾
ls (hd0,8)/boot/ 查看(hd0,8)分區(qū)的/boot目錄下文件
ls (hd0,8)/boot/grub/ 查看(hd0,8)分區(qū)/boot/grub目錄下文件
通過文件查看,可以確定 grub2核心文件處于哪個分區(qū),接下來就可以進行從rescue到normal的轉(zhuǎn)變動作:
先 ls 看看分區(qū),根據(jù)分區(qū)列表,猜下 / 分區(qū)的編號再 ls (hd0,x)/ 看分區(qū)目錄下文件確定找到 / 分區(qū),不對的話繼續(xù)找。找到 / 分區(qū)的 (hd0,x) 繼續(xù)
grub rescue>root=(hd0,x)
grub rescue>prefix=/boot/grub
grub rescue>set root=(hd0,x)
grub rescue>set prefix=(hd0,x)/boot/grub
grub rescue>insmod normal
rescue>normal -------->若出現(xiàn)啟動菜單,按c進入命令行模式
rescue>linux /boot/vmlinuz-xxx-xxx root=/dev/sdax
rescue>initrd /boot/initrd.img-xxx-xxx
rescue>boot
內(nèi)核版本號 -xxx-xxx可以按Tab鍵查看后再手動補全。
我是沒有找到,因為我已經(jīng)把所有的ubuntu分區(qū)給刪除了- -
方法二:找到你的windos安裝光盤,使用windows安裝光盤進行修復(fù)(不要重裝哦,重裝是沒用的).現(xiàn)在很多D版安裝光盤都有一些工具,
比如你可以進入PE系統(tǒng)進行修復(fù).
方法三:做一個引導(dǎo)U盤,里面放入一個PE系統(tǒng),然后在PE里修復(fù)
方法四:重新安裝ubuntu這樣grub引導(dǎo)就又回來了
方法一中,如果你使用的是windows xp系統(tǒng),可以用fdisk /mbr這個命令修復(fù),但我沒用過
windows 7可以用bootree /fixmbr
bootree /fixboot
這個我也沒用過
我使用的是第三種方法,這里介紹一下
首先啟動到PE下,然后可以找到一些工具,(我用的是diskgen),比如PQ什么之類的,打開它后有一個修復(fù)主引導(dǎo),點擊后,你一定以為太
簡單了,當(dāng)然你重啟機器后可以看到啟動菜單(我有多系統(tǒng)),你會很開心可是當(dāng)你按下回車時卻發(fā)現(xiàn)懷具了,因為還是無法引導(dǎo)..........
怎么辦呢?于是乎我又啟動到PE,我是windows 7所以在我的系統(tǒng)盤windows/system32下有個叫作bcdedit的工具,相信很多人都知道
在這里可以設(shè)置winodws 7的引導(dǎo)信息,于是乎在這里進行了修復(fù),當(dāng)你使用命令bcdedit時會發(fā)現(xiàn)你的一些參數(shù)不正確了,那么我們把
它改成正確的,讓它可以正確引導(dǎo)我們的系統(tǒng),下面給出bcdedit的命令參數(shù)等等內(nèi)容
在BCD中,硬盤或分區(qū)的GUID可分為如下幾類:
- {legacy} :指存在上一代Windows系統(tǒng)如Windows XP的硬盤或分區(qū);
- {default} : 默認(rèn)操作系統(tǒng)所在硬盤或分區(qū);
- {current} : 當(dāng)前硬盤或分區(qū);
- {c34b751a-ff09-11d9-9e6e-0030482375e7} : 類似于這個格式的GUID指其他安裝了操作系統(tǒng)的硬盤或分區(qū)。
(注:這只是個例子,具體數(shù)字根據(jù)硬盤或分區(qū)參數(shù)會有相應(yīng)變化,但均會類似于{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}格式)。
BCDEDIT命令
- bcdedit /? : 顯示命令幫助
- bcdedit.exe /? CREATESTORE : 顯示命令參數(shù)“ CREATESTORE ”的詳細信息,——當(dāng)然,“ CREATESTORE ”也只是示例,使用中對其他任何可用參數(shù)也均可使用類似格式查看該參數(shù)的具體說明。
- bcdedit 或 bcdedit /enum all : 顯示Vista和Windows 7系統(tǒng)當(dāng)前的啟動設(shè)置數(shù)據(jù),這時系統(tǒng)中所有安裝了操作系統(tǒng)的硬盤或分區(qū)均會顯示相應(yīng)的 GUID 標(biāo)識,如 {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} 。
使用BCDEdit備份與恢復(fù)啟動選項
在對Vista和Windows 7的啟動選項修改之前,最好先對其備份,以防萬一操作失誤或其他故障導(dǎo)致系統(tǒng)無法啟動。
- bcdedit /export “D:\BCD Backup\Bcd Backup” : 將啟動設(shè)置備份到D盤 “BCD Backup” 目錄下;
- bcdedit /import “D:\BCD Backup\Bcd Backup” : 恢復(fù)之前備份在D盤 “BCD Backup”目錄下啟動選項。
下面詳細介紹使用BCDEdit修改啟動選項的常用命令格式:
- bcdedit /set {legacy} Description “Windows XP Professional SP2” : 修改上一代操作系統(tǒng)在啟動菜單中的顯示內(nèi)容,比如說我們也可將其修改為“Vista天地專用XP SP2”之類。注意,命令中的引號不可省略;
- bcdedit /set {current} description “Vista和Windows 7 Build 5270 x86″ : 修改當(dāng)前啟動硬盤或分區(qū)上的操作系統(tǒng)在啟動菜單中的顯示內(nèi)容。注意,當(dāng)前分區(qū)上的操作系統(tǒng)可能為Vista和Windows 7,也可以是其他系統(tǒng),當(dāng)然,命令中的引號也不可省略;
- bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} description “Vista和Windows 7 Build 5270 x64” : 修改安裝于其他硬盤或分區(qū)的系統(tǒng)在啟動菜單中的顯示內(nèi)容,使用這項命令時一定要注意該硬盤/分區(qū)的GUID輸入正確,相應(yīng)的GUID可通過“ bcdedit ”或“ bcdedit /enum all ”命令查看。
- bcdedit /default {current} : 將當(dāng)前啟動硬盤/分區(qū)中的操作系統(tǒng)設(shè)置為默認(rèn)啟動的系統(tǒng);
- bcdedit /default {5189b25c-5558-4bf2-bca4-289b11bd29e2} : 設(shè)置指定GUID上的操作系統(tǒng)為默認(rèn)啟動的系統(tǒng);
- bcdedit /default {legacy} : 設(shè)置上一代Windows 系統(tǒng)Windows XP為默認(rèn)啟動的系統(tǒng);
- bcdedit /displayorder : 設(shè)置啟用菜單中各項的顯示順序,如:
bcdedit.exe /displayorder {legacy} {current}
將首先顯示W(wǎng)indows XP,然后再顯示默認(rèn)啟動的系統(tǒng)如Vista和Windows7 - bcdedit /timeout 15 : 將默認(rèn)的啟動菜單顯示時間30秒更改為15秒,當(dāng)然,您可以將這個時間修改為任何您希望的數(shù)值。
使用BCDEdit修復(fù)硬盤/分區(qū)結(jié)構(gòu)錯誤
在對啟動選項的修改過程中,如添加或刪除某個硬盤/分區(qū)時,可能會因操作中的不慎導(dǎo)致硬盤/分區(qū)結(jié)構(gòu)的混亂,除了采用恢復(fù)修改前的備份方法外,也可以首先使用BCDEdit來嘗試一下修復(fù)。
具體方法如下:
- X:\>X:\boot\fixntfs.exe -lh -all : 這時的“ X: ”指引導(dǎo)目錄 “boot” 所在的硬盤/分區(qū);
- bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} device partition=X: : 將指定GUID的分區(qū)設(shè)為啟動分區(qū)。注意,這里的“ X: ”的GUID須與指定值不同,同時,運行該命令后,必須接著運行下面的osdevice命令;
- bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} osdevice partition=X: : 將指定GUID的分區(qū)設(shè)為啟動分區(qū)。注意,這個命令必須與上面的device命令配對使用,同時“ X: ”的GUID須與指定值不同。
這樣經(jīng)過設(shè)置后就可以正常啟動到win7下了.