天天看點

xp+ubuntu雙系統上重裝Xxp後修複grub方法

重裝xp後,mbr被xp寫入資訊導緻grub無法工作解決方法 

從CD-ROM啟動,從Live CD啟動進入桌面。 

打開終端或者切換到一個tty(Ctrl+Alt+F1)。 

輸入:sudo grub 

輸入:find /boot/grub/stage1     ##有人說這一步不用,不過個人感覺還是應該加上這一步 

輸入:root (hd0,x)                      ##輸入find指令回報的資料 

輸入:setup (hd0)                      ##如果想用xp進行多系統引導就寫(hd0,x) 

輸入:quit                                  ##退出grub。 

重新啟動,不出意外的話,那麼恭喜,呵呵,可以看到XP和UBUNTU的雙系統引導咯^_^ 

--------------------------------------------------------------------------- 

重裝windows XP 後怎樣找回Ubuntu 

首先下載下傳GRUB for Dos 

并安裝下載下傳Ext3分區通路軟體(有Ext2Fsd 或explore2fs) 

運作後将ubuntu根目錄下的Boot檔案夾裡全部複制到C槽. 

重新開機後在開機菜單裡選擇GRUB就可進入ubuntu. 

要點:ubuntu linux 需要GRUB for Dos來引導,是以C:/BOOT.INI裡,會有這一行: 

C:/GRLDR="GRUB"ext3 

分區下的boot檔案夾裡面放了可以引導的檔案,需将其放在c盤根目錄. 

------------------------------------------------------------------------------------------------------- 

1.用livecd(強烈推薦) 

2.用安裝cd 

3.使用grub4dos 

4.使用grub軟盤 

1,使用livecd(強烈推薦) 

使用任何你喜歡的linux livecd(比如,ubuntu 6.06的desktop cd) 

在終端下輸入: 

代碼: 

sudo su 

grub 

代碼:grub> 

接着輸入: 

代碼: 

root (hdx,y) 

setup (hdx) 

請不要完全照樣輸入!請弄懂這些指令的含義。 

hd表示硬碟,格式是 

(hd硬碟号,分區号) 

從零開始計算。 

是以(按照日常的習慣,從1開始數), 

(hd0,0)表示第一個硬碟的第一個分區, 

(hd0,1)表示第一個硬碟的第2個分區, 

(hd1,4)表示第2個硬碟的第5個分區。 

(注意,linux系統裡是用hda1表示第一個硬碟的第一個分區,不要把它和grub中的表示混起來。) 

root (hdx,y)這裡的(hdx,y) 是/boot 目錄所在的分區 

(通常情況下,也就是你裝ubuntu系統的分區,除非你安裝的時候把/boot分出去了。) 

如果你不知道你把ubuntu裝在第幾個分區,可以在輸入root (hd0, 時按Tab鍵來補全。 

(假設你把ubuntu裝在第一塊硬碟上)按了tab後,你将看到一些有關各個分區的資訊。 

通常你可以通過分區的大小和格式看出你把ubuntu系統裝在哪裡了。 

setup (hdx) 通常情況下,是setup (hd0)。(多半你把ubuntu裝在第一塊硬碟上。) 

要注意的是,不要輸入setup (hd0,0)。我曾經犯過這個錯誤。 

(如果你沒把指令抄下來,憑記憶操作的話,可能會犯這種錯誤。) 

最後,用 

代碼: 

quit 

退出grub,重啟系統。 

好了,總結一下用到的指令 

(建議你把下面的代碼抄在紙上。如果你對(hdx,y)表示的含義還感覺模糊,最好把上面幾段解釋也抄下來。) 

代碼: 

sudo su 

grub 

root (hdx,y) 

setup(hdx) 

quit 

很簡單吧?關鍵隻要了解grub中硬碟分區的表示法就行了。 

2,使用ubuntu安裝cd恢複 

ubuntu desktop-cd可能用不起來。你可能需要7.10的alternative cd。 

1. 用 Ubuntu 安裝 CD 開機 

2. 在 "boot:" 提示号出現時, 鍵入 "rescue" 當作開機參數 

boot: rescue 

3. 順着螢幕上的訓示跟着作 

4,例如 假設 /boot 磁碟分區位在 /dev/hda 

代碼: 

#grub-install /dev/hda 

下面是另外一種方法。firehare 寫道: 

1. 啟動系統到 Ubuntu 安裝CD 

2. 沿着螢幕上的指令直到 (千萬不要超過這一步) 

[!!] Fdisk disks 

3. 按 'Ctrl + Alt + F2' 

4. 按 'Enter' 進入終端 

5. 

~ # mkdir /ubuntu 

~ # fdisk -l /dev/discs/disc0/disc 

~ # mount <你的Ubuntu根裝置所在位置> /ubuntu/ 

~ # chroot /ubuntu/sh-2.05b# 

6. 假設 /dev/hda1 是 /boot 分區的位址 

7. sh-2.05b# grub 

grub> root (hd0,0) 

grub> setup (hd0) 

grub> quit 

1. 用 Ubuntu 安裝 CD 開機 

2. 在 "boot:" 提示号出現時, 鍵入 "rescue" 當作開機參數 

boot: rescue 

3. 順着螢幕上的訓示跟着作 

4,例如 假設 /boot 磁碟分區位在 /dev/hda 

代碼: 

#grub-install /dev/hda 

3,使用 grub for dos 

在沒有ubuntu安裝盤或livecd的情況下,你可以使用grub4dos重新安裝grub。 

你甚至可以用grub4dos代替grub來引導系統。 

3.1使用grub4dos重新安裝grub 

下載http://www.ubuntu.org.cn/download/installformharddisk/grldr 

oneleaf 寫道:将 grldr 複制到 C:/,編輯C:/BOOT.INI,加入一行: 

C:/GRLDR="GRUB" 

再手工輸入啟動指令 

例如:root (hd0,0) 

kernel /vmlinuz-2.6.10-5-686 root=/dev/hdb5 ro quiet splash 

initrd /initrd.img-2.6.10-5-686 

savedefault 

boot 

進入後,重新安裝grub就好了。 

重新安裝grub: 

例如 假設 /boot 磁碟分區位在 /dev/hda 

代碼: 

# grub-install /dev/hda 

3.2用grub4dos代替grub來引導系統 

yonsan 寫道: 

(憑記憶寫的,如有不完善請指正) 

如果你的系統現在正在使用grub引導方式,請在操作之前檢視一下/boot/grub/menu.lst的内容, 

建議将/boot/grub/menu.lst拷貝一份以備用(将它拷到fat32分區中存放就可以)!進入window環境下 

1) 下載下傳grub020p.zip并解壓到C槽根目錄下,打開C槽檢視一下是否有以下檔案 

