grub配置文件menu.lst

下面是一个grub配置文件(/boot/grub/menu.lst)示例:

[root@tech grub]# cat menu.lst
# 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,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-53.1.14.el5xen)
        root (hd0,0)
        kernel /xen.gz-2.6.18-53.1.14.el5
        module /vmlinuz-2.6.18-53.1.14.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        module /initrd-2.6.18-53.1.14.el5xen.img
title CentOS (2.6.18-53.el5xen)
        root (hd0,0)
        kernel /xen.gz-2.6.18-53.el5
        module /vmlinuz-2.6.18-53.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        module /initrd-2.6.18-53.el5xen.img
 
Grub是如何找到硬盘的?grub对硬盘的代码设置有点像:
      (hd0,0)
  • 硬盘代号用小于号括起来的;
  • 硬盘以hd表示,后面会接一组数字;
  • 以“搜寻顺序作为硬盘代号,而不是依照硬盘排线的顺序!(这点很重要)
  • 第一个搜寻到的硬盘代号为0,第二个为1,以此类推;
  • 每块硬盘的第一个partition代号为0,以此类推。
搜索到的第一硬盘的第一个分区表示为:(hd0,0),第一个逻辑分区表示为:(hd0,4)。

在grub的配置文件中,title以前的四行是用来对grub进行整体设定的:
  • default=0 开机时的默认选择项目,这个必须与title对照,0表示对应一个title,1表示对应第二个title,以此类推。
  • timeout=5 如果设置了hiddenmenu,则等待5s,如没有按下任意键则执行默认的title项目。
  • splashimage=(hd0,0)/grub/splash.xpm.gz 在选单中显示的图片。
  • hiddenmenu 不显示选单

title用于设置开机的设定项目,开机是可以选择直接指定内核进行启动或者将控制权交给下一个Loader(chain loader)。
1、直接指定内核启动:
title CentOS (2.6.18-53.1.14.el5xen)   <--在选单中的显示名
        root (hd0,0)   <--设定内核所在磁盘位置
        kernel /xen.gz-2.6.18-53.1.14.el5  <--设定使用的内核
        module /vmlinuz-2.6.18-53.1.14.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet  <--设定根目录位置
        module /initrd-2.6.18-53.1.14.el5xen.img  <--设定initrd(虚拟化磁盘)镜像文件名
initrd 称为初始化虚拟磁盘,用于帮助加载核心模块,让Linux内核在开机过程中不需挂载根目录就能载入所需要的模块。如果你的filesystem为LVM, Raid时,或者硬盘为SCSI接口(包括SATA和USB接口)时,Linux内核将无法认识这些设备从而导致不能正常启动。而initrd可以通过 int13 芯片读取核心模块(驱动程序),当硬盘被驱动后内核就可以挂载根目录了。其他模块的读取也就没问题了。

2、利用chain loader方式将控制权交给下一个grub:
title Windows Partition
       rootnoverify (hd0,0)   <--将控制权交给C盘下的super block(第一个扇区)
       chainloader +1  <--代表第一个sector
       hide (hd0,1)  <--隐藏不想让Windows看到的分区(搜寻到的第一块硬盘的第二个分区,此分区为Linux分区,可选项)
       makeactive  <--设定partition的active标志(可省略)

安装Grub

1、使用grub-install脚本将必要的文件复制到/boot/grub/下。
grub-install [--root-directory=DIR] INSTALL_DEVICE
--root-directory=DIR 设置实际的安装目录,grub默认会将文件复制到/boot/grub/
INSTALL_DEVICE 安装的设备代码
例如:grub-install /dev/hdb    #将grub所需文件复制到/boot/grub/下,/boot/grub/在硬盘/dev/hdb上。

2、在/boot/grub/中设置menu.lst,然后用grub shell来安装grub到MBR或super block。

[root@linux ~]# vi /boot/grub/menu.lst
default=0
timeout=5
splashimage=(hd1,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-53.1.14.el5xen)
        root (hd1,0)
        kernel /xen.gz-2.6.18-53.1.14.el5
        module /vmlinuz-2.6.18-53.1.14.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        module /
initrd-2.6.18-53.1.14.el5xen.img
[root@linux ~]# grub
1). 先设定一下含有 /boot 目录的那个 partition。
grub> root (hd1,0)
Filesystem type is ext2fs, partition type 0x83
# grub 认出他为 ext2 的 filesystem。



2). 搜寻一下,是否存在 stage1 这个文件。
grub> find /boot/grub/stage1
(hd1,0)
# gurb安装在 /dev/hdb1 嘛!



3). 搜寻一下是否可以找到内 ? /boot/vmlinuz ?
grub> find /boot/vmlinuz
Error 15: File not found
grub> find /boot/vmlinuz-2.6.18-53.1.14.el5xen
(hd1,0)
# 需要填写完整的 kernel 档案名称!


4). 将grub安装到 MBR。
grub> setup (hd1)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd1)"... 15 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/boot/grub/stage2
/boot/grub/grub.conf"... succeeded
Done.


5). 将grub安装到/dev/hdb1 呢?亦即是 super block 当中!
grub> setup (hd1,0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd1,0)"... failed (this is not fatal)
Running "embed /boot/grub/e2fs_stage1_5 (hd1,0)"... failed (this is not fatal)
Running "install /boot/grub/stage1 (hd1,0) /boot/grub/stage2 p
/boot/grub/grub.conf "... succeeded
Done.
# 虽然 法经 stage1_5 安装到 super block 去,不过,还是没问题的!
# 关键是 stage1 要安装成功,最后显示 succeeded 字 就可以了!


grub> quit

win7中的menu.lst是一个配置文件,用于设置和管理启动引导菜单。该文件位于系统磁盘的根目录下的/boot/grub目录中。 在win7中,menu.lst文件的主要功能是提供操作系统选择菜单,使用户可以在多个操作系统之间进行选择。在menu.lst文件中,可以定义不同的操作系统和引导菜单项,以及各个菜单项的启动参数。 通过编辑menu.lst文件,用户可以添加、修改或删除操作系统的引导菜单。例如,用户可以将另一个操作系统的启动选项添加到菜单中,或者修改已有菜单项的启动参数以满足个人需求。 在menu.lst文件中,每一个菜单项通常包含以下几个关键信息: - title:菜单项的标题,用于显示在引导菜单中; - root:操作系统的安装路径; - kernel:表示内核文件的路径; - initrd:表示初始内存盘文件的路径; - bootargs:一些启动参数。 在使用menu.lst文件时,需要注意以下几点: - 修改menu.lst文件可能会对系统的启动过程产生影响,因此在进行任何修改之前,最好备份原始的menu.lst文件,以防止意外发生; - 修改menu.lst文件后,需要重启系统才能使修改生效; - 不正确的menu.lst文件配置可能导致系统无法启动,因此在修改之前,建议详细了解每个参数的作用和合理配置。 总之,win7的menu.lst文件是用于管理引导菜单的配置文件,通过编辑该文件,用户可以定义不同的操作系统和引导菜单项,以满足个人需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值