image-live: fix check for rootfs size with hddimg images

Currently we check if the rootfs.img size is greater than 4 GB and use
mcopy to copy it over to a hddimg, a FAT32 volume.

This results in problems when IMAGE_ROOTFS_SIZE is set to be exact 4 GB
(4294967296 bytes). mcopy uses the max offset/file size to be 4294967295
and as a result, it errors out without any warning to the user.

Change the 4 GB check to '-ge' to catch these cases. Since we allow
IMAGE_ROOTFS_SIZE to be in KBs, the maximum allowed is 4194303 KB. Also,
tweaked the error message to refer to wic too.

Fixes [YOCTO #12776]

(From OE-Core rev: 16956dacd4be2c64e5816ccb2b222b5b128838c9)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Anuj Mittal
2018-07-10 16:41:41 +08:00
committed by Richard Purdie
parent a9b91031ec
commit ebbd1e4a94

View File

@@ -230,11 +230,11 @@ build_hddimg() {
if [ -f ${HDDDIR}/rootfs.img ]; then
rootfs_img_size=`stat -c '%s' ${HDDDIR}/rootfs.img`
max_size=`expr 4 \* 1024 \* 1024 \* 1024`
if [ $rootfs_img_size -gt $max_size ]; then
bberror "${HDDDIR}/rootfs.img execeeds 4GB,"
bberror "this doesn't work on FAT filesystem, you can try either of:"
bberror "1) Reduce the size of rootfs.img"
bbfatal "2) Use iso, vmdk or vdi to instead of hddimg\n"
if [ $rootfs_img_size -ge $max_size ]; then
bberror "${HDDDIR}/rootfs.img rootfs size is greather than or equal to 4GB,"
bberror "and this doesn't work on a FAT filesystem. You can either:"
bberror "1) Reduce the size of rootfs.img, or,"
bbfatal "2) Use wic, vmdk or vdi instead of hddimg\n"
fi
fi