分类: 嵌入式
2014-04-23 22:36:41
原文地址:创建一个RAMDISK文件系统 作者:MicrochipEmbed
下面是创建一个RAMDISK文件系统。
1. 创建一个空的ramdisk文件系统
这里创建一个32M大小的ramdisk,
# dd if=/dev/zero of=ramdisk bs=1M count=32
32+0 records in
32+0 records out
33554432 bytes (34 MB) copied, 0.243921 s, 138 MB/s
2. 把这个文件作为根文件系统
root@localhost jjd]# mkfs ramdisk
mke2fs 1.40.8 (13-Mar-2008)
ramdisk is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
8192 inodes, 32768 blocks
1638 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33554432
4 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
3. 用loop 文件系统来挂载ramdisk
# mkdir mnt
# mount -o loop ramdisk mnt
4. 拷贝你的文件系统进ramdisk中
# cp -r /* mnt
5. 卸载
# umount mnt
6. 打包成ramdisk.gz文件
# gzip ramdisk
7.你将获得一个ramdisk.gz文件,此文件可用来作为ramdisk根文件系统。
注意:Linux内核配置中默认ramdisk大小为16M,如果您的创建的ramdisk大于16M需要修改内核的配置
make menuconfig->Device drivers->Block devices
另外需要注意一下 uboot启动参数的设置:
setenv bootargs "console=ttyO0,115200n8 root=/dev/ram0 rw rootfstype=ext2 init=/linuxrc initrd=0x82000000,32M ramdisk_size=32768"
在AM335X中 TI提供的的基础文件系统始终是无法ramdisk启动,后来自己单独做了一个文件系统,Busybox版本为 BusyBox v1.20.2 (2012-11-20 06:57:21 PST),按照上面的制作方法就可以成功在AM335X上面运行了。