我们把这些全部的内容都打包并且压缩起来,就是我们一直所说的initrd.gz
find . | cpio -H newc --quiet -o | gzip -9 > /mnt/boot/initrd.gz
●grub
grub目录下包含寻找内核和启动内核所需要的各个阶段的文件,这些文件不需要我们去编写,只要用grub-install命令就可以实现;但是我们需要写grub的配置文件grub.conf来设定一些参数;
grub-install --root-directory=/mnt /dev/hdb 创建grub目录,指定我们的boot目录的父目录为/mnt,Boot在/dev/hdb磁盘上
cd /mnt/boot/grub 切换到grub目录下
我们来编写配置文件grub.conf
vim /mnt/boot/grub/grub.conf
default=0 设定默认启动第几个内核,因为我们的小linux只有一个内核,所以写上0就可以了
timeout=10 设定用户选择内核的时长,默认是10秒
title YINSHUO Linux 这是我们内核的标题,可以任意编写
root (hd0,0) 标记了我们内核所在的分区的位置,这里表示第一块磁盘上的第一个分区上
kernel /vmlinuz-2.6.18-308.el5 这是我们内核所在的位置
initrd /initrd.gz 这是我们initrd文件所在的位置
到此我们的grub文件也算是配置完毕了
●vmlinuz-2.6.18-308.el5
因为内核的编译复杂且缓慢,因此我并没有自己编译新的内核,而是使用的原有的vmlinuz-2.6.18-308.el5内核,所以我只是把原有的/boot/vmlinuz-2.6.18-308.el5复制到了/mnt/boot/目录下,因此内核中的各个模块也没有做任何修改;
cp /boot/vmlinuz-2.6.18-308.el5 /mnt/boot/vmlinuz-2.6.18-308.el5 复制到/mnt/boot/目录下
到此为止我们所有的跟boot有关的文件都创建完毕了,之后就是创建真正的root分区的文件