RAMディスクを作成するにはどうすればよいですか?


55

RAMで作られたパーティションを作りたい...

Windows 7では、RAMで作られたパーティションを作成できます

ここに画像の説明を入力してください

ramに1 GBのパーティションを作成しました。Primo RamDiskを使用する

Ubuntuには良い代替手段がありますか?


3
Ubuntuにはtmpfsが付属しています。RAMDISKを作成する必要はありません。
mixdev 14年

使用目的によっては、Ubuntu(またはほとんどのLinuxディストリビューション)のRAMディスクが不要な場合があります。オペレーティングシステムは、通常のディスクで動作している間、読み取りおよび書き込みアクティビティをRAMにキャッシュします。小さなファイルを数回読み取ると、ディスクから1回だけフェッチされ、次の時間にRAMキャッシュから取得されます。十分なRAMがある場合、実行するすべての処理がこの方法でキャッシュされるため、ディスクアクティビティがほとんど繰り返されません。ファイルの代わりに非永続的な高速メモリを使用する場合は、RAMDISKが必要です。詳細については、linuxatemyram.comを参照してください。
TafT

回答:


77

これは、RAMDISKを超高速で簡単に作成する方法を示します。RAMDISKを使用すると、一時領域にメモリを使用でき、ハードドライブよりもはるかに高速です。

次の2つのコマンドを使用してRAMDISKを作成することから始めましょう。

私が「nameme」を書いたところに、RAMDISKを呼び出したいものは何でも入れてください。

mkdir -p /media/nameme

mount -t tmpfs -o size=2048M tmpfs /media/nameme/
上記のコマンドは、RAMDISKに2GBのRAMを使用します。私と同じくらいのRAMがない場合は、512MBまたは1GBを使用します。そのため、次に、自動的にRAMDISKを作成するターミナル用のコマンドを作成します。

ソース: LinuxでRAMDISKを作成する方法


3
再起動間でこれを維持するにはどうすればよいですか?
チョビー

1
RAMであるため、揮発性であり、再起動すると、BIOS / EFIとしてのウォームブートによってRAMがクリアされても、すべて失われます。最善の方法は、ログイン時にコマンドを実行するシェルスクリプトを作成することです。
ブランドンマクイーチャーン

1
存続する@chovyには、現時点で2つ考えているオプションがいくつかあります。1. RAMディスクへの書き込みとhddディスクへの非同期書き込みを行うAPIを書き込みます。常にRAMから読み取り、ブート時のみディスクからRAMをウォームアップします。2. RAMディスク内のすべてのものをHDDディスクにコピーし、ブート後に1回コピーするスクリプトを時々呼び出します。
ルーカス

別のオプションは/tmp/cache、キャッシュディレクトリのようなものを指定することです。そのディレクトリは、実際にはoverlayfsのマウントポイントです(tmpfsをupperdirとして使用し、通常のファイルシステム上の通常はlowerdirとして対話するものを使用します)。これにより、高速で一時的なレイヤーを作成でき、その一部を永続的にしたい場合に簡単に同期できるようになります。
mway

chovyを/etc/rc.localに追加すると、パーティションが自動的にマウントされますが、データは失われます。
777Anon

49

tmpfsファイルシステムはRAMDISKです。以下は、常に利用可能な2G RAMDISKを作成します。

sudo mkdir -p /media/ramdisk
sudo mount -t tmpfs -o size=2048M tmpfs /media/ramdisk

ramdiskフォルダーは、再起動時に使用可能になるため、rootが所有します。ramdiskアクセス許可は、誰でも書き込み可能である必要があります。tmpfsのデフォルト許可(chmod 1777)は正しいです。

sudo chmod 1777 /media/ramdisk
drwxrwxrwt 2 root root 180 Apr 23 07:34 /media/ramdisk

ramdiskを永続的に使用可能にするには、それを/ etc / fstabに追加します。

grep /media/ramdisk /etc/mtab | sudo tee -a /etc/fstab

mtabからfstabに移動した行が表示されます。これは次のようになります。

tmpfs /media/ramdisk tmpfs rw,size=2048M 0 0

RAMDISKは、使用するまでメモリを消費しません。最大システム負荷時にメモリ要件を再確認してください。RAMDISKが大きすぎると、システムはスワップストレージを消費してその差を補います。

RAMDISKのサイズを調整するには、/ etc / fstabを編集し、ramdiskを再マウントして確認します(再起動時に現在のRAMDISKコンテンツが失われます)。以下は、ramdiskのサイズを512Mに変更します

# Check the existing ramdisk size.
df /media/ramdisk
# change size=512M for a 512 megabyte ram drive.
sudo vi /etc/fstab
# Remount the ramdisk, you will lose any existing content.
sudo mount -a /media/ramdisk
# Verify the new ramdisk size.
df /media/ramdisk

1
技術的にtmpfsramfs、はramdiskではありません。
-heemayl

2
同意する。WindowsではRAMDISKが一般的な名前なので、RAMDISKを使用することにしました。
rickfoosusa

RAMディスクが実際に使用されているかどうかを確認するにはどうすればよいですか?常に使用済み0%と表示されます。
BTRナイドゥ

9

ルート特権がない場合に2セントを追加します。

unix.stackexchange からのこの回答から引用

Linuxは、すべてのユーザーが使用できるtmpfsデバイス/ dev / shmを提供します。デフォルトでは特定のディレクトリにマウントされていませんが、1つのディレクトリとして使用できます。

/ dev / shmにディレクトリを作成し、必要な場所にシンボリックリンクするだけです。作成したディレクトリに任意の権限を付与して、他のユーザーがアクセスできないようにすることができます。

これはRAMでバックアップされたデバイスなので、デフォルトではメモリに何があります。/ dev / shm内に必要なディレクトリを作成できます

当然、ここに置かれたファイルは再起動後も存続せず、マシンがスワッピングを開始した場合、/ dev / shmは役に立ちません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.