Ramdisk ubuntu 10.04

12

Saya menggunakan Ubuntu 10,04 (64bit) untuk desktop saya.
Mesin ini memiliki RAM 5GB.

Saya ingin menggunakan RAM disk (1G atau 2G) tetapi saya tidak tahu bagaimana saya bisa melakukan ini.

Apakah ada produk opensource disk RAM?

Benjamin
sumber

Jawaban:

18

Teknologi ini dibangun ke dalam kernel, Anda tidak memerlukan alat tambahan. Bahkan, Anda sudah memiliki beberapa disk RAM (yang seharusnya tidak Anda gunakan, mereka dicadangkan untuk sistem), yang dapat Anda lihat dengan melakukan

grep -w tmpfs /proc/mounts

Untuk mengatur disk RAM 2GB yang terpasang /ramdisk, tambahkan baris berikut ke /etc/fstab:

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

Kemudian pasang disk dengan perintah mount /ramdisk(ini akan dilakukan secara otomatis ketika Anda reboot).

Ukuran yang ditunjukkan maksimum, disk hanya menggunakan memori sebanyak file yang ada di dalamnya.


Anda dapat mengubahnya /tmpmenjadi disk RAM. Pada /etc/fstabbaris di atas, masukkan /tmpbukan /ramdisk, lalu reboot.

Pertama kali Anda reboot setelah berubah /tmpmenjadi disk RAM, file yang ada di /tmpdalamnya akan disembunyikan. Itu tidak berbahaya, kecuali bahwa mereka menghabiskan sedikit ruang disk. Anda dapat membersihkannya ( setelah Anda reboot dengan /tmppada disk RAM) dengan melakukan

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

The mount --bindperintah membuat /mntduplikat pandangan filesystem root; tetapi sementara disk RAM sekarang mengaburkan /tmppada tampilan root, tidak ada yang mengaburkan /mnt/tmp.

TAMBAH : Anda dapat beralih /tmpke disk RAM tanpa me-reboot, itu hanya sedikit lebih rumit. Tambahkan baris /etc/fstabseperti di atas, lalu jalankan perintah berikut:

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

Kemudian hapus /tmp.oldsetelah reboot Anda berikutnya.

Alasan Anda tidak bisa hanya memindahkan file dari /tmp.oldke /tmpadalah bahwa beberapa program penting memiliki file terbuka /tmp, misalnya /tmp/.X11-unix/X0yang X server mendengarkan dan setiap program GUI terbuka ketika dimulai. Memindahkan file ke sistem file yang berbeda berarti menyalin dan menghapus yang lama, sehingga Anda akan berakhir dengan server X masih mendengarkan /tmp.old/.X11-unix/X0tetapi klien X menghubungi /tmp/.X11-unix/X0dengan sia-sia. Di server, Anda mungkin lolos dengan langkah jika Anda berhati-hati.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
@ giles: Apakah ada cara untuk melakukan ini tanpa mengubah fstab dan me-reboot? Saya berasumsi ada metode mkfs yang sesuai, diikuti oleh mount tetapi "man mkfs" tidak terlalu membantu.
hotei
1
@hotei: Reboot hanya untuk beralih /tmpke tmpfs. Itu tidak perlu, dan saya sudah mengedit jawaban saya untuk menjelaskan bagaimana melakukannya, tetapi lebih rumit. Tidak ada yang mkfsterlibat karena tidak ada penyimpanan yang mendasarinya untuk dipersiapkan, kernel menangani semuanya.
Gilles 'SANGAT berhenti menjadi jahat'
@ giles: Terima kasih telah memperbarui. Saya melewatkan bagian di mana "keajaiban terjadi" selama membaca tentang garis fstab. Saya yakin saya mengerti mengapa ini bekerja sekarang.
hotei
Bisakah saya bertanya apakah ini menghasilkan percepatan yang nyata?
Robert Massaioli
@ Robert: Saya pikir itu menyebabkan kecepatan yang terlihat pada SSD netbook saya yang sangat lambat (terutama karena sinkronisasi dapat berlangsung beberapa detik dan /tmppada disk meningkatkan frekuensi sinkronisasi), tetapi ini adalah kesan subjektif yang tidak dapat diandalkan. Saya belum pernah mencoba benchmark.
Gilles 'SANGAT berhenti menjadi jahat'