У меня есть файл изображения btrfs, установленный как бэкэнд для LXD (2.18), но я хотел бы уменьшить его размер. Что я сделал:
losetup /dev/loop1 /home/btrfs.img
mount /dev/loop1 /mnt/brtfs
btrfs filesystem resize -100G /mnt/btrfs
И после этого df
правильно показывает размер раздела /mnt/btrfs
:
root@host:/mnt/btrfs# df -k .
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/loop1 1614807040 1563273068 48426164 97% /mnt/btrfs
но файл остается того же размера
root@host:/home# ls -al
total 1848321632
drwx------ 2 root root 4096 Nov 11 10:19 .
drwxr-xr-x 4 root root 4096 Nov 11 10:19 ..
-rw------- 1 root root 1932735283200 Nov 11 06:29 btrfs.img
Позже я попробовал btrfs filesystem resize -100GB /home/btrfs.img
и это не сработало в соответствии с документация:
Предупреждение: Если путь - это файл, содержащий изображение BTRFS, изменение размера не работает должным образом и не изменяет размер изображения. Вместо этого это изменит размер базовой файловой системы.
У меня вопрос: как сжать весь файл без потери данных?
усечь -s100G /home/btrfs.img