如何缩小LXD存储使用的btrfs图像文件?

我有btrfs图像文件设置为后端LXD(2.18),但我想缩小它的大小。 我做了什么:

  • 挂载映像到循环设备losetup /dev/loop1 /home/btrfs.img
  • 挂载设备到/ mnt目录mount /dev/loop1 /mnt/brtfs
  • 使用btrfs filesystem resize -100G /mnt/btrfs大小的btrfs分区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 ,根据文档它没有工作:

警告:如果path是包含BTRFS图像的文件,则resize不能按预期方式工作,并且不会调整图像的大小。 这将调整底层文件系统的大小。

我的问题是:如何在不丢失数据的情况下缩小整个文件?