Ramdisk Ubuntu 10.04


12

私はデスクトップにUbuntu 10.04(64bit)を使用しています。
マシンには5GBのRAMがあります。

RAMディスク(1Gまたは2G)を使用したいのですが、どうすればいいのかわかりません。

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

回答:


18

このテクノロジーはカーネルに組み込まれているため、追加のツールは必要ありません。実際、既にいくつかのRAMディスクがあります(使用しないでください、システム用に予約されています)。

grep -w tmpfs /proc/mounts

にマウントされた2GB RAMディスクをセットアップするには/ramdisk、次の行を追加します/etc/fstab

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

次に、コマンドを使用してディスクをマウントしmount /ramdiskます(これは再起動時に自動的に行われます)。

指定されたサイズは最大であり、ディスクはその上にあるファイルと同じだけのメモリを使用します。


/tmpRAMディスクに変更できます。/etc/fstab上記の行に、/tmpではなくを入れて/ramdiskから再起動します。

/tmpRAMディスクに変更した後に最初に再起動すると、あったファイルは/tmp非表示になります。少しのディスクスペースを浪費していることを除いて、これは無害です。(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ためです。たとえば/tmp/.X11-unix/X0、Xサーバーがリッスンし、すべてのGUIプログラムが起動時に開きます。ファイルを別のファイルシステムに移動するということは、そのファイルをコピーして古いファイルシステムを削除することを意味するため、Xサーバーは引き続きリッスンし/tmp.old/.X11-unix/X0ますが、Xクライアント/tmp/.X11-unix/X0は無駄に接続します。サーバーでは、注意すれば動きを逃れるかもしれません。


@giles:fstabを変更して再起動せずにこれを行う方法はありますか?対応するmkfsメソッドがあり、その後にマウントが続くと想定していますが、「man mkfs」はあまり役に立ちませんでした。
布袋

1
@hotei:再起動はに切り替える/tmpことのみtmpfsです。それは必要ではなく、答えを編集して方法を説明しましたが、もっと複雑です。mkfs準備する基礎となるストレージがないため、関与する必要はありません。カーネルがすべてを処理します。
ジル「SO-悪であるのをやめる」

@giles:アップデートをありがとう。マウントがfstab行を読み取るときに「マジックが発生する」部分が欠落していました。今はなぜ機能するのか理解できたと思います。
布袋

これにより顕著な高速化がもたらされるかどうかを尋ねることはできますか?
ロバートマサイオーリ

@Robert:ネットブックの非常に遅いSSDで顕著なスピードアップを引き起こしたと思います(主に同期が数秒続くことがあり/tmp、ディスク上で同期の頻度が上がるため)が、これは信頼できない主観的な印象です。ベンチマークを試みたことがありません。
ジル「SO-悪であるのをやめる」
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.