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.