Ramdisk / tmpfs 在重启时不会删除子文件夹和符号链接

Ramdisk / tmpfs 在重启时不会删除子文件夹和符号链接

我使用以下命令创建了一个使用系统内存(ramdisk)的临时硬盘:

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

之后我在 ramdisk 上创建了一个子文件夹(流)

我通过添加以下行设法使 ramdisk 在重启时保持正常运行:

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 中的子文件夹将被删除。我怎样才能使此符号链接永久存在?ramdisk 上的子文件夹也一样。

否则,每次重启时我都必须在 ramdisk 上创建子文件夹和符号链接。

答案1

无需重新启动即可清空挂载tmpfs。如果您挂载mount了挂载tmpfs,然后填充它(例如,在挂载下创建一个子目录),那么umount您的子目录就消失了(如果您重新挂载,它一开始是空的)。如果您希望在挂载之间保持持久性(更不用说重新启动),tmpfs仅靠它本身是不够的。

tmpfs使挂载最初非空的一种方法是使用覆盖文件系统,具有非空的下层目录,以及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

您可以在重启之前测试/etc/fstab使用 mount 命令的更改,以避免重启时出现问题。如果/home/ubuntumaster/streamer/stream不是符号链接,则可能是这样的(编辑 之后/etc/fstab):

sudo mount /home/ubuntumaster/streamer/stream

如果你错误地跳过了mkdirmount就会抱怨缺少挂载点。

相关内容