linux 制作ramdisk镜像,制作ramdisk文件系统

http://blog.163.com/qiu_zhi2008/blog/static/6014097720108852750530/

http://tech.ccidnet.com/art/302/20080403/1410071_1.html

一、配置内核

Device Drivers --->

ATA/ATAPI/MFM/RLL support (DEPRECATED)

General Setup - --> [*] Initial RAM filesystem and RAM disk

(initramfs/initrd) support

Device Drivers ---> [*] Block devices ---> RAM

block device support

(1) Default number of RAM disks

(30720) Default RAM disk size(kbytes)

二、制作文件系统镜像

1、建立一个大小为30M的临时文件,bs是单位,count是大小。

dd if=/dev/zero of=./ramdisk bs=1M count=30

此处以dd命令建立一个了一个30M文件系统映像,存于当前目录。(of后面的./可以不用,也是在当前目录下生成ramdisk文件)

2、将文件系统映像格式化成ext2格式。

mkfs.ext2 -F ramdisk

3、创建一个挂载点并将映像文件挂载到这个挂载点上。

mkdir -p /dev/initrd

mount -o loop ramdisk /mnt/initrd

4、拷贝相应的文件到/mnt/initrd目录下

5、卸载

umount /mnt/initrd

6、压缩

gzip -v9 ramdisk

生成ramdisk.gz文件

7、解压

gunzip ramdisk.gz

生成ramdisk文件

8、在文件系统前加上0x40字节的头。

./mkimage -n 'uboot ext2 ramdisk rootfs' -A arm -O linux -T ramdisk

-C none -a 0x10000000 -e 0x10000040 -d ramdisk.gz

did5306.ramfs.gz

uboot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件。mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字节的头,记录参数所指定的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的,哪种类型,加载内存中的哪个位置,

入口点在内存的那个位置以及映象名是什么。

注意:在设置bootargs和bootcmd时记得要地址保持一致。

9、设置启动参数(从mmc上启动)

setenv bootargs console=ttyS1,115200n8 $mtdparts

initrd=0x10000040,30M init=/linuxrc root=/dev/ram0 rw

rootfstype=ext2 ip=$ip

setenv bootcmd fatls mmc 0\;fatload mmc 0 0x8000

vmlinux.bin\;fatload mmc 0 0x10000000 did5306.ramfs.gz\;go 0x8000;

save

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值