1.問題的提出
筆者的電腦是windows 2000和Linux雙系統,由於前段時間“沖擊波”的沖擊,筆者決定重裝Windows 2000,順便對分區進行容量調整——合並兩個分區,由原來的C、D、E 、F、G調整成了C、D、E、F。
安裝完Windows 2000之後,由於以前安裝Linux時選擇把Grub裝在Linux分區的第一扇區,因此直接在Windows 2000下安裝BootMagic8.0建立Linux啟動鏈接(若Grub不是裝在Linux分區的第一扇區而是裝在MBR中,則須對Grub執行Setup或Install),此時只能進入Grub控制台,進入不了Grub圖形界面,啟動Linux時需要手動輸入命令:
root(hd0,7)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
initrd /boot/initrd-2.4.18-14.imgo
2.分析解決
仔細分析,原因應該是合並分區後,Grub配置文件中的(hd0,﹖)跟現在的分區不能對應,所以不能正常啟動。在筆者的電腦中,原Windows分區D、E、F、G在Linux下分別對應hdb5、hdb6、hdb7、hdb8,調整後的D、E、F則對應hdb5、hdb6、hdb7。於是按照前述方法進入Linux,打開/boot/grub/grub.conf文件,內容如下:
default=0 /默認選項為Red
Hat Linux
timeout=10 /10秒後進入選
定項
splashimage=(hd0,8)/boot/grub/splash.XPm.gz /*指定Grub圖形
界面文件
title Red Hat Linux(2.4.18-14)
root hd0,8
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
initrd /boot/initrd-2.4.18-14.img
title windows
rootnoverify(hd0,0)
chainloader +1
Windows 2000安裝在C盤,有關Windows的部分不需要修改;在有關Linux的部分中,將(hd0,8)改成(hd0,7)。
接著修改Grub的重要的文件stage2。重新啟動到Windows 2000下,用explore2fs-1.00-pre4(用Windows訪問ETX分區)導出stage2,然後用UltraEdit打開該文件(見圖),將其中的(hd0,8)改成(hd0,7),保存退出。
再次進入Linux,用修改後的stage2文件覆蓋原文件,重新啟動Linux,Grub圖形界面恢復。
更多內容請看Linux安全應用寶典 Linux防火牆 Linux服務器專題,或