发新话题
打印

[翻译]Slackware initrd 迷你指南

[翻译]Slackware initrd 迷你指南

Slackware initrd 迷你指南(Slcakware initrd mini HOWTO)

   Author: Patrick Volkerding,volkerdi@slackware.com
   Date: Wed Jun 27 15:58:08 CDT 2007
     
   翻译:Scongwei Linn,scongwei_linn@yahoo.com.cn
   日期:2007年 11月 22日 星期四 10:20:58 CST

本文档描述怎样创建和安装initrd(可能需要2.6内核)。可参考"man mkinitrd"。

1. initrd是什么?
2. 为什么要使用initrd?
3. 怎样创建initrd?
4. 怎样使用initrd?


1. initrd是什么?

Initrd是"initial ramdisk"(初始随机存储器)的简称。initrd ramdisk是一个非常小的Linux文件系统,在根文件系统挂载之前被加载进内存,并挂载为内核启动(模块)。

2. 为什么要使用initrd?

在挂载根文件系统之前,我们需要加载各个内核模块,这就是我们需要 initrd的原因。通常根分区(ext3,reiserfs,xfs)或与磁盘驱动器相关联的控制器(SCSI,RAID等)需要这些模块的支持。基本上,在现在的Linux内核中有许多可用选项,所以想要发送许多不同内核来满足每一个用户的需求是不切实际的。发布一个通用内核和一些相关的内核模块更具有可定制性。

3.怎样创建initrd?

最简单的方法就是使用包含在mkinitrd包里的mkinitrd脚本。我可以使用slackware/a/目录下的包来升级至通用的2.6.21.5-smp内核。

首先,确定已经安装了内核,内核模块和mkinitrd包(当前版本数字可能不一致,以下例子仅供参考)。

     installpkg kernel-generic-2.6.21.5_smp-i486-1.tgz
     installpkg kernel-modules-2.6.21.5_smp-i486-1.tgz
     installpkg mkinitrd-1.1.2-i486-3.tgz
     
转至/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!

----------------------------------
trackback: http://blog.chinaunix.net/u/33029/showart.php?id=429561
Keep It Simple,Stupid!
--> Life is like a bug , do you know how to exploit it ?      
昨天翻译的,论坛里不知道该发哪好 暂且放这了……
不错不错 值得收藏

The audit

BUY WOW Glog The audit by the department''s Office of Inspector General and Office of Professional Responsibility concluded that former Gonzales aides Monica Goodling and Kyle Sampson violated department policies and federal civil-service laws.
发新话题