转至/boot目录下:
cd /boot
然后运行"mkinitrd"。比如根文件系统使用reiserfs,且在IDE系统中reiserfs模块是需要加载的唯一模块
mkinitrd -c -k 2.6.21.5-smp -m reiserfs
这命令作了两件事。首先创建/boot/initrd-tree目录(容纳initrd的文件系统)。然后从这树目录创建initrd (/boot/initrd.gz)。如果需要,你可以在/boot/initrd-tree下做些额外的修改,并再次运行mkinitrd来重新创建 initrd镜像,这一步不使用其他参数选项。这一步不适必须的(可选的),但是只有高级用户会考虑这方面的问题。
又一个例子:使用2.6.21.5-smp内核模块为一个文件系统为ext3的根分区并挂载在 /dev/hdb3的系统编译一个initrd镜像。
mkinitrd -c -k 2.6.21.5-smp -m ext3 -f ext3 -r /dev/hdb3
这样initrd会自动加载ext3模块要使用的mbcachae和jbd模块。
要自动使用当前根文件系统和内核,可以简单运行:
mkinitrd -m ext3
4. 怎样使用initrd?
建好 initrd(/boot/initrd.gz)后,我们要使它在启动的时候和内核一块被加载。如果使用LILO启动加载器,修改/etc/lilo/conf,添加一行来加载initrd。如下:
# Linux bootable partition config begins
image = /boot/vmlinuz-generic-2.6.21.5-smp
initrd = /boot/initrd.gz
root = /dev/hda6
label = /Lnx26215smp
read-only
# Linux bootable partiton config ends
initrd = /boot/initrd.gz将会加载 initrd。只需在加载内核镜像的下一行加上这一句就可以了。保存,然后在命令行下运行lilo。每次编辑lilo.conf或重新编译 initrd都要运行一次lilo才能使修改有效。
其他如syslinux等启动加载器也支持initrd的使用。详情请参考这些程序关于使用initrd的相关文档。
---------
Have fun!
