再起動後にファイルシステムが変更されない Linux 上の RAM ディスクを作成する

再起動後にファイルシステムが変更されない Linux 上の RAM ディスクを作成する

Ubuntu 16.10(VM内で実行)で次のコマンドを使用してRAMディスクを作成します。

sudo mkdir -p /media/RAMDisk
sudo マウント -t tmpfs -o サイズ=2048M tmpfs /media/RAMDisk

その後、RAMディスクに入ってこれを実行すると

df 。

私は次のことを得ます

tmpfs 2097152 0 2097152 0% /メディア/RAMディスク

ここまでは順調ですね。

次に、Ubuntu を再起動します (これにより、Workstation Pro 経由で実行されている VM が再起動されます)。

再起動後、/media/RAMDiskフォルダがまったく存在しないか、またはtmpfs内容のないファイル システム。

フォルダー/media/RAMDiskは中身なしで存在しますが、驚くべきことに/dev/sda1ファイル システムとして存在します。df .を実行すると/media/RAMDisk、次のようになります。

    /dev/sda1 17413904 9577448 6928836 59% /

これで、コマンドを簡単に自分の中に入れて実行.bashrcし、毎回正しい処理を実行できるようになりましたが、何が起こっているのかを知る必要があります。

また、仮想マシン マネージャー (Workstation Pro) が何かを実行している可能性はありますか?

答え1

何が起こっているのか?

何も異常はありません。

df /media/RAMDiskを参照する場合、/dev/sda1ディレクトリが現在 に/dev/sda1マウントされているファイルシステムに属していることを示します/

これは、コマンドの効果がmount永続的ではなく、再起動すると消えてしまうためです。一方、コマンドはmkdirファイルシステム内にディレクトリを作成し/dev/sda1、このファイルシステムは再起動のたびにマウントされるため、ディレクトリ自体はファイルシステムの一部として残ります/dev/sda1

RAMDisk何らかの方法で、起動後(または起動時に)毎回マウントする必要があります。


取り付け方法は?

mount内部から逃げるのは.bashrc良い考えではない。このファイルは複数回参照される可能性があります単一セッション中。いずれにせよ必要なので、 OS 起動時に一度実行されるものをsudo使用する方がよいでしょう。/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

ただし、 を使用する場合はsystemd、すでに個人用のtmpfsが にマウントされている必要があります/run/user/<UID>。システム全体の は にマウントされている必要があります/dev/shm


について/media/

また、/media/Ubuntu では、外付け USB ドライブなどのマウントポイントを作成するために使用されていることに注意してください (これudisks2が原因だと思います)。 似ているように見えるかもしれませんが、何かと衝突することはないと/media/<username>/<label>思います/media/RAMDisk。 ただし、一般的にはこの場所の使用は避けます。 私が使用しているシステム (Debian、Kubuntu、Raspbian、OpenWRT) では、これ/mnt/<something>まで問題が発生したことはありません。

関連情報