我已经分配/dev/ram0
:
dd if=/dev/zero of=/dev/ram0 bs=1M count=1024
现在我的内存有 1Gb。如何释放分配的空间?
答案1
答案2
用于brd
虚拟磁盘
对于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
,但我现在没有可以测试的配置。