什么是RamDisk?RamDisk就是将内存(Ram)的一部分当做硬盘(Disk)来使用。RamDisk有固定的大小,可以像正常硬盘分区那样去使用。 就操作时间来讲,RamDisk比真实的物理硬盘快很多,当系统关闭或断电时,保存在RamDisk中的数据会全部丢失。RamDisk可以成为一个存放临时数据的好地方。
Linux的2.4内核已经内建支持RamDisk。RamDisk在很多情况下是很有用的,包括:
使用加密文件中的未加密数据;
某些类型的网页内容服务;
挂载loopback文件系统(例如,从软盘或CD运行)
我为什么要写这个文档?因为我需要设置一个16M的RamDisk来查看、创建加密文件。我不想让未加密的文件写入我的工作平台的任何物理介质。我还发现一个有趣的地方,可以轻易的在Ram中创建一个比我的第一个物理硬盘(20M)还大的虚拟硬盘,当时,我根本无法想象怎样填满这个虚拟硬盘。
这个文档将会带你一步步地经历创建和使用RamDisk的过程。
平台
我使用Red Hat 9进行测试,但是这应该适用于其他的2.4内核的Linux系统,我还假设你的Linux系统已经将RamDisk支持编译到了内核。我的计算机使用Pentium 4处理器,256M内存,确切的内核版本是:2.4.20-20.9
1. 查看你的系统已经创建了什么
RedHat默认创建16个RamDisk,虽然它们没有激活或使用任何Ram。系统列出的设备是ram0~ram19,但是只有ram0~ram15是默认可用的。使用下面的命令可用检出这些块设备:
[root]# ls -l /dev/ram* lrwxrwxrwx 1 root root 4 Jun 12 00:31 /dev/ram -> ram1 brw-rw---- 1 root disk 1, 0 Jan 30 2003 /dev/ram0 brw-rw---- 1 root disk 1, 1 Jan 30 2003 /dev/ram1 brw-rw---- 1 root disk 1, 10 Jan 30 2003 /dev/ram10 brw-rw---- 1 root disk 1, 11 Jan 30 2003 /dev/ram11 brw-rw---- 1 root disk 1, 12 Jan 30 2003 /dev/ram12 brw-rw---- 1 root disk 1, 13 Jan 30 2003 /dev/ram13 brw-rw---- 1 root disk 1, 14 Jan 30 2003 /dev/ram14 brw-rw---- 1 root disk 1, 15 Jan 30 2003 /dev/ram15 brw-rw---- 1 root disk 1, 16 Jan 30 2003 /dev/ram16 brw-rw---- 1 root disk 1, 17 Jan 30 2003 /dev/ram17 brw-rw---- 1 root disk 1, 18 Jan 30 2003 /dev/ram18 brw-rw---- 1 root disk 1, 19 Jan 30 2003 /dev/ram19 brw-rw---- 1 root disk 1, 2 Jan 30 2003 /dev/ram2 brw-rw---- 1 root disk 1, 3 Jan 30 2003 /dev/ram3 brw-rw---- 1 root disk 1, 4 Jan 30 2003 /dev/ram4 brw-rw---- 1 root disk 1, 5 Jan 30 2003 /dev/ram5 brw-rw---- 1 root disk 1, 6 Jan 30 2003 /dev/ram6 brw-rw---- 1 root disk 1, 7 Jan 30 2003 /dev/ram7 brw-rw---- 1 root disk 1, 8 Jan 30 2003 /dev/ram8 brw-rw---- 1 root disk 1, 9 Jan 30 2003 /dev/ram9 lrwxrwxrwx 1 root root 4 Jun 12 00:31 /dev/ramdisk -> ram0