C:/boot (檔案夾) 

C:/ChangeLog.txt 

C:/compile 

C:/COPYING 

C:/grldr 

C:/grub4lin 

C:/grub-0.95-patch1-startups 

C:/grub-0.95-patch2-findroot 

C:/grub-0.95-patch3-ntfs 

C:/grub-0.95-patch4-emulation 

C:/grub-0.95-patch5-splash 

C:/grub-0.95-patch6-scdrom 

C:/grub-0.95-patch7-bioscdrom 

C:/grub.exe 

C:/grub.pif 

C:/README.txt 

C:/robin.xpm.gz 

C:/scratchpad.txt 

2) 修改C:/boot/grub/menu.lst ,用你剛才從linux系統中拷貝的menu.lst覆寫C:/boot/grub/menu.lst 

3) 進入grub指令行方式 (出現grub引導菜單時按c鍵) 

> root (hd0,0) 

> setup (hd0) 

4) 重新開機計算機 

4.使用grub軟盤很簡單,隻要用grub軟盤啟動機器就行了。 

如何制作grub軟盤? 

如果你沒做過grub軟盤,想在用安裝cd恢複的時候順便做一個,那就試試下面這個: 

youngong 寫道: 

用安裝CD啟動電腦,輸入rescue回車 

啟動後執行"grub- install /dev/hda3"重新安裝grub到ubuntu分區上 

再用"grub-install /dev/fd0"制作一張啟動軟碟 

(如果你打算将grub安裝在MBR上可就更簡單了,隻需要grub-install /dev/hda)。 

再用剛才制作的軟碟重新開機電腦,就可以進入ubuntu linux了。 

為了還原我原來的NT Loader啟動linux的方式,再提取hda3分區的引導記錄 

即“dd if=/dev/hda3 of=/linux.lnx bs=512 count=1", 

并将生成的linux.lnx檔案複制到C區根目錄下, 

修改boot.ini加入“c:/linux.lnx=Ubuntu linux 5.04", 

就可以在硬碟引導時選擇啟動ubuntu了。 

其實整個過程中制作引導軟碟隻起了個過渡作用,但同時也友善以後維護系統。 

zhan 寫道: 

今天重裝了windows系統,将原來的xp裝為2003 

裝完後用ubuntu的安裝盤grub-install /dev/hda 将linux恢複了 

但是啟動時隻有一個winxp的選項,進入時說不能識别檔案系統,不能啟動 

然後出現一個GRUB 就停住了,不過linux系統是還可以用. 

各位大俠有沒有什麼好辦法,我不想再重裝了!! 

啟動win時的顯示見下: 

Booting 'microsoft windows xp professional' 

root (hd0,0) 

Filesystem type unkown ,partition type 0x7 

