作者在 2007-07-04 23:14:00 发布以下内容
五、GRUB 常用命令
5.1 只能用于配置文件的命令
下面这5个命令只能出现于配置文件中,分别是 :
a)default :定义默认引导的操作系统。0 表示第一个操作系统,1表示第2个,依此类推
b)fallback :如果 default 所指定的操作系统引导失败,则默认引导由 fallback 指定的操作系统
c) hiddenmenu :用于启动时隐藏菜单,除非在 timeout 之前按下 ESC 才能看到菜单。
d)timeout :定义多少秒内如果用户没有按下键盘上的某个按键,就自动引导 default 所指定的操作系统。
e)title :定义引导项目的名称。
f)password :用于定义进入 GRUB 命令模式的密码。你还可以为每个操作系统都定义一个密码,方法是把 password
命令放在 title行之后。
而且每个操作系统的引导密码可以不同,也可以和进入命令模式的那个密码不同,最大程度的保证 GRUB 的安全。
5.2 只能用于命令模式或者 grub shell 的命令
a)device :用于定义 BIOS 中的磁盘设备和操作系统的磁盘设备之间的映射关系。
例如 device (hd0)/dev/hdb 把 BIOS 中的第一个硬盘相当于 Linux 的 /dev/hdb
b)serial :用于初始化一个串口设备。
例如 :serial –-unit=0 –-speed=9600 表示初始化 COM1(--unit=0),速率为 9600 Baud
不过 grub shell 下执行该命令会显示 “无法识别的命令”
c)terminal :用于切换显示输出。有两这个值可选 :console 和 serial 。当你把笔记本接到一个没有显示器/键盘
的主机上时,执行
terminal serial 就可以在你的笔记本上操作这台主机的 GRUB 了。执行 terminal console 把显示输出还原到该
主机。
不过 grub shell 下执行该命令会显示“无法识别的命令”
d)splashimage :用于定义启动时的背景图片。例如 splashimage /grub/splash.xpm.gz
经过测试,发现用 tarball 安装的不支持该命令,这似乎是 redhat grub rpm 专有的。
e)blocklist :用于显示某个文件在文件系统中的位置,以 block list 的形式显示。例如 blocklist /vmlinuz
f)ca :用于显示文件内容。由于 GRUB 可以直接访问多种文件系统,所以可以用 cat (hd0,1)/etc/passwd 来在
GRUB 命令模式下查看 /etc/passwd 文件
g)root :用于指定含有 stage 文件的分区。如果有 /boot 分区,则 root device 就是 /boot 分区,否则
就是 / 分区。
h)rootnoverify :和 root 类似,但不会尝试挂载该分区。例如用于指定 windows 操作系统所在的分区。
i)chainloader :用于加载另外一个 boot loader ,通常是用于加载 windows 的 boot loader 。它的参数是一个
block list ,
例如 chainloader (hd0,0)0+1 表示加载第一个磁盘的第一个分区的第1块,0 是开始位置(block 从0开始编号)
例如 chainloader (hd0,0)0+1 表示加载第一个磁盘的第一个分区的第1块,0 是开始位置(block 从0开始编号)
,+1 表示总共读取多少个 block。
所以 chainloader 2+0 表示读取第3个block (编号为2)
所以 chainloader 2+0 表示读取第3个block (编号为2)
j)find :可以用于在所有分区上搜索文件。注意,是所有分区,而不是某个分区。例如 find /vmlinuz 将会在所有
分区上查找位于该分区的顶级目录下的
vmlinuz文件,如果找到就打印该分区名,例如 (hd0,1)。
k)geometry :用于显示或者设置某个硬盘的 CHS 参数,同时还显示分区信息。例如 geometry (hd0)
l)halt :关机
m)reboot :重启机器
n)kernel :指定操作系统内核文件,还可以在内核文件名后加上参数。例如
kernel /vmlinuz ro root=LABEL=/
表示以只读的方式挂载 / 分区,且根分区设备是 label 为 / 的那个设备;也可以直接给出设备名。
o)initrd :用于指定 RAM Disk 文件,例如 initrd /initrd-2.xx.img 。
p)boot :引导 kernel 所指定的内核,对于 linux 来说,必须先加载了 kernel 和 initrd 才能执行 boot 。
q)setup :用于安装 stage1 到磁盘的 MBR 或者某个分区的引导扇区。
六、保护 GRUB 设置
下面是一个例子
[Copy to clipboard]CODE:
password –-md5 <密码1>
timeout=30
default=0
title “redhat AS 4”
password –-md5 <密码2>
 
[Copy to clipboard]CODE:
password –-md5 <密码1>
timeout=30
default=0
title “redhat AS 4”
password –-md5 <密码2>