Linux Ramdisk
Step 0: 簡介
Step 1: 系統(tǒng)預(yù)設(shè)的 RAM DISK
Step 2: 修改 ramdisk 大小
Step 3: Format the ramdisk
Step 4: mount RAM Disk
Step 5: 使用 ramdisk
Step 0: 簡介
RAM Disk 就是將系統(tǒng)上一塊 RAM 把它當(dāng)成是 Disk 來存取.相較於一般的 Disk 他的資料在下次開機(jī)後就不能保存了.
Step 1: 系統(tǒng)預(yù)設(shè)的 RAM DISK
系統(tǒng)在一開始就已經(jīng)存在 16 個(gè) RAM DISK, 從 ram0 - ram15 大小為 16M,一開始他並不占用任何系統(tǒng)上 RAM 的空間空間,直到我們掛載他為止.
[root @unsvr ~]# ll /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
Now, grep through dmesg output to find out what size the ramdisks are:
[root@unsvr ~]# dmesg | grep -i ramdisk
RAMDISK driver initialized: 16 RAM disks of 16000K size 1024 blocksize
如果我們需要更大的空間此時(shí)才要修改一下大小的參數(shù).
Step 2: 修改 ramdisk 大小
要修改 ramdisk 大小的方法很簡單,只要傳送我們想要的大小參數(shù)給 kernel(ramdisk_size=xxxxx) 就可以了,我們也可以直接修改 grub.conf 在每次開機(jī)都可以生效.
[root @unsvr ~]# vi /etc/grub.conf
-----------------------------------------------------------
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda5
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-20.9)
root (hd0,0)
kernel /vmlinuz-2.4.20-20.9 ro root=LABEL=/ hdc=ide-scsi ramdisk_size=32000
initrd /initrd-2.4.20-20.9.img
-----------------------------------------------------------
重新開機(jī)就會(huì)生效了.
[root@unsvr ~]# dmesg | grep -i ramdisk
RAMDISK driver initialized: 16 RAM disks of 32000K size 1024 blocksize RAMDISK:
Step 3: Format the ramdisk
因?yàn)槭?RAM Disk 的關(guān)係所以不需要 Format 成 ext3(Journaling file system)我們只需 ext2 的格式就好.
選一個(gè)你需要的 ram0 ~ ram15,我這裡使用的是 /dev/ram0
[root@unsvr ~]# mkfs.ext2 /dev/ram0
mke2fs 1.32 (09-Nov-2002)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
4000 inodes,
.......略.................
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
Step 4: mount RAM Disk
[root@unsvr ~]# mkdir /mnt/ramdisk
[root@unsvr ~]# mount /dev/ram0 /mnt/ramdisk
[root@unsvr ~]# df -h | grep ram0
/dev/ram0 31M 386K 29M 2% /mnt/ramdisk
我們一樣可以用 tune2fs 來看一些詳細(xì)的資料.
[root@unsvr ~]# tune2fs -l /dev/ram0
tune2fs 1.32 (09-Nov-2002)
Filesystem volume name: none
Last mounted on: not available
Filesystem UUID: fbb80e9a-8e7c-4bd4-b3d9-37c29813a5f5 Filesystem magic
.......略.................
Step 5: 使用 ramdisk
接下來我們就可以像是用硬碟一樣使用這個(gè)空間.不需要時(shí)直接 umount 就可以了.
[root@unsvr ~]# umount -v /mnt/rd /dev/ram0
RAM Disk 的資料會(huì)一直保留起來,直到你下次開機(jī)前系統(tǒng)都不會(huì)動(dòng)到這一塊的空間.
參考資料
http://www.linuxfocus.org/English/November1999/article124.html
http://www.vanemery.com/Linux/Ramdisk/ramdisk.html