教你一种实现嵌入式Linux系统新方法

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

本文详细介绍教你一种实现嵌入式Linux系统新方法

  接下来把文件系统拷贝至ramdisk为生成ramdisk映像文件做准备。我们把系统的ramdisk 改变到30M,重启计算机后,执行下列操作:

  dd if=/dev/zero of=/dev/ram bs=1k count=30000 把ramdisk调整到零,以便后面有更高的压缩率;

  mke2fs –m0 /dev/ram 30000 在ramdisk上建立30M的ext2文件系统;

  mount /dev/ram /mnt/ram 将已格式化的ramdisk挂载至目录/mnt/ram;

  cp –av /minlinux/* /mnt/ram 将文件结构拷贝至ramdisk。

  然后我们对/mnt/ram/etc目录下的文件进行修改。主要的文件是fstab,它负责在系统启动时把系统要挂载的文件系统信息传递给启动进程,我们使用ramdisk作为根文件系统,且不需要交换分区,所以此文件配置为:

/dev/ram   /    ext2     defaults  1  1
none     /proc  proc     defaults  0  0

  即可。一般来说系统启动时都要激活交换分区,即在启动脚本中有swapon –a 命令,但我们不需要交换分区,因此要把这一项移除,否则启动时会打印错误信息然后停止启动。

  最后我们要拷贝ramdisk的映像并将其压缩。主要步骤如下:

  运行df ,注意1024-blocks一栏中/dev/ram的数值,在我的机上为25600;

  卸载/dev/ram,运行cd /root切换至root目录并运行umount /dev/ram;

  将ramdisk写成映象文件,运行dd if=/dev/ram of=ram30.img bs=1k count=25600;

  压缩,并在/root目录下产生一个压缩的映象文件ram30.img.gz,运行gzip –9v ram30.img。

  3.2创建initrd ramdisk 映像

  首先我们在/dev/ram0中创建一个适合大小的ext2文件系统,方法同上,只是大小只有2048K,因为initrd ramdisk是用来引导(bootstrap)30M的ramdisk,并将它挂载至/mnt/ram。

作者:王社东 程晓宇 张立东    责编:豆豆技术应用

正在加载评论...