您好,登錄后才能下訂單哦!
今天給大家介紹一下Linux系統如何制作RamDisk。文章的內容小編覺得不錯,現在給大家分享一下,覺得有需要的朋友可以了解一下,希望對大家有所幫助,下面跟著小編的思路一起來閱讀吧。
RamDisk簡介:
顧名思義,Ram:內存,Disk:磁盤,RamDisk就是指使用你的一部分內存空間來模擬出一個硬盤分區。不過這在硬盤越來越便宜的今天好象并不是很有用,但現在內存也越來越便宜呀,對于一些我們想讓其訪問速度很高的情況下,還是可以試一試的。
我使用Red Hat 9進行測試,但是這應該適用于其他的2.4內核的Linux系統,我還假設你的Linux系統已經將RamDisk支持編譯到了內核。我的計算機使用Pentium 4處理器,256M內存,確切的內核版本是:2.4.20-20.9
1. 查看你的系統已經創建了什么
RedHat默認創建16個RamDisk,雖然它們沒有激活或使用任何Ram。系統列出的設備是ram0ram19,但是只有ram0ram15是默認可用的。使用下面的命令可用檢出這些塊設備:
[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
現在,用grep在dmesg的輸出中找出RamDisk的大小
[root]# dmesg | grep RAMDISK RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize RAMDISK: Compressed image found at block 0
你可用看到,RamDisk默認只有4MB。我想要一個16MB的RamDisk,所以,下一步要配置Linux,使得在啟動過程中使用一個更大的RamDisk。
2. 增加**RamDisk的大小**
RamDisk的大小是被一個命令行選項控制的,這個選項會在系統啟動時傳給內核。由于RedHat9的默認bootloader是GRUB,我將用新的選項修改/etc/grub.conf,RamDisk大小的內核選項是:ramdisk_size=xxxxx ,xxxxx是指大小為1024-Byte的塊的個數。下面是我要添加到/etc/grub.conf的內容,它將RamDisk配置為16MB:
# 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=16000 initrd /initrd-2.4.20-20.9.img
將文件保存后,你需要重啟系統。重啟后,通過查看dmesg的輸出來確認修改已經生效:
[root]# dmesg | grep RAMDISK RAMDISK driver initialized: 16 RAM disks of 16000K size 1024 blocksize RAMDISK: Compressed image found at block 0
3. 格式化**RamDisk**
無需將RamDisk格式化為日志文件系統,我們將使用EXT2文件系統。我只想使用一個RamDisk,所以我只格式化ram0。
[root]# mke2fs -m 0 /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, 16000 blocks 0 blocks (0.00%) reserved for the super user First data block=1 2 block groups 8192 blocks per group, 8192 fragments per group 2000 inodes per group Superblock backups stored on blocks: 8193 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.
-m 0選項指定了文件系統上root用戶保留區塊的比例為0,這是默認的特性。我希望普通用戶可以使用所有的RamDisk空間。
4. 新建一個掛載點并掛載**RamDisk**
你已經格式化了RamDisk,現在要為它新建一個掛載點。然后就可以掛載你的RamDisk并使用它。我們將會使用/mnt/rd文件夾。
[root]# mkdir /mnt/rd [root]# mount /dev/ram0 /mnt/rd
檢測新掛載的RamDisk
[root]# mount | grep ram0 /dev/ram0 on /mnt/rd type ext2 (rw) [root]# df -h | grep ram0 /dev/ram0 16M 13K 16M 1% /mnt/rd
你可以用tune2fs命令查看新RamDisk的詳細信息
[root]# 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 number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: filetype sparse_super Default mount options: (none) Filesystem state: not clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 4000 Block count: 16000 Reserved block count: 0 Free blocks: 15478 Free inodes: 3989 First block: 1 Block size: 1024 Fragment size: 1024 Blocks per group: 8192 Fragments per group: 8192 Inodes per group: 2000 Inode blocks per group: 250 Filesystem created: Mon Dec 8 14:33:57 2003 Last mount time: Mon Dec 8 14:35:39 2003 Last write time: Mon Dec 8 14:35:39 2003 Mount count: 1 Maximum mount count: 22 Last checked: Mon Dec 8 14:33:57 2003 Check interval: 15552000 (6 months) Next check after: Sat Jun 5 14:33:57 2004 Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 128
在我的系統中,我需要’var’用戶能夠讀寫RamDisk,所以必須修改/mnt/rd文件夾的所有者和權限。
[root]# chown van:root /mnt/rd [root]# chmod 0770 /mnt/rd [root]# ls -ald /mnt/rd drwxrwx--- 2 van root 4096 Dec 8 11:09 /mnt/rd
RamDisk掛載點的所有者和權限要根據你的特定情況進行修改。
5. 使用**RamDisk**
RamDisk已經創建成功,現在,你可以像在物理硬盤分區那樣,在RamDisk上復制、移動、刪除、編輯或列出文件。這是一個查看加密的
或 文件的好地方,也是一個創建加密文件的好地方。你的主機關閉后,所有在RamDisk上創建的文件都會消失。用下面的命令可以輕易的卸載RamDisk:
[root]# umount -v /mnt/rd /dev/ram0 umounted
Note**:**如果你卸載了RamDisk,你的數據依然會保存在那里。一旦內存被分配給了RamDisk,它就會被標記,之后內核就不會試圖重用這塊內存。因此,使用了RamDisk后,就不能回收那塊內存。正因如此,你要考慮清楚,不要給RamDisk分配太多的內存。在我的系統里,我分配了小于10%的物理內存。你要根據自己的需要確定RamDisk的大小。當然,也可以重啟后釋放空間。
—————————————————————————————————————————————————————————
自動創建**RamDisk**
如果你需要每次系統啟動后創建和掛載RamDisk,可以通過在/etc/rc.local啟動腳本里添加命令來自動執行這個進程。
下面是我添加的命令:
# Formats, mounts, and sets permissions on my 16MB ramdisk
/sbin/mke2fs -q -m 0 /dev/ram0
/bin/mount /dev/ram0 /mnt/rd
/bin/chown van:root /mnt/rd
/bin/chmod 0750 /mnt/rd
Linux是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。
以上就是Linux系統如何制作RamDisk的全部內容了,更多與Linux系統如何制作RamDisk相關的內容可以搜索億速云之前的文章或者瀏覽下面的文章進行學習哈!相信小編會給大家增添更多知識,希望大家能夠支持一下億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。