Каскадное монтирование корневой ФС средствами OverlayFS

Автор: | 29.12.2019

AUFS уже не тот, товарищи! Пришлось искать замену… У меня уже была попытка, где я пробовал осилить OverlayFS для защиты корневой ФС от записи, но, по какой-то причине, не смог. Сначала я решал эту задачу спомощью dm_snapshot/rbd, но это, если уж на то пошло, было странным выбором. Потом я решал это спомощью aufs, но это требовало dkms, так как aufs выпнули из стостав ядра.

И, внезапно, очередной подход к OverlayFS оказался удачным! Чего нельзя сказать об попытке адаптировать под dkms кодовой базы aufs5. Сей простой скрипт, помещённый в initrd/local-bottom, делает работу на ура:

#!/bin/sh -e

# because we run sh with '-e' key, it will end script execution if grep fails
grep -q -E '\soverlayfs(\s|$)' /proc/cmdline

mkdir /overlays
mkdir /overlays/realfs
mkdir /overlays/tmpfs

mount -t tmpfs tmpfs /overlays/tmpfs
mkdir /overlays/tmpfs/upper
mkdir /overlays/tmpfs/work

mount --move ${rootmnt} /overlays/realfs
mount -t overlay overlay -o lowerdir=/overlays/realfs,upperdir=/overlays/tmpfs/upper,workdir=/overlays/tmpfs/work ${rootmnt}

mkdir -p ${rootmnt}/mnt/overlays
mkdir ${rootmnt}/mnt/overlays/realfs
mkdir ${rootmnt}/mnt/overlays/tmpfs
mount --move /overlays/realfs ${rootmnt}/mnt/overlays/realfs
mount --move /overlays/tmpfs ${rootmnt}/mnt/overlays/tmpfs

cat /dev/null > ${rootmnt}/etc/fstab

Главное проследить, чтобы ядро было либо с вкомпиленной поддержкой OverlayFS, или чтобы модуль overlay обязательно оказался в initrd!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *