Memory

如何釋放 /dev/ram0

  • January 9, 2016

我已分配/dev/ram0

dd if=/dev/zero of=/dev/ram0 bs=1M count=1024

現在我有 1Gb 的記憶體。如何釋放分配的空間?

我相信,您可以使用blockdev可從util-linux包中獲得的命令(在 Debian 中)

blockdev --flushbufs /dev/ram0

來源

brd用於ramdisk

brd對於 ramdisk,釋放 RAM 的唯一方法是從核心中刪除模組,或者重新啟動。freeramdisk不起作用(對我來說)。

這是一個使用範例

apt-get install loadln                # Contains "freeramdisk" command
modprobe brd rd_size=$((1024*128))    # 128MB
free -m                               # total=1000 used=356 free=643
dd if=/dev/zero bs=1M of=/dev/ram0    # writes 128 x 1MB records (as expected)
free -m                               # total=1000 used=485 free=515
freeramdisk                           # "freeramdisk: cannot open /dev/ram: No such file or directory"
free -m                               # total=1000 used=485 free=515
rmmod brd                             # REMOVE ALL THE RAM DISKS
free -m                               # total=1000 used=358 free=641

dd除了使用讀取設備直到失敗之外,似乎沒有一種簡單的方法可以確定 ramdisk 的原始大小。但是,鑑於這些設備本身很小,因此不會花費很長時間。因此可以創建“快速重置”命令:

resetramdisk() {
   mb=$(dd if=/dev/ram0 bs=1M of=/dev/null 2>&1 | sed -n 's/+.*//p;q')
   if test -n "$mb"
   then
       rmmod brd
       modprobe brd rd_size=$((1024*$mb))
   fi
}

使用核心啟動時 ramdisk

我相信這些磁碟可以通過 釋放freeramdisk,但我現在沒有可以測試的配置。

引用自:https://unix.stackexchange.com/questions/252579