initrd的英文还以是 boot loader initialized RAM disk,就是boot loader初始化的内存盘。initrd最初的目的是为了把kernel的启动分成两个阶段:在kernel中保留最少最基本的启动代码,然后把各种各样的硬件设备的支持以模块的方式放在initrd中,这样就在启动过程中可以从initrd所挂载的跟文件系统中加载所需要的模块,这样就可以在保持kernel不变的情况下,通过修改initrd中的内容来灵活的支持不同的硬件,在启动完成的最后阶段,根文件系统可以重新挂载到其他设备上。

制作initd.img映像文件.

使用mkinitrd命令生成:

  1. [root@web charlie]# mkinitrd initrd-`uname -r`.img `uname -r` 
  2. [root@web charlie]# ls 
  3. initrd-2.6.18-164.el5.img 

使用file命令查看文件类型:

 

  1. [root@web charlie]# file initrd-2.6.18-164.el5.img  
  2. initrd-2.6.18-164.el5.img: gzip compressed data, from Unix, last modified: Thu Jan  6 13:57:27 2011, max compression 

重命名映像文件,并对其解压:

  1. [root@web charlie]# mv initrd-2.6.18-164.el5.img initrd-2.6.18-164.el5.img.gz 
  2. [root@web charlie]# gzip -d initrd-2.6.18-164.el5.img.gz  
  3. [root@web charlie]# file initrd-2.6.18-164.el5.img  
  4. initrd-2.6.18-164.el5.img: ASCII cpio archive (SVR4 with no CRC) 
  5. 解压后的文件类型是cpio归档文件 

恢复映像文件,并查看:

 

  1. [root@web charlie]# cpio -i < initrd-2.6.18-164.el5.img  
  2. 11611 blocks 
  3. [root@web charlie]# ls 
  4. bin  dev  etc  init  initrd-2.6.18-164.el5.img  lib  proc  sbin  sys  sysroot 
  5. 这就是恢复后的内容 
  6. .: bin dev etc init initrd-2.6.18-164.el5.img lib proc sbin sys sysroot ./bin: dmraid insmod kpartx modprobe nash ./dev: console null ram ram1 systty tty0 tty10 tty12 tty3 tty5 tty7 tty9 ttyS1 ttyS3 mapper ptmx ram0 rtc tty tty1 tty11 tty2 tty4 tty6 tty8 ttyS0 ttyS2 zero ./dev/mapper: ./etc: ./lib: ata_piix.ko dm-mod.ko ext3.ko mptbase.ko scsi_mod.ko dm-log.ko dm-raid45.ko firmware mptscsih.ko scsi_transport_spi.ko dm-mem-cache.ko dm-region_hash.ko jbd.ko mptspi.ko sd_mod.ko dm-message.ko ehci-hcd.ko libata.ko ohci-hcd.ko uhci-hcd.ko ./lib/firmware: ./proc: ./sys: ./sysroot: