次のコマンドを使用して、Ubuntu 16.10(VM内で実行)にRAMディスク)を作成します。
Sudo mkdir -p/media/RAMDisk Sudo mount -t tmpfs -o size = 2048M tmpfs/media/RAMDisk
この後、RAMDiskに移動してこれを実行すると
df。
私は次のようになります
tmpfs 2097152 0 2097152 0%/ media/RAMDisk
ここまでは順調ですね。
次に、Ubuntuを再起動します(Workstation Pro経由で実行されているVM)を再起動します)。
再起動後、/media/RAMDisk
フォルダーがまったく存在しないか、内容のないtmpfs
ファイルシステムとして存在することを期待しています。
/media/RAMDisk
フォルダーはコンテンツなしで存在しますが、驚くべきことに/dev/sda1
ファイルシステムとして存在します。 df .
を/media/RAMDisk
で実行すると、次のように表示されます。
/dev/sda1 17413904 9577448 6928836 59%/
これで、コマンドを.bashrc
内に簡単に配置して、コマンドを実行し、毎回正しいことを実行できるようになりましたが、何が起こっているのかを知る必要があります。
また、私の仮想マシンマネージャーであるWorkstation Proは何かをしている可能性がありますか?
異常なことは何もありません。
df /media/RAMDisk
は、/dev/sda1
を参照する場合、現在ディレクトリが/dev/sda1
にマウントされている/
のファイルシステムに属していることを示します。
これは、mount
コマンドの効果が永続的ではなく、再起動後も存続しないためです。一方、mkdir
コマンドは/dev/sda1
のファイルシステム内にディレクトリを作成し、このファイルシステムは再起動のたびにマウントされるため、ディレクトリ自体は存続しますが、/dev/sda1
ファイルシステムの一部として存続します。
何らかの方法で、すべての起動後(または起動時)にRAMDisk
をマウントする必要があります。
.bashrc
内からmount
を実行することは、1回のセッション中に このファイルは複数回ソースされる可能性がある であるため、お勧めできません。とにかくSudo
が必要なので、OSの起動時に1回実行される/etc/rc.local
を使用することをお勧めします。
ただし、さらに良い方法は、/etc/fstab
に次の行を追加することです。
tmpfs /media/RAMDisk tmpfs defaults,nosuid,nodev,size=2048M 0 0
user
およびnoauto
オプション(man 5 fstab
を参照)を調査し、それらを使用してmount /media/RAMDisk
をオンデマンドでのみ呼び出すことをお勧めします。
systemd
?このサイト 特定のユーザーが初めてログインしたときにsystemd
ユニットを実行し、そのユーザーの最後のセッションが閉じられるとすぐに終了できると私は信じています。私はsystemd
にあまり詳しくないので、.mount
ユニットでそれを行う方法(if)を説明できません。
ただし、systemd
を使用する場合は、個人のtmpfs
が/run/user/<UID>
にマウントされているはずです。システム全体のものは/dev/shm
にある必要があります。
/media/
についてまた、/media/
はUbuntuがマウントポイントを作成するために使用することに注意してください。外付けUSBドライブ用(udisks2
が責任があると思います)。それらは/media/<username>/<label>
のように見えるかもしれないので、/media/RAMDisk
は何とも衝突しないと思います。一般的に、私はこの場所の使用を避けます。私のシステム(Debian、Kubuntu、Raspbian、OpenWRT)では、/mnt/<something>
を使用していますが、問題は発生していません。