Вот в макоси есть sparce bundle, который монтируется как диск и позволяет в нем зашифровать данные. А как сделать тоже самое в линуксе максимально безгеморройно?
Требования:
1)В виде файла или набора файлов
2)Допускающий увеличение обьема. В идеале просто "добавил новый файл внутри контейнера — файл контейнера вырос", но можно и вручную добавлять файлы. Но без необходимости делать каждый раз новый контейнер бОльшего обьема и переносить туда файлы из старого.
3)Шифрование, т.к. контейнер будет хранится в недоверенной среде. Сложных алгоритмов и постквантового шифрования не надо, но базовая защита должна быть.
Нашел, как сделать расширяемый контейнер на btrfs, но потом понял, что там нет встроенного шифрования, а хотелось бы без лишних команд обойтись.
Создать:
truncate -s10G one.img
truncate -s10G two.img
ld1=$(losetup --show --find one.img); echo "$ld1"
ld2=$(losetup --show --find two.img); echo "$ld2"
mkfs.btrfs -d raid0 "$ld1" "$ld2"
losetup -d "$ld1"
losetup -d "$ld2"
Использовать
ld1=$(losetup --show --find one.img); echo "$ld1"
ld2=$(losetup --show --find two.img); echo "$ld2"
btrfs device scan "$ld1" "$ld2"
mount "$ld1" /mnt/data_in_image
...
umount /mnt/data_in_image
losetup -d "$ld1"
losetup -d "$ld2"
Расширить
truncate -s10G 3.img
ld3=$(losetup --show --find 3.img); echo "$ld3"
btrfs device add "$ld3" /mnt/data_in_image
btrfs balance start -dconvert=raid0 -mconvert=raid1 /mnt/data_in_image
У ZFS есть шифрование, но не нашел, как сделать там расширяемый контейнер.