web-dev-qa-db-ja.com

再起動時にサブフォルダーとシンボリックリンクを削除しないRamdisk / tmpfs

これらのコマンドでシステムメモリ(ramdisk)を使用する一時的なハードドライブを作成しました。

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

その後、RAMディスクにサブフォルダー(ストリーム)を作成しました

次の行を追加することで、再起動時にRAMディスクを保持することができました。

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

そして、次のコマンドを使用して、/ home/ubuntumaster/streamフォルダーから/ media/ramdisk/streamフォルダーへのシンボリックリンクを作成しました。

ln -s /media/ramdisk/stream /home/ubuntumaster/streamer/stream

ただし、シンボリックリンクを再起動すると、ramdisk内のサブフォルダーが削除されます。このシンボリックリンクを永続的にするにはどうすればよいですか? RAMディスクのサブフォルダーも同様です。

そうしないと、再起動するたびに、ramdiskにサブフォルダーとシンボリックリンクを作成する必要があります。

1
Sambir

tmpfsマウントを空にするために再起動は必要ありません。 mount a tmpfsマウントしてから、(たとえば、マウントの下にサブディレクトリを作成して)移入し、umountして、サブディレクトリがなくなった場合(再実行した場合)マウント、それは空から始まります)。マウント全体で永続性が必要な場合(再起動は言うまでもありません)、tmpfsだけでは不十分です。

マウントが最初は空ではないような方法でtmpfsを使用する1つの方法は、空ではない下位ディレクトリを使用して OverlayFS を使用し、上位としてtmpfsマウントを使用することです。ディレクトリ。

あなたの質問は、再起動の結果としてシンボリックリンクが消えると言っていますが、それが起こるとは思いません。永続ディレクトリ内のシンボリックリンクは、tmpfsマウント内の(おそらく存在しない)ディレクトリを指します。

目的に合ったより簡単なアプローチは、次のようなものを使用して、シンボリックリンクをtmpfsマウントポイントに置き換えることです。

rm /home/ubuntumaster/streamer/stream
mkdir /home/ubuntumaster/streamer/stream
Sudo mount -t tmpfs -o size=2048M tmpfs /home/ubuntumaster/streamer/stream

シンボリックリンクではなく/home/ubuntumaster/streamer/streamをマウントポイントとして使用することを選択した場合、そのための/etc/fstabは次のようになります。

tmpfs /home/ubuntumaster/streamer/stream tmpfs rw,size=2048M 0 0

シンボリックリンクを使用する場合、シンボリックリンクのターゲットはtmpfsマウントポイントにすることができます。次のようになります。

Sudo mkdir -p /media/stream
Sudo mount -t tmpfs -o size=2048M tmpfs /media/stream
ln -s /media/stream /home/ubuntumaster/streamer/stream

再起動する前にmountコマンドを使用して/etc/fstabへの変更をテストすることにより、再起動中の問題を回避できます。 /home/ubuntumaster/streamer/streamがシンボリックリンクではない場合、これは(/etc/fstabを編集した後)である可能性があります。

Sudo mount /home/ubuntumaster/streamer/stream

たとえば、誤ってmkdirをスキップした場合、mountはマウントポイントの欠落について文句を言います。

0
Eirik Fuller