Назад | Перейти на главную страницу

debian: смонтировать / var как overlayfs при загрузке

Я пытаюсь установить /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 при монтировании пуст.

Заранее спасибо.

Папки /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 не работает, и почему?