Как сделать шифрованный расширяемый контейнер в файле в linux?

Вот в макоси есть 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 есть шифрование, но не нашел, как сделать там расширяемый контейнер.
  • Вопрос задан
  • 480 просмотров
Решения вопроса 1
gbg
@gbg Куратор тега Linux
Любые ответы на любые вопросы
encfs. Маунтите одну папку в другую, в результате все что записано в первую папку, появляется во второй папке в шифрованном виде.

Так как эта штука работает на уровне папок а не дисков, она занимает на диске ровно столько, сколько вы в нее положили

Cryptomator - аналогично
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@alex1478
Сделайте файл-контейнер как у вас сейчас, внутри luks, в нём любую файловую систему. Когда нужно расширить - увеличиваете файл контейнер, расширяете luks, расширяете файловую систему.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы