ファイルシステムイメージをできるだけ小さいサイズに縮小しようとしています。 resize2fsは予約されたファイルシステムブロックを所定の位置に保持することに同意しますが、縮小操作の後にファイルシステムに約400 Mbの空き容量が残ります。
私が実行するステップは次のとおりです。
aj@pop-os:~/disk_images$ sudo losetup -fP --show mcard.img
/dev/loop0
aj@pop-os:~/disk_images$ sudo zerofree -v /dev/loop0p1
112082/2671282/3665210
aj@pop-os:~/disk_images$ sudo e2fsck -f /dev/loop0p1
e2fsck 1.46.5 (30-Dec-2021)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/loop0p1: 191007/917504 files (0.3% non-contiguous), 993928/3665210 blocks
aj@pop-os:~/disk_images$ sudo resize2fs -Mp /dev/loop0p1
resize2fs 1.46.5 (30-Dec-2021)
Resizing the filesystem on /dev/loop0p1 to 1115084 (4k) blocks.
Begin pass 2 (max = 3444)
Relocating blocks XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 112)
Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/loop0p1 is now 1115084 (4k) blocks long.
すべてがうまく機能しているようで、ファイルシステムは16GBから4.1GBに縮小されました。ただし、ファイルシステムに空き容量が残ります。
aj@pop-os:~/disk_images$ sudo mount /dev/loop0p1 xmnt/
aj@pop-os:~/disk_images$ df -h xmnt/
Filesystem Size Used Avail Use% Mounted on
/dev/loop0p1 4.1G 3.5G 434M 90% /home/aj/disk_images/xmnt
aj@pop-os:~/disk_images$ sudo umount xmnt/
aj@pop-os:~/disk_images$ sudo dumpe2fs -h /dev/loop0p1
(Output shortened for readability)
Block count: 1115084
Reserved block count: 47712
Free blocks: 162785
Block size: 4096
ご覧のとおり、ファイルシステムを縮小した後、df
ユーティリティはdumpe2fs
ファイルシステムイメージに残っている空き容量を表示します。
なぜそんなことですか?予約されたブロックに加えて空き領域がないようにファイルシステムのサイズを実際に減らすためにresize2fsを取得するにはどうすればよいですか?