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

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 89 ::
收藏到网摘: 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