拿 RAM 當硬碟來用(RAM Disk)

臨時想要做個 RAM Disk, 就去翻以前寫的文章, 發現以前的 Blog 寫的真的是很亂, 還是重新整理一下好了.

    1. 目前的作法如下:
  • 首先在/dev/shm建個tmp文件夾,然後與實際/tmp綁定
  • mkdir /dev/shm/tmp
  • chmod 1777 /dev/shm/tmp
  • mount --bind /dev/shm/tmp /tmp
    1. 方法2:
  • mkdir /mnt/ramfs
  • vi /etc/fstab
  • none /mnt/ramfs tmpfs defaults 0 0
  • mount /mnt/ramfs
  • 這樣就可以用這個 ramfs 來放一些有的沒有的, 可 man mount, man fstab
    1. 方法3:
  • mount -t tmpfs -o size=200m none /mnt/tmpfs
  • 200m 是 200Mb 的意思, 詳情請看 man mount 裡的 tmpfs
    1. 方法4:
  • 設定 /etc/default/tmpfs default shm 大小(系統會自動用此值去當硬碟)
  • 設定 /etc/fstab: tmpfs /tmp tmpfs size=100m,mode=1777 0 0 設讓 RAM 掛 100Mb 在 /tmp
  1. 方法5:(我目前都用此方法)
    • 直接設定 vim /etc/fstab 寫入下面那行
    • tmpfs /tmp tmpfs size=100m,mode=1777 0 0
    • # 設讓 RAM 掛 100Mb 在 /tmp
    • 註:2022年 Ubuntu 預設這種設定會 mount 在 root 下,可以增加 UID來解決視窗都會跳出警告訊息的狀況
    • tmpfs /tmp tmpfs size=100m,mode=1777,uid=1000 0 0
  2. 其它方法: 可參見下面連結, "有趣的 tmpfs" 中, 有提供很多更好用的方法

參考文件:

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈拿 RAM 當硬碟來用(RAM Disk)〉中有 2 則留言

  1. mkdir /dev/shm/tmp
    chmod 1777 /dev/shm/tmp
    mount --bind /dev/shm/tmp /tmp

    寫入 /etc/rc.local 後,凡是有開啟 XWin 為預設的 Server,會出現以下錯誤而無法順利開機 XWin。

    Aug 20 20:30:42 test gdm[3029]: gdm_slave_xioerror_handler: Fatal X error - Restarting :0
    Aug 20 20:30:52 test gdm[3279]: gdm_slave_xioerror_handler: Fatal X error - Restarting :0
    Aug 20 20:31:01 test gdm[3414]: gdm_slave_xioerror_handler: Fatal X error - Restarting :0
    Aug 20 20:31:01 test gdm[2772]: deal_with_x_crashes: Running the XKeepsCrashing script

    如果將 /etc/rc.local 新增的指令拿掉,重開後系統又會恢復正常。

    OS 為 Red Hat AS 4,測試手邊的三台機器,都會發生這樣的情形,不知道前輩您是否有碰過呢?

  2. 我更新這篇文章了, 看起來會造成誤解...
    使用方法1的狀況, 這三個步驟只有第一次 initial 的時後要做,
    所以寫進 rc.local 應該只有這行 "mount --bind /dev/shm/tmp /tmp".
    然後因為我沒有 Redhat AS 4, 所以沒辦法測試, 只能大概猜測一下狀況 Orz..

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料