重裝XP後,無法進入Linux的解決方案

來源:互聯網
上載者:User

重裝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吧。
注意:你需要將這個檔案備份,可以備份到網路硬碟或者隨身碟內。
這樣你重裝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 檔案中的資訊

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.