格式化一个ramdisk并把他加到一个目录上。列出所有可用的ramdisk用“ls -al /dev/ram*”。这就会列出你现有可用的ramdisk。这些ramdisk并不抢夺内存,除非进行格式化的一类操作。这里有一个使用ramdisk的例子。
# create a mount point:
mkdir /tmp/ramdisk0
# create a filesystem:
mke2fs /dev/ram0
# mount the ramdisk:
mount /dev/ram0 /tmp/ramdisk0
这三个命令将为ramdisk创建一个目录,格式化ramdisk(创建文件系统),并且加载这个ramdisk到"/tmp/ramdisk0". 现在你可以将这个目录看成一个虚拟的分区。使用它就象使用其它的目录一样。
如果对ramdisk的格式化失败,那就是你的内核不支持ramdisk。其内核配置选项是 CONFIG_BLK_DEV_RAM .
ramdisk的默认大小是 4Mb=4096 blocks. 在你进行mke2fs的时候你可以看到你的ramdisk的大小。mke2fs /dev/ram0 将产生类适于以下的信息:
mke2fs 1.14, 9-Jan-1999 for EXT2 FS 0.5b, 95/08/09
Linux ext2 filesystem format
Filesystem label=
1024 inodes, 4096 blocks
204 blocks (4.98%) reserved for the super user
First data block=1
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1 block group
8192 blocks per group, 8192 fragments per group
1024 inodes per group
执行df -k /dev/ram0 你实际用了多少空间:
>df -k /dev/ram0
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/ram0 3963 13 3746 0% /tmp/ramdisk0
那么麻烦是什么呢?在系统重新启动的时候,将刷新这个区域。不要将任何没有拷贝的数据放在这个区域。如果你对这个目录进行了修改,并且需要保留这些修改,采取一些办法进行备份。
要想使用RamDisk你必须或是得到内核的支持或是以模块的形式将他加载到系统中。其中内核的配置选项是 CONFIG_BLK_DEV_RAM . 把ramdisk编译成一个可加载的模块的好处是你可以在加载是重新确定ramdisk的大小。
第一个办法。在lilo.conf文件中加入:
ramdisk_size=10000 (or ramdisk=10000 for old kernels)
这样在你使用lilo命令和重新启动计算机之后,ramdisk的默认大小将会是10M。这是一个/etc/lilo.conf文件的例子:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz
label=linux
root=/dev/hda2
read-only
ramdisk_size=10000
确切的说,我只是使用了9M多的空间,文件系统也将占用一定空间。
当你以模块的形式编译ramdisk时,你可以在加载的时候决定ramdisk的大小。这也可以通过修改/etc/conf.modules 的选项设置来做到。
options rd rd_size=10000
或是在命令行中指定参数给ismod:
insmod rd rd_size=10000
以下是介绍如何使用这样的模块的例子:
卸载ramdisk,umount /tmp/ramdisk0 .
卸载模块(再上一节所提到的过程中自动加载), rmmod rd
加载ramdisk模块并且把它的大校设为20M,insmod rd rd_size=20000
创建一个文件系统, mke2fs /dev/ram0
加载ramdisk, mount /dev/ram0 /tmp/ramdisk0