Ramdisk ubuntu 10.04

12

Używam Ubuntu 10.04 (64-bitowy) na pulpicie.
Urządzenie ma 5 GB pamięci RAM.

Chcę użyć dysku RAM (1G lub 2G), ale nie wiem, jak to zrobić.

Czy jest jakiś produkt typu open source dysku RAM?

Benzoes
źródło

Odpowiedzi:

18

Technologia jest wbudowana w jądro, nie potrzebujesz żadnych dodatkowych narzędzi. W rzeczywistości masz już kilka dysków RAM (których nie powinieneś używać, są zarezerwowane dla systemu), co możesz zobaczyć, wykonując

grep -w tmpfs /proc/mounts

Aby skonfigurować zamontowany dysk 2 GB RAM /ramdisk, dodaj następujący wiersz do /etc/fstab:

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

Następnie zamontuj dysk za pomocą polecenia mount /ramdisk(zostanie to wykonane automatycznie po ponownym uruchomieniu).

Wskazany rozmiar jest maksymalny, dysk zużywa tylko tyle pamięci, ile plików na nim zawartych.


Możesz zmienić /tmpsię na dysk RAM. W /etc/fstabpowyższym wierszu wpisz /tmpzamiast /ramdisk, a następnie uruchom ponownie.

Przy pierwszym uruchomieniu po zmianie /tmpna dysk RAM, pliki, które się w nim znajdowały, /tmpzostaną ukryte. To nieszkodliwe, tyle że marnują trochę miejsca na dysku. Możesz je wyczyścić ( po ponownym uruchomieniu /tmpna dysku RAM), wykonując

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

mount --bindKomenda sprawia /mntduplikat widoku głównego systemu plików; ale podczas gdy dysk RAM zasłania teraz /tmpwidok główny, nic nie przesłania /mnt/tmp.

DODANO : Możesz przełączyć /tmpsię na dysk RAM bez ponownego uruchamiania, to tylko trochę bardziej skomplikowane. Dodaj wiersz /etc/fstabjak wyżej, a następnie uruchom następujące polecenia:

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

Następnie usuń /tmp.oldpo następnym uruchomieniu.

Powodem nie można po prostu przenieść pliki /tmp.oldna /tmpto, że niektóre programy mają krytyczne pliki otwarte /tmp, na przykład /tmp/.X11-unix/X0którym Słuchacze serwera X na i każdy program GUI otwiera po uruchomieniu. Przeniesienie pliku do innego systemu plików oznacza skopiowanie go i usunięcie starego, dzięki czemu serwer X nadal będzie nasłuchiwał, /tmp.old/.X11-unix/X0ale klienci X będą się /tmp/.X11-unix/X0bezskutecznie kontaktować . Na serwerze możesz uciec od ruchu, jeśli będziesz ostrożny.

Gilles „SO- przestań być zły”
źródło
@giles: Czy istnieje sposób, aby to zrobić bez zmiany na fstab i restartu? Zakładam, że istnieje odpowiednia metoda mkfs, po której następuje mount, ale „man mkfs” nie był zbyt pomocny.
hotei
1
@hotei: Ponowne uruchomienie można przełączyć tylko /tmpna tmpfs. Nie jest to konieczne i zredagowałem swoją odpowiedź, aby wyjaśnić, jak to zrobić, ale jest to bardziej skomplikowane. Nie jest mkfszaangażowany, ponieważ nie ma przygotowanej pamięci, jądro obsługuje wszystko.
Gilles „SO- przestań być zły”
@giles: Dzięki za aktualizację. Brakowało mi części, w której „zdarza się magia” podczas odczytu linii fstab przez wierzchowca. Wierzę, że rozumiem, dlaczego teraz działa.
hotei
Czy mogę zapytać, czy spowoduje to zauważalne przyspieszenie?
Robert Massaioli
@Robert: Myślę, że spowodowało to zauważalne przyspieszenie bardzo wolnego dysku SSD mojego netbooka (głównie dlatego, że synchronizacja może trwać kilka sekund, a /tmpna dysku zwiększa częstotliwość synchronizacji), ale jest to niewiarygodne subiektywne wrażenie. Nigdy nie próbowałem testować.
Gilles „SO- przestań być zły”