Linux系统内存磁盘初始化技术详细解析

http://tech.ddvip.com   2007年03月13日    社区交流

本文详细介绍Linux系统内存磁盘初始化技术详细解析

  drwxr-xr-x 2 root root 4096 May 7 02:48 sys

  drwxr-xr-x 2 root root 4096 May 7 02:48 sysroot

  #

  一些小的,但是很有必要的程序组合能在./bin目录下得到,包括nash(它不是一个shell,而是一个脚本解释工具),用于加载内核模块的insmod,以及lvm等。

  上面所示目录中,相对比较有趣的是root目录下的初始化文件。这些文件,和传统的linux启动过程中一样,是在initrd镜像被解压缩到RAM中时生成的。待会我们将继续探讨这个问题。

  3 创建initrd的工具。

  现在,让我们回到一开始的讨论:initrd的镜像是如何被创建的?在传统的linux系统中,initrd是在linux build的时候被创建的。像mkinitrd这样的许许多多的工具,都能够用于通过必须的库和模块来自动构建一个用于过渡到真实根文件系统的initrd。事实上,mkinitrd工具是一个脚本文件,因此,我们能够很清楚得看到,这个过程是如何进行的。同样的,YAIRD (Yet Another Mkinitrd)工具,也允许我们自定制每一个initrd被构建的阶段。

  4 自己动手,打造自定义的初始化内存盘

  由于很多基于linux的嵌入式系统都没有硬盘驱动器,initrd也可以做为永久性的根文件系统。下面我就将告诉你们,如何创建一个initrd镜像。我使用的是标准linux桌面系统,因此大家即使没有嵌入式目标设备也可以照着做。除了交叉编译以外,嵌入式目标文件的构建过程是相同的。

  #!/bin/bash

  # Housekeeping...

  rm -f /tmp/ramdisk.img

  rm -f /tmp/ramdisk.img.gz

  # Ramdisk Constants

  RDSIZE=4000

  BLKSIZE=1024

  # Create an empty ramdisk image

  dd if=/dev/zero of=/tmp/ramdisk.img bs=$BLKSIZE count=$RDSIZE

责编:豆豆技术应用

正在加载评论...