Я пытаюсь установить /var
с overlayfs (с 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/upper
и /var.tmpfs/work
находятся в tmpfs и больше не будут присутствовать после перезагрузки.
Один из вариантов - создать их обоих в fstab.
Я делаю нечто подобное с https://github.com/StuartIanNaylor/zram-config но используйте zram, а не tmpfs.
Я привязываю монтировать целевой каталог где-нибудь еще. Создайте и смонтируйте каталоги zram и mkdir overlayfs. Затем установите накладку
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 не работает, и почему?