1. grub是一个多重启动管理器,它可以在多个操作系统中选择引导哪个操作系统。如XP与linux,可以选择引导其中的任何一个系统。当安装好了grub,开机时,会出现grub启动菜单,这时候grub会去读取/boot/menu.lst中的命令进行开机引导。但对于双系统用户有时候会出现问题,如一开机就出现grub,那么这是什么原因以及如何解决呢?
问题1:一开机出现grub
这是由于grub无法读取menu.lst,可能是menu.lst被破坏了。此时,如果想进入系统,可以用以下命令:
(1)进入XP
rootnoverify (hd0,0)//表示找到第一块硬盘的第一个分区,系统应该装在这个分区里面,也可以用root (hd0,0)
chainloader +1 //链式启动器 引导记录在第一个分区的第一个扇区里面 +1表示第一个扇区
boot
这样就会启动起XP系统了。
(2) 进入Linux
要确定Linux系统的boot目录在哪个分区里面,是独立分区还是与根分区是同一分区。
第一步:确定根分区,find /root/install.log 去寻找对应文件所在的分区,在我的系统中会返回 (hd0,9),这表明根目录在第10个分区上,即sda10. (注意: sd表示scsi硬盘,a表示第1块硬盘,b表示第2块.... 10表示第10个分区,sda10相当于(hd0,9),hd0表示第一块硬盘,hd1表示第二块硬盘....,9表示的是第10个分区)
grub> find /root/install.log
(hd0,9)
第二步:确定/boot与/目录在同一分区还是不同的分区, cat (hd0,9)/etc/fstab 输出如下:
grub> cat (hd0,9)/etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/usr /usr ext3 defaults 1 2
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-sda12 swap swap defaults 0 0
可以看到,既有/,也有/boot,表示它们在不同的分区,如果没有/boot项,则表示在同一分区。
第三步: 确定/boot目录所有的分区,find /grub/stage1 这是由于在不同的分区,如果是同一分区则 find /boot/grub/stage1
grub> find /grub/stage1
(hd0,8)
即目录boot所在的分区是第1块硬盘的第9个分区。
下面就能简单的启动linux系统了。
进入/boot: root (hd0,8)
装载基本内核文件: kernel /vm 按一下tab补齐
kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/
(ro=readonly, root=LABEL=/ 是根目录所在标签)
加载可执行的程序和驱动模块,挂载一个临时的根文件系统: initrd /in 按一下tab补齐
initrd /initrd-2.6.18-53.el5.img
这样就进入了linux系统了。
这种方法虽然能够进入xp与linux系统,但是没有从根本上解决问题。所以,应该修复一下grub.
以上boot所在的分区与根分区不在同一分区,如果在同一分区,则使用 kernel /boot/vm 补齐。
同理 initrd /boot/in 补齐。
问题2: 一开机直接进入xp,不出现grub.
这是由于grub丢失造成的。
对于以上两个问题,都可以通过修复grub来解决。
修复过程:-用redhat系统盘修复
(1)等待安装界面,输入linux rescue进入救援模式
(2)一直下一步,直到出现#sh
(3)输入 grub
grub>
grub> root (hd0,8)
grub> setup (hd0)
即把grub写入到mbr中去。
这样,就修复了主引导记录。
或者是进入了 sh#
然后 sh# chroot /mnt/sysimages
最后 sh# grub-install /dev/sda
sh#exit
即可。
2. menu.lst的写法
如果menu.lst丢失的话,得重新编写menu.lst
ln -s menu.lst grub.conf 软链接
menu.lst:
default=0
timeout=5
splashimage=(hd0,8)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-53.el5)
root (hd0,8)
kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.18-53.el5.img
title Other
rootnoverify (hd0,0)
chainloader +1
第一行 default=0默认启动第一个title.
第二行 timeout=5是启动延迟5秒。
第三行是开机启动动画。
下面就是linux与xp的启动命令。
3. 从硬盘安装linux
通常安装系统都是从光驱安装,当然,也可以从硬盘安装系统。
(1)首先在网上下载iso的linux安装文件,我下的是rhel-server-5.4-i386-dvd,这是一个.iso文件,安装序列号为2515dd4e215225dd,
用ultraISO把isolinux文件夹复制出来。从isolinux开始引导。
(2)从网上下载grub for dos.
(3) copy出grldr文件放到C盘目录下。
(4)修改隐藏文件 boot.ini,加上一行 C:/grldr="start from grub"
(5)重启系统,进入grub.
(6) grub> root (hd0,0) //进入C盘根目录
(7) grub> kernel /isolinux/vmlinuz //isolinux是linux内核文件
(8) grub> initrd /isolinux/initrd.img
(9) grub>boot
(10)选择hard drive,然后安装已经下载好的镜像文件就可以了。
然后就可以安装linux了。
这篇文章主要是总结了grub的常见错误以及解决方法,最后介绍了一下如何从硬盘安装linux.