虚拟块设备文件 /dev/ram0

一、配置内核使支持ramdisk

内核中有一个驱动模块称为ramdisk设备,使用ram模拟块设备。

1、配置内核使支持/dev/ram0

/dev/ram0属于块设备驱动,所以在Device Drivers–>Block devices中选择RAM block device support,如下:

2、另外当然也需要文件系统支持

需要支持ext4文件系统,在File systems目录下,

需要FAT文件系统支持,File systems–>DOS/FAT/NT Filesystems目录下,

在配置内核使内核支持FAT文件系统的时候,并且用busybox生成mkfs.ext2,mkfs.vfat,这两个工具可以将块设备格式化为对应的文件系统

用mkfs.vfat格式化/dev/ram0的时候出现问题FAT:codepage cp437 not found

原因是没有配置对应文件系统的codepage,在File systems–>Native language support

另外又会出现FAT_fs<ram0>:IO charset iso8859-1 not found,选择上面标记2则解决问题。

以上部分参考:http://blog.csdn.NET/newnewman80/article/details/8204913

二、使用ramdisk

Ramdisk的意思是你把内存假设为一个硬盘驱动器,你在他的上面存储文件,内存的I/O速度是硬盘的N倍(500万)

示例:建立一个ramdisk并挂载

1)建立一个挂载点
  mkdir /tmp/ramdisk0
2)创建一个文件系统
  mke2fs /dev/ram0   # or :mkfs -t ext2 /dev/ram0
3) 挂载ramdisk:
  mount /dev/ram0 /tmp/ramdisk0

*   如果对ramdisk的格式化失败,那就是你的内核不支持ramdisk。其内核配置选项是 CONFIG_BLK_DEV_RAM .
*   执行df -k /dev/ram0 你实际用了多少空间。
*   不要将任何没有拷贝的数据放在这个区域。如果你对这个目录进行了修改,并且需要保留这些修改,采取一些办法进行备份。
     应该设置一个cron进程。使它每十分钟时检查一下文件是否有变动,并且备份这些改动
*   ramdisk的默认大小是 4Mb=4096 blocks. 在你进行mke2fs的时候你可以看到你的ramdisk的大小。
*   把ramdisk编译成一个可加载的模块的好处是你可以在加载时重新确定ramdisk的大小。
*   一个非常酷的做法是用一个有1G内存的计算机并且将其中的256M作为”/tmp”. 如果你有很多的进程使用”/tmp”,这样做会提高你的系统速度。同时,/tmp目录中的东西将在系统重新启动的时候被删除,这可是一件好事。

以上文章摘自:http://www.myhack58.com/Article/48/66/2014/45478.htm

发表回复