sd-image: Slims the ext4 filesystem even more.
This is to try and squeeze more lost space from the image, so that hydra starts building it again. The fsck previous to the resize2fs is required so resize2fs works. The one afterwards is a sanity check. Using `-M` from resize2fs will not give much saved space due to a known (in the manual) issue. ``` [samueldr@aarch64:~/nixpkgs]$ ls -lh result-*/*/*.img -r--r--r-- 1 root root 2.2G Jan 1 1970 result-original/sd-image/nixos-sd-image-18.09.git.a7fd431-aarch64-linux.img -r--r--r-- 1 root root 2.1G Jan 1 1970 result-M/sd-image/nixos-sd-image-18.09.git.a7fd431-aarch64-linux.img -r--r--r-- 1 root root 1.9G Jan 1 1970 result-slimmed/sd-image/nixos-sd-image-18.09.git.a7fd431-aarch64-linux.img ``` ``` [samueldr@aarch64:~/nixpkgs]$ nix path-info -S ./result-original /nix/store/c8k9n78gylx293rjh762fr05a069kxp2-nixos-sd-image-18.09.git.a7fd431-aarch64-linux.img 3844125000 [samueldr@aarch64:~/nixpkgs]$ nix path-info -S ./result-slimmed /nix/store/962238skj5mnzhrsmjy23dyzmxk77sp4-nixos-sd-image-18.09.git.a7fd431-aarch64-linux.img 3447473208 ```
This commit is contained in:
parent
80738ed9dc
commit
61bdaad9a9
|
@ -94,5 +94,24 @@ pkgs.stdenv.mkDerivation {
|
|||
cat errorlog
|
||||
return 1
|
||||
fi
|
||||
|
||||
(
|
||||
# Resizes **snugly** to its actual limits (or closer to)
|
||||
free=$(dumpe2fs $out | grep '^Free blocks:')
|
||||
blocksize=$(dumpe2fs $out | grep '^Block size:')
|
||||
blocks=$(dumpe2fs $out | grep '^Block count:')
|
||||
blocks=$((''${blocks##*:})) # format the number.
|
||||
blocksize=$((''${blocksize##*:})) # format the number.
|
||||
# System can't boot with 0 blocks free.
|
||||
# Add 16MiB of free space
|
||||
fudge=$(( 16 * 1024 * 1024 / blocksize ))
|
||||
size=$(( blocks - ''${free##*:} + fudge ))
|
||||
|
||||
echo "Resizing from $blocks blocks to $size blocks. (~ $((size*blocksize/1024/1024))MiB)"
|
||||
EXT2FS_NO_MTAB_OK=yes resize2fs $out -f $size
|
||||
)
|
||||
|
||||
# And a final fsck, because of the previous truncating.
|
||||
fsck.ext4 -n -f $out
|
||||
'';
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue