Message ID | 20221025134720.22571-2-henning.schild@siemens.com |
---|---|
State | Superseded, archived |
Headers | show |
Series | expand-on-first-boot: Switch from resize2fs to systemd-growfs | expand |
Am Tue, 25 Oct 2022 15:47:20 +0200 schrieb Henning Schild <henning.schild@siemens.com>: > From: Tobias Schmidl <tobiasschmidl@siemens.com> > > We want to be more versatile in our approach of resizing the last > partition. Therefore we switch from resize2fs to systemd-growfs. > > This allows for ext4, btrfs, xfs, and dm-crypt partitions to be > resized. > > Signed-off-by: Tobias Schmidl <tobiasschmidl@siemens.com> > Signed-off-by: Henning Schild <henning.schild@siemens.com> > --- > ...oot_1.1.bb => expand-on-first-boot_1.2.bb} | 3 +- > .../files/expand-last-partition.sh | 31 > ++++++++++++++++--- 2 files changed, 28 insertions(+), 6 deletions(-) > rename > meta/recipes-support/expand-on-first-boot/{expand-on-first-boot_1.1.bb > => expand-on-first-boot_1.2.bb} (88%) > > diff --git > a/meta/recipes-support/expand-on-first-boot/expand-on-first-boot_1.1.bb > b/meta/recipes-support/expand-on-first-boot/expand-on-first-boot_1.2.bb > similarity index 88% rename from > meta/recipes-support/expand-on-first-boot/expand-on-first-boot_1.1.bb > rename to > meta/recipes-support/expand-on-first-boot/expand-on-first-boot_1.2.bb > index 1703a648ca27..8d11aef00927 100644 --- > a/meta/recipes-support/expand-on-first-boot/expand-on-first-boot_1.1.bb > +++ > b/meta/recipes-support/expand-on-first-boot/expand-on-first-boot_1.2.bb > @@ -1,13 +1,14 @@ # Resize last partition to full medium size on fist > boot # # This software is a part of ISAR. -# Copyright (c) Siemens > AG, 2018 +# Copyright (c) Siemens AG, 2018-2022 # > # SPDX-License-Identifier: MIT > > inherit dpkg-raw > > DESCRIPTION = "This service grows the last partition to the full > medium during first boot" +MAINTAINER = "isar-users > <isar-users@googlegroups.com>" > DEBIAN_DEPENDS = "systemd, sed, grep, coreutils, mount, e2fsprogs, > fdisk, util-linux" > diff --git > a/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh > b/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh > index 759ff8b61ccd..046a1394d213 100755 --- > a/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh > +++ > b/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh > @@ -3,7 +3,7 @@ # Resize last partition to full medium size # # This > software is a part of ISAR. -# Copyright (c) Siemens AG, 2018 > +# Copyright (c) Siemens AG, 2018-2022 > # > # SPDX-License-Identifier: MIT > > @@ -57,8 +57,29 @@ sfdisk -d "${BOOT_DEV}" 2>/dev/null | \ > # Inform the kernel about the partitioning change > partx -u "${LAST_PART}" > > -# Do not fail resize2fs if no mtab entry is found, e.g., > -# when using systemd mount units. > -export EXT2FS_NO_MTAB_OK=1 > +# this is for debian stretch or systemd < 236 > +if [ ! -x /lib/systemd/systemd-growfs ]; then > + # Do not fail resize2fs if no mtab entry is found, e.g., > + # when using systemd mount units. > + export EXT2FS_NO_MTAB_OK=1 > > -resize2fs "${LAST_PART}" > + resize2fs "${LAST_PART}" > + exit 0 > +if > + > +if grep -q x-systemd.growfs /etc/fstab; then > + echo "Found x-systemd.growfs option in /etc/fstab, won't > call it explicitly." >&2 > + exit 0 > +fi syntax error ... stay tuned ... > + > +# mount $LAST_PART out of tree, so we won't conflict with other > mounts +MOUNT_POINT=$(mktemp -d -p /mnt "$(basename "$0").XXXXXXXXXX") > +if [ ! -d "${MOUNT_POINT}" ]; then > + echo "Cannot create temporary mount point ${MOUNT_POINT}." > >&2 > + exit 1 > +fi > + > +mount "${LAST_PART}" "${MOUNT_POINT}" > +/lib/systemd/systemd-growfs "${MOUNT_POINT}" > +umount "${MOUNT_POINT}" > +rmdir "${MOUNT_POINT}"
diff --git a/meta/recipes-support/expand-on-first-boot/expand-on-first-boot_1.1.bb b/meta/recipes-support/expand-on-first-boot/expand-on-first-boot_1.2.bb similarity index 88% rename from meta/recipes-support/expand-on-first-boot/expand-on-first-boot_1.1.bb rename to meta/recipes-support/expand-on-first-boot/expand-on-first-boot_1.2.bb index 1703a648ca27..8d11aef00927 100644 --- a/meta/recipes-support/expand-on-first-boot/expand-on-first-boot_1.1.bb +++ b/meta/recipes-support/expand-on-first-boot/expand-on-first-boot_1.2.bb @@ -1,13 +1,14 @@ # Resize last partition to full medium size on fist boot # # This software is a part of ISAR. -# Copyright (c) Siemens AG, 2018 +# Copyright (c) Siemens AG, 2018-2022 # # SPDX-License-Identifier: MIT inherit dpkg-raw DESCRIPTION = "This service grows the last partition to the full medium during first boot" +MAINTAINER = "isar-users <isar-users@googlegroups.com>" DEBIAN_DEPENDS = "systemd, sed, grep, coreutils, mount, e2fsprogs, fdisk, util-linux" diff --git a/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh b/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh index 759ff8b61ccd..046a1394d213 100755 --- a/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh +++ b/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh @@ -3,7 +3,7 @@ # Resize last partition to full medium size # # This software is a part of ISAR. -# Copyright (c) Siemens AG, 2018 +# Copyright (c) Siemens AG, 2018-2022 # # SPDX-License-Identifier: MIT @@ -57,8 +57,29 @@ sfdisk -d "${BOOT_DEV}" 2>/dev/null | \ # Inform the kernel about the partitioning change partx -u "${LAST_PART}" -# Do not fail resize2fs if no mtab entry is found, e.g., -# when using systemd mount units. -export EXT2FS_NO_MTAB_OK=1 +# this is for debian stretch or systemd < 236 +if [ ! -x /lib/systemd/systemd-growfs ]; then + # Do not fail resize2fs if no mtab entry is found, e.g., + # when using systemd mount units. + export EXT2FS_NO_MTAB_OK=1 -resize2fs "${LAST_PART}" + resize2fs "${LAST_PART}" + exit 0 +if + +if grep -q x-systemd.growfs /etc/fstab; then + echo "Found x-systemd.growfs option in /etc/fstab, won't call it explicitly." >&2 + exit 0 +fi + +# mount $LAST_PART out of tree, so we won't conflict with other mounts +MOUNT_POINT=$(mktemp -d -p /mnt "$(basename "$0").XXXXXXXXXX") +if [ ! -d "${MOUNT_POINT}" ]; then + echo "Cannot create temporary mount point ${MOUNT_POINT}." >&2 + exit 1 +fi + +mount "${LAST_PART}" "${MOUNT_POINT}" +/lib/systemd/systemd-growfs "${MOUNT_POINT}" +umount "${MOUNT_POINT}" +rmdir "${MOUNT_POINT}"