天天看點

解決重裝windows xp後無法進入linux的問題

  幫人整理一台IBM X60筆記本上的windows系統,不曾想變成了配置GRUB的問題。試了許多辦法後終于解決,把整個解決過程記錄了一下,以備将來之用。

  這台機器裝了雙系統,裡面有個Linux。重裝上海政府版本的Windows後,一切正常,但沒想到主盤的MBR被覆寫,無法進入Linux了。

  好幾年沒有弄linux了,隻知道linux的引導程式叫LILO,從google上搜了一通未果,又問了個朋友,原來現在主流的引導程式都是GRUB。

  再搜GRUB的解決方案,得到的标準答案是用REDHAT的第一張安裝盤啟動後進行修複。

  快速從網上下載下傳REDHAT 企業版4.0的第一張盤,約100多兆,刻盤。

  啟動機器後,進行linux rescue模式,系統不停提示救援檔案的位置,無法到達linux的指令行狀态,可能是機器中的linux版本不一緻吧。

  再上網,找到還有GRUB4DOS 0.4.2和WINGRUB,是sf.net的開源軟體,下載下傳後把GRUB4DOS解壓到c:\boot\grub目錄下,不會用。為了友善,又安裝wingrub,在tools菜單中找到寫MBR的項,也不會用,就先用預設配置吧,寫入MBR,重新開機。

  無法啟動,連windows都無法進入,找來番茄花園的安裝盤,右側頂端有一項修複MBR的小工具,進入Windows XP。

  在wingrub中,将MBR内容移除。這樣引導權又交給windows,查找c:\boot.ini檔案來引導。按照grub4dos的說明,在Boot.ini檔案中加上1行。重新開機。

  c:\grldr="start GRUB"

  Windows重新OK,但選擇linux後,彈出一個GRUB預設的長菜單,每一項都無法進入。

find and load NTLDR of Windows NT/2K/XP

find and load CMLDR of Windows NT/2K/XP

find and load IO.SYS of Windows 9x/Me

find and boot Mandriva with menu.lst already installed

find and boot Linux with menu.lst already installed

commandline

floppy (fd0)

back to dos

reboot

memdrive duplicated from floppy image file (hd0,0)/sbm.bin

memdrive based on win98 partition (hd0,6)

  按c進入指令行狀态,出現grub>提示符。

  開始利用google搜尋出的解決辦法啟動linux,首先找到linux安裝在哪個分區上。最後,确認為(hd0,2), 在grub提示符鍵入的第一指令是:

root (hd0, 2)

  再輸入kernel的指令,在根目錄下找到vmlinuz-2.4.18-3檔案,grub指令行中支援TAB鍵非常友善,可以幫你查找指定目錄中的檔案名,但kernel後面的root參數把我難住了,一般的root=/dev/hda1到root=/dev/hda6,試了一遍,都不行,啟動到一半就提示找不到什麼init檔案。

  突然,想起來以前的linux的grub是正常的,找到grub.conf後,原來kernel這一行是這樣的:

Kernel /bzImage34 ro root=/dev/sda6 hda=none hdc=ide-scsi

  看來這個本本是SATA硬碟,一直用IDE盤,而且核心34與2.4.18的寫法也不一樣,在2.4.18中為/dev/hda6,是否在34核心中将STAT盤模拟為SCSI盤?

  好了,可以進入久違的LINUX了。

  嘗試grub-install來修複MBR,但在填後面這個裝置參數時還是不行,從/dev/hda到/dev/sda都試了,還是不能将GRUB重寫到MBR中。

  無奈,進入windows,将root、kernel、boot等三行,追加到c:\boot\grub\menu.lst檔案中,雙系統啟動恢複了。小結:  首先的控制權windows,引導配置檔案是:c:\boot.ini

  選start grub後,交給grldr,由grub查找c:\boot\grub\menu.lst檔案來啟動。

  這種方式的安裝雖然解決了問題,但不同于通常的辦法。一般先由linux的grub獲得控制權,然後根據菜單選擇,直接進入windows和linux,我這種辦法麻煩了一些,但也解決了問題,懶得再深究了。

  看來問題很小,但修複起來還真需要些技巧,主要原因是每個機器上分區的配置不一樣,啟動參數都需要調整是最大的麻煩。

  另外,還遇到一個小問題,此IBM隐藏了1個分區,linux用了2個分區,由于主分區不能超過4個,是以windows隻能用一個C槽了,無法用D盤了。看來哪天還要用PQ将IBM的隐藏分區删除掉!但是否能linux造成影響?