我使用以下命令创建了一个使用系统内存(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
如果你错误地跳过了mkdir
,mount
就会抱怨缺少挂载点。