デスクトップにUbuntu10.04(64ビット)を使用しています。
マシンには5GBのRAMが搭載されています。
RAM disk(1G or 2G))を使いたいのですが、どうすればいいのかわかりません。
RAMディスクのオープンソース製品はありますか?
このテクノロジーはカーネルに組み込まれているため、追加のツールは必要ありません。実際、すでにいくつかのRAMディスクがあります(使用しないでください。システム用に予約されています)。これを実行すると確認できます。
_grep -w tmpfs /proc/mounts
_
_/ramdisk
_にマウントされた2GBのRAMディスクをセットアップするには、_/etc/fstab
_に次の行を追加します。
_ramdisk /ramdisk tmpfs mode=1777,size=2g
_
次に、コマンド_mount /ramdisk
_を使用してディスクをマウントします(これは再起動時に自動的に行われます)。
示されたサイズは最大であり、ディスクはその上にあるファイルと同じ量のメモリのみを使用します。
_/tmp
_をRAMディスクに変更できます。上記の_/etc/fstab
_行に、_/tmp
_ではなく_/ramdisk
_を入力して、再起動します。
_/tmp
_をRAMディスクに変更した後、初めて再起動すると、_/tmp
_にあったファイルは非表示になります。彼らが少しのディスクスペースを浪費していることを除いて、それは無害です。それらをクリーンアップできます(after RAMディスクで_/tmp
_を使用して再起動しました)。
_mount --bind / /mnt
rm -r /mnt/tmp/* /mnt/tmp/.*
umount /mnt
_
_mount --bind
_コマンドは、_/mnt
_をルートファイルシステムの複製ビューにします。しかし、RAMディスクがルートビューの_/tmp
_を覆い隠している間、_/mnt/tmp
_を覆い隠すものは何もありません。
[〜#〜]追加[〜#〜]:再起動せずに_/tmp
_をRAMディスクに切り替えることができます。少し複雑です。上記のように_/etc/fstab
_に行を追加してから、次のコマンドを実行します。
_mkdir /tmp.old
mount --bind /tmp /tmp.old
mount /tmp
cd /tmp
ln -s /tmp.old/* /tmp/.* .
_
次に、次回の再起動後に_/tmp.old
_を削除します。
ファイルを_/tmp.old
_から_/tmp
_に移動できない理由は、一部の重要なプログラムでは、ファイルが_/tmp
_で開かれているためです。たとえば、Xサーバーがリッスンする_/tmp/.X11-unix/X0
_とすべてのGUIプログラムは、起動時に開きます。ファイルを別のファイルシステムに移動すると、ファイルをコピーして古いファイルを削除することになります。そのため、Xサーバーは_/tmp.old/.X11-unix/X0
_をリッスンしますが、Xクライアントは_/tmp/.X11-unix/X0
_に接続しますが無駄になります。サーバーでは、注意すれば移動を回避できる可能性があります。