como desalocar / dev / ram0

5

Aloquei /dev/ram0 :

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

Agora eu tenho 1Gb sentado na memória. Como libero o espaço alocado?

    
por Thomas Keller 31.12.2015 / 23:10

2 respostas

3

Eu acredito, você pode usar o comando blockdev , que está disponível em util-linux package (no Debian)

blockdev --flushbufs /dev/ram0

Fonte

    
por 09.01.2016 / 16:52
0

Usando brd para o disco virtual

Usando brd para o disco virtual, a única maneira de liberar a RAM é removendo o módulo do kernel ou reinicializando. freeramdisk não funciona (para mim).

Aqui está um exemplo de uso

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

Não parece ser uma maneira fácil de determinar o tamanho original do disco RAM além de usar dd para ler o dispositivo até a falha. No entanto, dados esses dispositivos são implicitamente pequenos, não demoraria muito para fazer isso. Assim, um comando "reset rápido" pode ser criado:

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
}

Usando o ramdisk de tempo de inicialização do kernel

Eu acredito que esses discos podem ser liberados com freeramdisk , mas eu não tenho uma configuração que eu possa testar agora.

    
por 09.01.2016 / 16:08