web-dev-qa-db-ja.com

Ramdisk ubuntu 10.04

デスクトップにUbuntu10.04(64ビット)を使用しています。
マシンには5GBのRAMが搭載されています。

RAM disk(1G or 2G))を使いたいのですが、どうすればいいのかわかりません。

RAMディスクのオープンソース製品はありますか?

12
Benjamin

このテクノロジーはカーネルに組み込まれているため、追加のツールは必要ありません。実際、すでにいくつかの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_に接続しますが無駄になります。サーバーでは、注意すれば移動を回避できる可能性があります。