savedefault 

makeactive 

chainloader+1 

GRUB 

到這裡就不動了,按鍵基本都沒用,不過,ctrl+alt+delete能重新開機 

yonsan 寫道: 

用以下方式引導windows 

代碼: 

# Windows 

title Windows 

rootnoverify (hd0,0) 

chainloader +1 

------------------------------------------------------------------------------------------------------- 

重裝Windows後 無法進入ubuntu 的修複方法 

如果你的電腦是Win和Ubuntu雙系統的,可能會遇到這樣的問題。 

就是重裝Win之後将無法進入Ubuntu了。一般情況下遇到這樣的問題,我們有兩種方法解決! 

最簡單的方法: 

1.利用另外的一個LiveCD盤進入後把所有的盤都挂載。 

2.拷貝原Ubuntu下的/boot/grub到Win的C槽。 

3.修改Win的C槽裡的boot.ini檔案。它可能隐藏和隻讀 需要自己改下屬性! 

4.在這個檔案最後加入一句C:/grldr=ubuntu 

5.重新開機選擇Ubuntu。 

第二種方法: 

注意此種方法隻能在重裝WIN之前到Ubuntu下操作!!! 

首先确定你的grub正常,并能啟動linux 

然後啟動到Ubuntu如果你的是IDE硬碟 

請運作: 

sudo dd if=/dev/hda of=/media/linux.lnx bs=512 count=1 

如果你硬碟的被識别為sda ,請運作 

sudo dd if=/dev/sda of=/media/linux.lnx bs=512 count=1 

然後你可以到/media找到linux.lnx這個檔案 

将它拷貝到你的win根目錄,一般是C:/然後重新開機Win,修改根目錄下的boot.ini 檔案。 

在這個檔案最後增加: 

C:/linux.lnx=”linux 

OK,重新開機,選擇Ubuntu吧。 

注意:你需要将這個檔案備份,可以備份到網絡硬碟或者U盤内。 

這樣你重裝Win之後,隻需要将這個檔案拷貝到Win的根目錄,修改boot.ini 就可以了! 

總結:相比較而言,第一種方法更簡單一點,但是我覺得第二種方法更一勞永逸。 

當然,你可以選擇利用重裝grub來恢複對Ubuntu的引導。但是我不覺得那對于新手會簡單! 

感謝提供這兩種方法的sun391和enjoyforfun 

------------------以上内容轉自某個網頁------------------------------------ 

補充: 用GhostXP的安裝盤安裝Windows 可能不存在這個問題(至少本人用深度白金珍藏版5.7.1是這樣的) 

------------------------------------------------------------------------------------------------------- 

當我們的脆弱的Windows定期癱瘓,無法修複隻能重新安裝的尴尬時刻,我們發現“霸道”的Windows 在安裝時絲毫沒有顧及在硬碟的MBR上還存在作業系統的引導程式(grub),直接删除,隻寫入Windows的引導資訊。 

不管微軟這樣是不是有意而為,這都看出Windows的陋習和微軟的強盜行徑。我們怎麼辦,放棄Windows?但是我們還要我們心愛的遊戲,反正Windows已經是我硬碟上的一個因為遊戲還存在的附屬系統,我們忍了。 

發揚Linux人的DIY精神,我們自己動手找回丢失的Linux引導程式。 

1,使用Ubuntu live關盤引導進入 Ubuntu live 模式 

2,在Ubuntu中運作終端,執行下列指令: 

$sudo grub 

其實,grub不僅隻在我們引導時候出現在我們眼前,我們平時也可以直接運作grub指令進入模拟grub引導程式。 

3,之後,我們在grub 指令行模式下接着執行 

root (hdx,y) 

注意:其中x為硬碟号,數字 “ 0 ”指我們機器上的第一塊硬碟,grub的排列順序是從 “ 0 ”開始的。同理,如果你的系統在第二個硬碟上則是1,依次類推。另外,其中的“ y ”表示前面所指硬碟的 /boot 所在分區号,如果實在不知道,後面資訊怎麼填,你可以在輸入逗号後按Tab鍵,這樣可列出硬碟的分區資訊。 

4,安裝 grub ,執行指令: 

setup (hdx) 

setup (hdx)就是把GRUB寫到"x"硬碟的MBR上。如果成功會有一個successful...... 

5,安成安裝後,退出 grub 。 

quit 

6,重新開機機器,重新開機Linux。 

$sudo reboot 

備注:其實,當我們安裝完畢grub之後,還需要檢查 grub 的配置檔案資訊是否正确,方法是在 Ubuntu live 模式下利用 mount 指令加載原來ubuntu 的分區,在原 /boot 目錄下的 grub/menu1.st 檔案中的資訊。�

繼續閱讀