如何恢复对Linux的引导? 2008-08-04 15:47
有人可能装过Linux双系统,但是在XP老是要重装的年代,郁闷的是Linux不能被引导的问题经常出现了。原因嘛,XP在安装的时候是不会给我们提供系统引导程序安装的,Linux带有系统引导程序,如GRUB等等。它一般装在第一个硬盘(hd0)、第一个分区(hd,0)的第一个区上,所以要是我们把XP装在第一个分区上,那重装XP,GRUB就被破坏了,再也不能引导系统了。
要是遇上这样的情况就得重装GRUB了。别着急,Linux不会那么容易就要重装的。那么下面介绍GRUB的安装方法:
第一种方法:
用Live CD(Desktop, 图形界面),进入到安装界面,不用安装系统,直接打开一个终端(Ctrl+Alt+F1或F2、F3……输入命令:
#su
#grub:
grub>root (hdX,Y) X是Linux在第几个硬盘上,Y是/boot在第几个分区,都是从零开始数。
grub>setup(hdX) 一般为0。
grub>quit
#reboot
这样就完成了。
第二种方法:
用alternative CD(文本模式)
放入光盘重启电脑,进入第一个界面时设置引导参数
boot:rescue
系统文件装载完之后,进入命令行模式
#grub-install/dev/sda
1.用Live CD启动
2.打开一个终端,运行$sudo grub命令(这里可能需要等一会儿),你会看到’grub>’这样的提示符
3.在提示符’grub>’后输入find /grub/stage1,你会得到一个运行结果,比如我的机子上结果是(hd0,5) (这个命令其实就是找出/boot所在分区)
4.运行grub>root (hd0,5)(这个位置要填上你机子上的运行结果)
5.运行grub>setup (hd0)出现几行提示文字,最后是“… succeeded” 修复成功!
6.运行quit
7.重启计算机,取出live CD
手动引导Linux
grub>root (sd0,7)
grub>kernel (sd0,7)/boot/vmlinuz-2.6.16 ro root=/dev/sda8 –typelinux=ext3
grub>initrd (sd0,8)/boot/initrd.img-2.6.16
grub>boot
//以上是我的机器里参数,各位可以根据自己的情况改一下。
第三方法:
1.安装一键GHOST硬盘版8.3.
2.用explore2fs在windows下将Linux boot分区中的grub.conf文件导出。我导出的文件内容如下
QUOTE:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,8)
# kernel /vmlinuz-version ro root=/dev/sda3
# initrd /initrd-version.img
#boot=/dev/sda
default=1
timeout=1
gfxmenu (hd0,8)/message
title Everest (2.6.23.1-5)
root (hd0,8)
kernel /vmlinuz-2.6.23.1-5 ro root=LABEL=/ vga=788 splash=silent resume=/dev/sda4
initrd /initrd-2.6.23.1-5.img
title Windows XP SP2 Professional
rootnoverify (hd0,0)
chainloader +1
3.修改安装一键GHOST硬盘版后C盘中的一个文件C:bootghosmenu.lst
修改前内容如下
QUOTE:
# 禁止修改或删除本文件,否则”一键GHOST”将无法使用
# Don’t edit or delete this file, otherwise “1KEY GHOST” is not used.
# *** 制作
# MADE BY ***
timeout 0
default 0
#foreground E0E0E0
#background 505050
#gfxmenu /boot/ghos/grub_chs.msg
#fontfile /boot/ghos/fonts
#splashimage /boot/ghos/black.xpm
password –md5 $CiueUGxatxEg3ubyHriXN0
title 1KEY GHOST v8.3
# MODE1
clear
#password
map –mem /boot/ghos/ghost83.img (fd0)
map –hook
chainloader (fd0)+1
rootnoverify (fd0)
# MODE2
#kernel /boot/ghos/memdisk
#initrd /boot/ghos/ghost83.img
#plus
#plus-end
修改后内容为:
QUOTE:
# 禁止修改或删除本文件,否则”一键GHOST”将无法使用
# Don’t edit or delete this file, otherwise “1KEY GHOST” is not used.
# *** 制作
# MADE BY ***
timeout 5
default 0
#foreground E0E0E0
#background 505050
#gfxmenu /boot/ghos/grub_chs.msg
#fontfile /boot/ghos/fonts
#splashimage /boot/ghos/black.xpm
password –md5 $CiueUGxatxEg3ubyHriXN0
title Everest (2.6.23.1-5)
root (hd0,8)
kernel /vmlinuz-2.6.23.1-5 ro root=LABEL=/ vga=788 splash=silent resume=/dev/sda4
initrd /initrd-2.6.23.1-5.img
title 1KEY GHOST v8.3
# MODE1
clear
#password
map –mem /boot/ghos/ghost83.img (fd0)
map –hook
chainloader (fd0)+1
rootnoverify (fd0)
# MODE2
#kernel /boot/ghos/memdisk
#initrd /boot/ghos/ghost83.img
#plus
#plus-end
4.保存重启,选择
C:GHLDR=一键GHOST v8.3 Build 060716
就可以了。
第四种方法:
使用GRUB.EXE,GRUB.EXE 完全就是 GRUB,只不过重新包装,使得它能够在 DOS 下运行。所以,GRUB.EXE 具有你先前所熟悉的 GRUB 的所有优良特性。目前,grub_for_dos 的最新版(V0.1.1)可以从这里得到:
ftp://ftp.cosoft.org.cn/incoming/grub_for_dos-0.1.1.tar... 或者进入目录查看: ftp://ftp.cosoft.org.cn/incoming/
解压后,把 grub.exe 文件拷贝到 DOS 的硬盘分区(fat/fat32)或者 DOS 软盘即可。
用法:
重启计算机,用DOS启动盘启动。进入grub.exe所在目录,执行grub.exe。
提示:grub>
例:
grub> find /boot/vmlinuz ;查找/boot/vmlinuz
(hd0,7) ;运行结果告知/boot/vmlinuz位置
grub> root (hd0,7)
grub> kernel /boot/vmlinuz root=/dev/hda8 ;注意是hda8,不是hda7,要加1
grub> boot
重启动后,你可以重新安装grub到mbr,还可以使用ntloader作启动管理器。
使用ntloader:
进入 Linux后,执行 dd if=/dev/hda(X) of=路径与文件名 bs=512 count=1
说明:
a. 这条命令是将 Linux 的启动扇区存为一个文件
b. (X) 指的是 Linux 安装的 Boot 分区(如:Hda8 对应 Redhat )
c. 路径与文件名是存放文件的位置与文件名
例:
a.dd if=/dev/hda8 of=/redhat.lnx bs=512 count=1
b.将刚刚做好的文件拷贝redhat.lnx到Windows 的 C 盘(Hda1)
c.修改 C盘下的 boot.ini 文件添加最后两行例如:
[boot loader]
timeout=15
default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows 2000 Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)WINDOWS="Windows XP Professional" /fastdetect
c:Redhat.lnx="Redhat 9.0“
d.重启动,菜单就会出现了。
这样安装的好处在于 Linux与 Windows 互不干扰,即使要重装 Windows,也不会影响 Linux,只要备份那两个文件 (redhat.lnx 与 Magic.lnx), 重装完后放回 C盘,再按上面的方法修改 boot.ini 即可。