Ramdisk / tmpfs, который не удаляет подпапки и символические ссылки при перезагрузке

Я создал временный жесткий диск, который использует системную память (ramdisk) с этими командами:

sudo mkdir -p /media/ramdisk
sudo mount -t tmpfs -o size=2048M tmpfs /media/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

Но при перезагрузке символическая ссылка и подпапка в рамдиске удаляются. Как я могу сделать эту символическую ссылку постоянной? То же самое для подпапки на виртуальном диске.

В противном случае мне нужно будет создать подпапку на виртуальном диске и символическую ссылку при каждой перезагрузке.

1 ответ

Решение

Перезагрузка не требуется для очистки tmpfs крепление. если ты mount tmpfs mount, затем заполните его (например, создайте подкаталог под mount), затем umount это, ваш подкаталог исчез (если вы переделываете монтирование, оно начинается пустым). Если вы хотите сохранить постоянство на всех монтировках (не говоря уже о перезагрузках) tmpfs само по себе не хватит.

Один из способов использования tmpfs таким образом, что монтирование изначально непусто, это использовать 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

Вы можете избежать проблем во время перезагрузки, протестировав изменения в /etc/fstab используя команду монтирования перед перезагрузкой. В случае, когда /home/ubuntumaster/streamer/stream это не символическая ссылка, это может быть так (после редактирования /etc/fstab):

sudo mount /home/ubuntumaster/streamer/stream

Если, скажем, вы по ошибке пропустите mkdir, mount будет жаловаться на отсутствующую точку монтирования.

Другие вопросы по тегам