Ti avanza RAM, usala come Ramdisk!

Ci sono delle applicazioni (es. flashplayer) che usano avidamente la cartella /tmp per sversare quanti più dati possibili.
Ogni volta che carichiamo un video (es da YouTube) facciamo cache della parte che segue, poi cambiamo video e la cancelliamo, quindi è un continuo leggi/scrivi sul disco e poi ci lamentiamo che la temperatura del hard disk è come quella della bistecchiera... il ramdisk è la situazione ideale per queste situazioni.

Attenzione: i dati salvati nel ramdisk spariscono ogni volta che riavviamo il PC. Utilizzate questa tecnica solo per file temporanei che vi serve avere un accesso veloce.

Che fare? Controllate quanta RAM vi avanza per fare il ramdisk

free -m

Se una volta aperti tutti i programmi che usiamo di solito ci avanza della RAM, possiamo utilizzarla come se fosse un vero e proprio disco aggiuntivo.
Ecco come:

Kernel Linux

NOTA. Se vi accontentate di 64mb, gli utenti di Linux Ubuntu possono saltare questo passaggio.

sudo gedit /boot/grub/menu.lst

Cercate o aggiunegete la seguente riga nelle opzioni di default e mettete la dimensione del vostro ramdisk.
Lasciate la riga commentata.
Per gli altri, aggiunegete ramdisk_size=<numero byte> nel kernel che volete.

# kopt=root=UUID=6cbcd6e9-f913-48fc-a341-c5f05eb57b21 ro ramdisk_size=<dimesione in byte del ramdisk>

Controllate che l'opzione venza aggiunta ai kernel che avete

sudo update-grub

Script di avvio

sudo gedit /etc/init.d/mount-ramdisk.sh
# Modificatelo con quello che volete nella memoria volatile
mke2fs -q -m 0 /dev/ram0
mount /dev/ram0 /tmp
chmod 777 /tmp
ln -s /etc/init.d/mount-ramdisk.sh /etc/rc2.d/S01mountramdisk

Fatto, dal prossimo riavvio la vostra cartella /tmp è in ram e il vostro hard disk sarà di meno un macina caffé bollente.

commenti

non vorrei sbagliare ma non

non vorrei sbagliare ma non manca un

sudo chmod +x /etc/init.d/mount-ramdisk.sh

perchè altrimenti mi sputa fuori un permission denied al boot

Comunque utilissimo, grazie mille.

essendo uno script deve essere eseguibile

ovviamente il UUID deve

ovviamente il UUID deve essere quello del vostro disco ... e nn lo stesso di quello scritto sopra ...

Veramente ottimo!

Questo GNU/Linux mi fa rimanere sempre a bocca aperta, è incredibile quante cose utili si scoprono ogni giorno!! Questa in particolare farebbe proprio al caso mio, visto che proprio ieri un e2fsck -c mi ha trovato parecchi pezzi di hard disk andati a male, quindi meno uso il disco e meglio è (almeno per quei pochi mesi di vita che gli rimangono).

passiamo a qualche domanda:
- la dir /tmp non dovrebbe avere dei permessi speciali (che ora non ricordo esattamente) che permettono a tutti gli utenti di modificare solo i file che essi stessi hanno creato (di cui sono i proprietari), in modo che non possono leggere/scrivere i file degli altri utenti? mi pare si chiami sticky bit o qualcosa del genere.

- bisogna per forza passare l'opzione all'avvio? non c'è un modulo da caricare "a caldo"? se si, quale?

- una volta creato lo script in /etc/init.d, non è meglio eseguire lo script update-rc.d che automatizza la creazione dei link simbolici nelle varie /etc/rc*.d?

- qual'è una dimensione sufficiente per la dir /tmp? forse 64MB sono un po' pochini

Grazie e complimenti per il blog, una nuova voce da aggiungere al mio rss reader! :-)

ramdisk

Questa soluzione è per lo più indicata per un unico utente che accede alla macchina.
Dimensione e sicurezza del ramdisk dipendono dal tuo grado di paranoia; è difficile stabilire con certezza quanto si riempirà /tmp sicuramente sarà diversa se fai editing video o se navighi solo sul web.

- bisogna per forza passare l'opzione all'avvio? non c'è un modulo da ..
prova con qualcosa come
swapoff /dev/la-swap
e ti fai un'icona che chiana sudo /etc/init.d/init-ramdisk