Ramdisk Ubuntu 10.04


12

Sto usando Ubuntu 10.04 (64 bit) per il mio desktop.
La macchina ha una RAM da 5 GB.

Voglio usare il disco RAM (1G o 2G) ma non so come posso farlo.

Esiste un prodotto opensource del disco RAM?

Risposte:


18

La tecnologia è integrata nel kernel, non hai bisogno di strumenti extra. In effetti, hai già alcuni dischi RAM (che non dovresti usare, sono riservati per il sistema), che puoi vedere facendo

grep -w tmpfs /proc/mounts

Per configurare un disco RAM da 2 GB montato /ramdisk, aggiungere la seguente riga a /etc/fstab:

ramdisk  /ramdisk  tmpfs  mode=1777,size=2g

Quindi montare il disco con il comando mount /ramdisk(questo verrà fatto automaticamente al riavvio).

La dimensione indicata è massima, il disco utilizza solo la quantità di memoria dei file in essa contenuti.


È possibile cambiare /tmpper essere un disco RAM. Nella /etc/fstabriga sopra, inserisci /tmpinvece di /ramdisk, quindi riavvia.

La prima volta che si riavvia dopo /tmpessere passati a un disco RAM, i file presenti /tmpverranno nascosti. È innocuo, tranne per il fatto che stanno sprecando un po 'di spazio su disco. Puoi pulirli ( dopo aver riavviato con /tmpsul disco RAM) facendo

mount --bind / /mnt
rm -r /mnt/tmp/* /mnt/tmp/.*
umount /mnt

Il mount --bindcomando crea /mntuna vista duplicata del filesystem di root; ma mentre il disco RAM ora oscura /tmpnella vista radice, nulla è oscuro /mnt/tmp.

AGGIUNTO : è possibile passare /tmpa un disco RAM senza riavviare, è solo un po 'più complicato. Aggiungi la riga /etc/fstabcome sopra, quindi esegui i seguenti comandi:

mkdir /tmp.old
mount --bind /tmp /tmp.old
mount /tmp
cd /tmp
ln -s /tmp.old/* /tmp/.* .

Quindi elimina /tmp.olddopo il tuo prossimo riavvio.

La ragione per cui non puoi semplicemente spostare i file da /tmp.olda /tmpè che alcuni programmi critici hanno file aperti /tmp, ad esempio su /tmp/.X11-unix/X0cui il server X è in ascolto e ogni programma GUI si apre all'avvio. Spostare un file in un diverso filesystem significa copiarlo ed eliminare quello vecchio, quindi si finirebbe con il server X ancora in ascolto /tmp.old/.X11-unix/X0ma i client X contattano /tmp/.X11-unix/X0invano. Su un server, potresti fare una mossa se stai attento.


@giles: c'è un modo per farlo senza cambiare in fstab e riavviare? Suppongo che ci sia un metodo mkfs corrispondente, seguito da un mount ma "man mkfs" non è stato molto utile.
hotei,

1
@hotei: il riavvio è solo per passare /tmpa tmpfs. Non è necessario e ho modificato la mia risposta per spiegare come farlo, ma è più complicato. Non è mkfscoinvolto perché non c'è spazio di archiviazione sottostante da preparare, il kernel gestisce tutto.
Gilles 'SO- smetti di essere malvagio' il

@giles: grazie per l'aggiornamento. Mi mancava la parte in cui "accade la magia" durante la lettura di mount della linea fstab. Credo di capire perché ora funziona.
hotei,

Posso chiedere se questo si traduce in un notevole aumento di velocità?
Robert Massaioli,

@Robert: Penso che abbia causato una notevole velocità sull'SSD molto lento del mio netbook (principalmente perché le sincronizzazioni possono durare diversi secondi e /tmpsul disco aumenta la frequenza delle sincronizzazioni), ma questa è un'impressione soggettiva inaffidabile. Non ho mai provato a fare un benchmark.
Gilles 'SO- smetti di essere malvagio'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.