Debian: монтировать /var как overlayfs при загрузке
Я пытаюсь смонтировать /var
с оверлеями (с tmpfs) при загрузке, но не удается заставить это работать.
Вот что я сделал:
# creating tmpfs
mkdir /var.tmpfs
mount -t tmpfs -o rw,nosuid,nodev,noexec,noatime,size=512m,mode=0775 tmpfs /var.tmpfs
chmod -R u=rwX,g=rX,o=rX /var.tmpfs
# creating overlay
mkdir /var.tmpfs/{work,upper} /var.overlay
mount -t overlay -o rw,lowerdir=/var,upperdir=/var.tmpfs/upper,workdir=/var.tmpfs/work overlay /var.overlay
chmod -R u=rwX,g=rX,o=rX /var.overlay
# binding to /var
mount --bind /var.overlay /var
# filling /etc/fstab
[...]
tmpfs /var.tmpfs tmpfs rw,nosuid,noatime,size=512m 0 0
overlayfs /var.overlay overlay rw,lowerdir=/var,upperdir=/var.tmpfs/upper,workdir=/var.tmpfs/work 0 0
/var.overlay /var none bind 0 0
При загрузке системы я сталкиваюсь со следующей ошибкой:
overlayfs: failed to resolve '/var.tmpfs/upper' -2
Что нормально, так как tmpfs пуст при подключении.
- Как создать
upper
а такжеwork
каталоги при загрузке- после монтирования /var.tmpfs
- перед монтированием /var.overlay
- Или есть другое решение с каталогами, уже присутствующими при загрузке?
Заранее спасибо.
2 ответа
Папки /var.tmpfs/upper и /var.tmpfs/work находятся в tmpfs и больше не будут присутствовать после перезагрузки
Одним из вариантов является создание их обоих в fstab
Я делаю нечто подобное с https://github.com/StuartIanNaylor/zram-config но использую zram, а не tmpfs.
Я связываю монтирование целевого каталога в другом месте. Создание и монтирование zram и mkdir оверлеев dirs. Затем установите оверлей
mount --verbose --types overlay -o lowerdir=$BIND_DIR,upperdir=/opt/zram$RAM_DEV/upper,workdir=/opt/zram$RAM_DEV/workdir overlay $ZRAM_DIR
$ZRAM_DIR - это целевой каталог, который подключается в другом месте, поэтому при остановке я могу синхронизировать изменения. Вместо полной / var вам, возможно, придется просто добавить коллекцию lowerdir, так как, возможно, tmpfs поверх tmpfs не работает, и действительно, почему?