CramFS 文件系统的制作

来源:互联网 发布:商家联盟源码 编辑:程序博客网 时间:2024/05/21 09:55

 

1. 准备根文件系统

    创建工作目录:$mkdir /rootfs

    创建根文件系统的目录:$cd /rootfs

                                            $mkdir bin dev etc home lib mnt proc sbin sys tmp var usr (12个目录)

                                            $mkdir etc/init.d

2. 创建设备文件

    复制当前系统的设备文件:$cp -dpR /dev /rootfs/dev

    如果使用 linux 2.6.x.x 内核,应该有节点 console、null 。如果在 /rootfs/dev 目录下没有这些节点,则转到 /rootfs/dev/目录来创建:

                  $mknod console c 5 1

                  $mknod null c 1 3

    缺少这些设备,会在启动 shell 时出现提示“Warning: unable to open an initial console. Kernel panic- not syncing: Attempted to kill init!” 的错误。

3. 准备目录系统启动所要的文件:linuxrc、rcS、inittab、fstab 四个文件。

    linuxrc 文件(位于 "/")的内容如下:

         #!/bin/sh

         echo  "mount /etc as ramfs"

         /bin/mount -f -t cramfs -o remount, ro /dev/bon/2 /

         /bin/mount -t ramfs ramfs /var

         /bin/mkdir -p /var/tmp

         /bin/mkdir -p /var/run

         /bin/mkdir -p /var/log

         /bin/mkdir -p /var/lock

         /bin/mkdir -p /var/empty

         #/bin/mount -t usbdevfs none /proc/bus/usb exec /sbin/init

    rcS 文件位于/etc/init.d/)的内容如下:

        #!/bin/sh

        /bin/mount -a

    这连个文件生成后,应该使其具有执行的权限,用chmod 来修改

    inittab 文件位于 /etc 的内容如下:

        #This is run first except when booting

        ::sysinit: /etcinit.d/rcS

        #Start an "askfirst" shell on the console

        #::askfirst: ~/bin/bash

        ::askfirst:~/bin/sh

        #Stuff to do when restarting the init process

        ::restart: /sbin/init

        # Stuff to do before rebooting

        :: ctrlaltdel: /sbin/reboot

        :: shutdown: /bin/umount -a -r

    fstab 文件位于 /etc 的内容如下所示:

        none /proc proc defaults 0 0

        none /dev/pts devpts mode=0622 0 0

        tmpfs /dev/shm tmpfs defaults 0 0

4. 将编译好的 BusyBox 的_install 目录下的三个文件夹用 tar 命令打包复制到 /rootfs 目录,解压后删除打包文件。

5. 将一些常用的 lib 文件复制到 /rootfs/lib/ 目录下,例如: ld-2.5.so、libc-2.5.so等文件以及其符号链接。注意这些lib 文件指的是交叉编译工具链的 lib 文件,即位于 /arm-linux-gcc/lib 下的lib 文件。在复制时应该注意采用打包后解包方式复制,以保证符号链接的正确性和完整性。

6. 生成CramFS 文件系统映像文件 cram.img

    $ mkcramfs /rootfs cram.img

    将工作目录 rootfs 作为根目录制作 CramFS 文件系统,这将经历一个处理和压缩的过程。压缩完成后,就可以测试下生成的 cram.img 文件了。

    下面命令挂载 CramFS 的文件系统:

    $mount -o loop -t cramfs /cram.img /mnt           将cram.img 文件系统加载到 /mnt

    $ ls /mnt

7. 将映像文件 cram.img 下载并写入目标板的 root 分区,正确配置 Linux 的内核启动参数,启动。

原创粉丝点击