当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Ramdisk:在linux下如何使用 RAM 作为虚拟硬盘?

Unix/Linux
Linux下Socket连接超时的一种实现方法
谈一谈至关重要的Linux系统Swap交换区
Linux系统GRUB引导单用户模式三种方式
实例解析:虚拟机中Lvs的负载均衡实验
实用技巧:DOS文件转换成UNIX文件格式
Linux系统多进程查看及调配管理方法
非常实用 Linux系统开机提速我有绝招!
Linux系统中的文件目录结构介绍(表)
Linux操作系统如何完美装载Windows分区
Linux系统访问Windows分区FAT32和NTFS
高手进阶 Linux系统下MTD/CFI驱动介绍
新手看招 Linux系统的参数配置优化技巧
Xmanager 远程登陆Linux系统后配置Xdm
新手学堂:Emacs只启动一个进程的方法
小技巧 在Linux桌面上建立“我的文档”
Linux slab 分配器详解
拨开云雾:Lastlog文件不断变大的原因
使用ImageMagick 的提示与技巧
认识Linux操作系统中的播客客户端
Linux系统中显示设备配置工具介绍

Unix/Linux 中的 Ramdisk:在linux下如何使用 RAM 作为虚拟硬盘?


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 179 ::
收藏到网摘: n/a

  RamDisk简介
--------------------------------------------------------------------------------

这是一个关于在RedHat 6.0系统上如何建立一个RamDisk的文章。对于其他的发行版本这个过程也应该是相识的。 

什么是RamDisk? 一个A RamDisk 是你用作一个硬盘分区的一部分内存空间。或者换句话说,你是把内存假设为一个硬盘驱动器,并且你在它的上面存储文件。为什么我们要使用 RamDisk? 好的,如果你知道通常将要使用的文件是被调入内存以提高计算机的性能,因为内存的存储速度要快于硬盘。 这样类似于web服务器上的数据就可以用这个方法提高访问速度。或是有点愚蠢的,假如你有一台PII550计算机并且有1G的内存空间和500M的硬盘,你也可以用这种方法来增加你的你的硬盘空间。 或者,你也可以做一个无盘的机器,,没有比这个更为疯狂的了。 

以下是一些可以得到帮助的资源。 

http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html 
http://metalab.unc.edu/LDP/HOWTO/mini/LILO.html 
--------------------------------------------------------------------------------
如何使用RamDisk
--------------------------------------------------------------------------------

OK,使用ramdisk是一件很简单的事。首先,RedHat6.0的默认安装就支持ramdisk。你所需要做的就是格式化一个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

那么麻烦是什么呢?在系统重新启动的时候,将刷新这个区域。不要将任何没有拷贝的数据放在这个区域。如果你对这个目录进行了修改,并且需要保留这些修改,采取一些办法进行备份。

--------------------------------------------------------------------------------  
改变 ramdisks 的大小
--------------------------------------------------------------------------------

要想使用ramdisk你必须或是得到内核的支持或是以模块的形式将他加载到系统中。其中内核的配置选项是 CONFIG_BLK_DEV_RAM . 把ramdisk编译成一个可加载的模块的好处是你可以在加载是重新确定ramdisk的大小。


Okay, 第一个办法。在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=linu