/dev/ram0を解放する方法

/dev/ram0を解放する方法

私は以下を割り当てました/dev/ram0

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

これで1GBのRAMができました。割り当てられたスペースを解放するには?

答え1

私はパッケージ(Debian)のblockdevコマンドを使うことができると思います。util-linux

blockdev --flushbufs /dev/ram0

源泉

答え2

brd仮想ディスクの場合

RAMディスクを使用する場合、brdRAMを解放する唯一の方法は、カーネルからモジュールを削除または再起動することです。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

ddRAMディスクが故障するまで読み取り装置を使用する以外に、RAMディスクの元のサイズを確認する簡単な方法はないようです。ただし、デバイス自体がどれほど小さいかを考えると、これを実行するのに時間がかかりません。したがって、「クイックリセット」コマンドを作成できます。

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
}

カーネルの起動時にRAMディスクを使用する

このディスクを空にできると思いますfreeramdiskが、今すぐテストする構成はありません。

関連情報