grub覆蓋之後的恢復

2021-06-16 22:48:51 字數 4000 閱讀 3460

刪除linux,覆蓋grub,還原成xp自帶的啟動引導,這個很簡單,只要你有windows xp盤(非ghost),用它啟動,至選擇安裝位置的地方退出重啟就可以。或者用它啟動故障修復臺,執行fixboot或者fixmbr都可以。

**:

sudo grub                               

find /boot/grub/stage1

root (hdx,y)

setup (hdx)

quit

注意:其中的x、y是執行find /boot/grub/stage1命令後系統提示的。,比如:

**:

grub> find /boot/grub/menu.lst

(hd0,7)

注意:這裡的grub>是執行sudo grub命令後進入grub環境得到的提示符,不用輸入。這時,x就是0,y就是7。

下面詳細解釋一下這幾條命令:

sudo grub 以root使用者身份啟動grub,否則會出錯,錯誤見後文

find /boot/grub/stage1 尋找/boot所在分割槽,其實換用find /boot/grub/menu.lst也一樣。

這一步也可以跳過,在執行root (hdx,時連按兩下tab列出可用分割槽,自己確定是哪個分割槽。

如果是將/boot單獨分割槽,詳見說明。

root (hdx,y) 設定硬碟hdx的根檔案系統(root device),實際就是設定/boot所在的分割槽

setup (hdx) 自動安裝grub到硬碟hdx。

quit 退出grub

root、setup命令後都有空格,如果沒有會出錯誤。

如果不以root使用者身份會出現什麼樣的錯誤呢?

引用:

ubuntu@ubuntu:~$grub

[ minimal bash-like line editing is supported. for

the first word, tab lists possible command

completions. anywhere else tab lists the possible

completions of a device/filename. ]

grub> find /boot/grub/stage1

error 15: file not found

grub> find /boot/grub/menu.lst

error 15: file not found

grub> root(hd0,7)

error 27: unrecognized command

grub> root (hd0,7)

error 21: selected disk does not exist

grub> setup (hd0)

error 12: invalid device requested

乙個成功例子:

引用:

ubuntu@ubuntu:~$ sudo grub

[ minimal bash-like line editing is supported. for

the first word, tab lists possible command

completions. anywhere else tab lists the possible

completions of a device/filename. ]

grub> find /boot/grub/menu.lst

(hd0,7)

grub> root (hd0,7)

grub> setup (hd0)

checking if "/boot/grub/stage1" exists... yes

checking if "/boot/grub/stage2" exists... yes

checking if "/boot/grub/e2fs_stage1_5" exists... yes

running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded.

succeeded

running "install /boot/grub/stage1 (hd0) (hd0)1+15 p (hd0,7)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded

done.

grub>quit

這是最簡單的方法,也有其它幾個尋找/boot分割槽的方法,但稍麻煩點:

在終端使用ls /dev/sd*和ls /hd*命令來查詢系統的外部設定,用sudo mkdir命令來建立掛載目錄,用sudo mount命令掛載,再用ls命令檢視是否/boot所在的分割槽。

也可以用sudo fdisk -l來找到啟動分割槽(這裡不涉及將/boot單獨分割槽的情況,因為那種我沒有實驗過,不太清楚),如:

引用:

ubuntu@ubuntu:~$ sudo fdisk -l

disk /dev/sda: 160.0 gb, 160041885696 bytes

255 heads, 63 sectors/track, 19457 cylinders

units = cylinders of 16065 * 512 = 8225280 bytes

device boot start end blocks id system

/dev/sda1 * 1 2295 18434556 7 hpfs/ntfs

/dev/sda2 2296 19456 137845732+ f w95 ext'd (lba)

/dev/sda5 2296 4845 20482843+ 7 hpfs/ntfs

/dev/sda6 4846 8669 30716248+ 7 hpfs/ntfs

/dev/sda7 8670 16557 63360328+ 7 hpfs/ntfs

/dev/sda8 * 16558 17361 6458098+ 83 linux

/dev/sda9 17362 19393 16322008+ 83 linux

/dev/sda10 19394 19456 506016 82 linux swap / solaris

就知道啟動分割槽是/dev/sda8

有人可能會有疑問,在linux系統中是用sda8來表示這個啟動分割槽,而grub中則是用(hd0,7)表示,這是因為在新版的ubuntu中系統將串列埠硬碟和並口硬碟都識別為sd,a表示第一硬碟,8表示第4個邏輯分割槽(1──4被分配給主分割槽,擴充套件分割槽裡的邏輯分割槽從5開始計算)。而grub中則是用統一用hd代表硬碟,硬碟號與分割槽號都是從0開始計算的。

這部分是憑記憶寫的,可能不準確,請參考wiki。

ps:看到有的帖子說alterate cd可以在boot後輸入linux rescue來啟動救援盤,後面的操作則一樣。我因手頭沒有alterate cd無法驗證。***雖說整合了alterate cd與desktop cd,但無法在以字元介面安裝時啟動救援盤。

感謝雕雕補充:

雕嘯長空 寫道:

補充一點,上面講的是在/boot下面的東西都還完好的,但如果rp不行,/boot都玩完了,可以試一下下面的:

生成/etc/mtab

**:

sudo grep -v rootfs /proc/mounts >sudo tee /etc/mtab

安裝grub到mbr

**:

grub-install --no-floppy /dev/hda

然後就自己搞定menu.lst了.

ps:將雕的命令按

修改了一下。

順便鄙視一下linux/windows雙料菜鳥。

再鄙視一下自己,其實這都是網上流傳的已有的,只是這次恰好在實驗vista時用上了實證了一下。

恢復 Grub 引導

一般安裝 windows 和 linux 雙系統時都是先安裝 windows 再安裝 linux,然後利用 linux 自帶的多作業系統引導工具來製作引導選單。以 fedora 為例,安裝時會有 grub 的設定只要一直 next 就可以配置好 至少是能用的 但如果在使用中我們重新安裝了 windo...

恢復grub啟動

重灌windows7之後修復grub方法。裝了雙系統之後 ubuntu linux和windows7 再繼續裝windows7,就會導致grub被覆蓋,導致無法進入linux,這時候修復一下grub即可。下面是最簡單的乙個修復方法。2 設定從grub4dos啟動,首先需要在c盤根目錄下面建立乙個bo...

恢復ubuntu下的grub

ubuntu 6.01lts 呵呵,這張盤是在網上免費定的,好象是從荷蘭郵寄過來的 共郵寄了10張 在理想保護卡的環境下安裝ubuntu發現硬碟是sata格式 grub沒有正常安裝 鬱悶之中用livecd啟動,配置ip上網 發現用chroot切換環境,然後用grub install重新安裝.dev ...