随笔 - 11, 文章 - 24, 评论 - 10, 引用 - 0
数据加载中……

全面接触GRUB

全面接触GRUB


我们把这个目录称作image directory:/usr/share/grub/i386-redhat

我们把这个目录称作boot directory:/boot/grub/


一、创建一个GRUB启动软盘方法:

#cd /usr/share/grub/i386-redhat

#dd if=stage1 of=/dev/fd0 bs=512 count=1

#dd if=stage2 of=/dev/fd0 bs=512 seek=1

该启动软盘将把系统引导进入一个grub命令提示符的界面;这种方法制作的启动软盘不具有可读的文件系统格式,不能挂接。

二、本地安装GRUB的方法:

首先准备一张GRUB启动软盘并软盘启动,

grub> root (hd0,0)    指定boot所在分区,如果不能确认boot在哪个分区可以使用find进行查找,

grub> find /boot/grub/stage1    如果boot是单独一个分区则应该去掉路径/boot

grub> setup (hd0)    将GRUB安装在MBR,如果希望安装在某个分区始端则,

grub> setup (hd0,?)    GRUB将作为辅助引导程序使用


三、使用grub-install安装GRUB的方法:

#grub-install /dev/hda

#grub-install --root-directory=/boot /dev/hda    当/boot被单独列为一个分区时,有必要指出

#grub-install --root-directory=/media/floppy fd0    需要事先准备好一张软盘,格式化为ext2,挂接好。这个命令创建了一张GRUB启动盘,该盘具有ext2文件系统。

grub-install是一个shell脚本,在其识别系统中的硬件设备时存在发生错误的风险,不建议使用这种方式安装GRUB。


四、GRUB直接装载系统的步骤:

1、Set the GRUB's root device with the command 'root' . For example, root (hd0,0)

2、Load the kernel image with the command 'kernel' . For example, kernel /vmlinuz-version ro root=/dev/sda2

3、Load the initrd image with the command 'initrd' . For example, initrd /initrd-version

4、Run the command 'boot'

注:initrd 是inittal ramdisk的缩写,这个命令作用是'Load an initial ramdisk for a Linux format boot image and set the appropriate parameters in the Linux setup area in memory.'


五、GRUB间接装载其它系统的步骤(如windows):

原理是GRUB先调用另外一个引导软件,这个引导软件应该已经被装在某一个分区的“boot sector”

1、grub> rootnoverify (hd0,0)        'Set GRUB's root device without mounting'

2、grub> makeactive

3、grub> chainloader +1

    "+1" , GRUB将读取指定分区的第一个sector中数据。

4、grub> boot


六、GRUB的安全性:

GRUB可以支持明文密码和md5加密的密码。

使用明文密码方法    password PASSWORD

使用md5加密密码方法    password --md5 PASSWORD

生成md5算法密码的方法    grub> md5crypt    [回车]

编辑/boot/grub/grub.conf,使用password,lock命令实现几种加密方法如下:

1) 单纯对GRUB界面加密,而不对被引导的系统加密

在timeout一行下面加一行: password --md5 PASSWORD

2) 对GRUB界面加密,同时对被引导的系统加密

在timeout一行下面加一行: password --md5 PASSWORD

在title一行下面加一行: lock

3) 同时存在多个被引导系统,针对特定的系统实例分别加密(未对GRUB操作界面加密)

在title一行下面加一行: lock

在lock一行下面紧贴着再加一行: password --md5 PASSWORD

注:lock不能单独使用


七、GRUB image 文件:

stage1,stage2是最重要的两个映像文件;

stage1 的全部工作就是装载stage2(或者stage1.5)。PC的启动扇区(boot sector)大小是512字节,stage1的大小也是512字节,所以stage1可以被恰好嵌入在boot sector中。

stage1 以扇区列表格式(block list format)将stage2的地址信息存储起来。
stage1 encodes the location of stage2(or stage1.5) in a block list format.stage1 can not understant any filesystem structure.

stage2 是GRUB的核心映像文件。它负责除启动自己以外的其它所有工作。stage2有文件系统格式无关性。

stage1.5 是一个桥文件。stage1.5有一系列文件,每个都只支持某一个类型的文件系统。stage1不支持任何类型的文件系统。stage1装载stage1.5, stage1.5装载stage2。


八、什么是block list format

这是用于寻址定位一些未存放在任何文件系统中的文件的方法。比如chainloader。

它的格式是    [起点]+长度[,[起点]+长度]....        '0+100,200+1,300+300' 这代表GRUB将读取block0--blcok99, block200, block300--block599 。


posted on 2005-10-12 09:05 大西瓜 阅读(301) 评论(0)  编辑 收藏 引用 所属分类: Linux Technology 讨论

只有注册用户登录后才能发表评论。