grub 修复与 grub.conf
grub修复这个问题一般发现在双系统上,也就是说在一台电脑上共存windows操作系统和linux操作系统,由于装系统时先装linux操作系统后装windows系统或者是windows操作系统出问题了,重装windows系统导致无法识别linux操作系统(由于装windows系统时,会直接把磁盘的MBR中的引导程序替换成windows的引导程序,而windows的引导程序无法识别linux操作系统,linux操作系统的引导程序(一般是grub程序)既会识别linux系统,也会识别windows系统),这时就需要grub程序修复。
      
Grub引导程序执行分为两个部分,stage1和stage2。
 
stage1是grub程序的主程序,这个程序必须要安装在开机区,一般安装在MBR或者boot sector。这是最小的程序,没有配置文件。
 
stage2是主引导程序加载的配置文件,一般来说,配置文件存放在/boot下。
 
用系统光盘启动,进入援救模式。
 
1.#chroot /mnt/p_w_picpath                       使用磁盘上的文件系统中的根为根目录,默认是使用光盘上系统的根目录。
 
2.1#grub                                                          进入grub shell进行grub的修复
 
2.2grub>root (hd0,0)                                         指定核心在哪里,也就是/boot这个目录在哪个分区中。
 
2.3grub>setup (hd0)                                          将grub主引导程序安装在MBR上;也可以是setup(hd0,n),安装在某个分区的boot seter上。
 
2.4grub>kernel /vmlinuz-2.6.18-164.e15 ro root=LABEL rhgb quiet           指定加载的内核。
 
2.5grub>initrd /initrd-2.6.18-164.e15.img                                                指定开机过程中需要的仿真驱动。
 
2.6grub>boot                                                                                       离开grub shell
 
grub-install直接安装stage2中的配置文件
 
3.1#grub-install /dev/had                                    更新/boot/grub目录中的所有文件(在虚拟机上不能生效)
 
或者#grub-install –root-directory=/home /dev/hda3             在独立的/dev/hda3的/home目录下生成/boot/grub中所有的文件;可通过ll /home/boot/grub验证。
 
grub.conf配置文件
default=0              默认加载title中的第一个
 
timeout=30           加载内核时30秒的倒计时
 
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz 开机时背景图片
 
#hiddenmenu         是否隐藏菜单
 
password  --md5 $1$osddslaj(用grup-mdt-crypt算出的md5值);开机时要修改菜单,必须提
供密码验证。
 
title CentOS (2.6.18-92.el5)
 
        root (hd0,0)
 
        kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/1 rhgb quiet vga=790
 
(vga用来调整tty1~tty6的终端分辨率;用grep “FRAMEBUFFER_CONSOLE”/boot/config—2.6.18-92.e15查看是否支持;CONFIG_FRAMEBUFFER_CONSOLE=y说明支持vga功能
 
        initrd /initrd-2.6.18-92.el5.img
 
title Windows partition
 
 root(hd0,0)                   使用此分区 
 
chainloader +1             指定boot sector
 
hide (hd0,4)            隐藏 (hd0,4) 这个分区
 
rootnoverify (hd0,0)        不检查些分区
 
 makeactive            设定这个分区为开机活动