From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7163605801230139392 X-Received: by 2002:a19:671e:0:b0:497:45e:4557 with SMTP id b30-20020a19671e000000b00497045e4557mr627422lfc.230.1668005696977; Wed, 09 Nov 2022 06:54:56 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:3e6:b0:4a2:3951:eac8 with SMTP id n6-20020a05651203e600b004a23951eac8ls4289072lfq.0.-pod-prod-gmail; Wed, 09 Nov 2022 06:54:55 -0800 (PST) X-Google-Smtp-Source: AMsMyM7FVihPa8myVUkYMCAPv5Kuz1EvcjZGDFEVJcJ0yZubP8/QfvI1cQHXsLSUiqNge3Gf5ILe X-Received: by 2002:a05:6512:2142:b0:497:9810:acfc with SMTP id s2-20020a056512214200b004979810acfcmr593945lfr.50.1668005695740; Wed, 09 Nov 2022 06:54:55 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1668005695; cv=pass; d=google.com; s=arc-20160816; b=AROWoPqjJG+Ft5t9WTM4SNEsapSfP5gzsSXJD01kcx0W13aJ4a4WS3LudgkZtv4IaC uyj/1TfA8a68HAhfKIgNPZSajC9zg2fqxcQFglfdcxIJsyd/K18Co9AMKKCj+dNbOMzX c+fmvuLv+5NJUmr1GU2NUiSuFOFd9QZEHTPRkIm5PINwPIwAJAEHU61eUUsKXq6Dog5q fuSITTsZYhev30WW1My1Fme5/wdbsNGKVz5YVZ4bbKl56j8mYLqvQcU/rsCN6AJOd8q4 GRtgHfr/zX42Tl4DgekR9R+pcqOZfKftnAu8a7vosCv24VZpIX965+MK8x5RMwCwbLAx YRHQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:subject:cc:to:from:date:dkim-signature; bh=7cuAw1fbNLsUmNJJNuwU6WfZVYOMyIqMbFvP/qivxRE=; b=PAOFhDbm1dxRjIHyVMBcChP4f1ckTc6Liv0UEsKUKaG5W9ElKYF8oJ4NRjF6gba7AS rbL2G01UCrNbsKjf6PfZB6rajHAcUpalpDVIfX5Huc3o+eursASYPXkvCR2UcDcGEam+ sVxaJbacNLITWyVZjawKzE6xVYAuaTKV2qYQEPQ86cdJbUFTL5c70mrBRxomjkJAIjwU 6KiuoLFqF1P8drRwLohjM4b/eF5GooykSBP6gJ6V9CRHW33a4defsoZrRWz3zidhxdZ+ CP/7x1GsxYslwkD15aSqG8um5A9T67dHwNB+A0vJuIKMwxRKBZD03PFq7er2GyEVt5l0 3LEw== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=OwgkrqiL; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of henning.schild@siemens.com designates 40.107.13.89 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130089.outbound.protection.outlook.com. [40.107.13.89]) by gmr-mx.google.com with ESMTPS id z14-20020a056512370e00b0048b224551b6si497722lfr.12.2022.11.09.06.54.55 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 Nov 2022 06:54:55 -0800 (PST) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 40.107.13.89 as permitted sender) client-ip=40.107.13.89; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=OwgkrqiL; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of henning.schild@siemens.com designates 40.107.13.89 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FAbSLIKnNZTFPzagge/dDKLWUOyYBXJ+aRwgD4BNblwrsSGbNqfsKwpefkB23f0mRwRitDY2Ebf13Omko3utkNT7uJPid0610MvHYWLNbFkGigGfMveCyqXjpQ0HUx79jzswZiPmT9v9c0atrelMkAJSAycghTA0gJCOF5SRdt6prh/wI/3kx3xhrOsUdgF/Br8Rct+02uuez7UZuAEkL2YfDAwYVMCFxgY5iXTmQMU6o68e99FNtn1objL+gsIg569qGF/WBT2FZrrtajGKKdvpoBi4lD92TrjtCSamIYR+ZL+8j4Fjk4dzTh59r3MoIZAEzyfZfLz6bQxWPNnNsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7cuAw1fbNLsUmNJJNuwU6WfZVYOMyIqMbFvP/qivxRE=; b=fEfdyuMc/TizQUxIkb867YQjqazyVpVoUNsyxqdB+91VXLp1fUdezAOl3Ij9jg11WPERtS/sY54h3r1Aig/T0mDvuhOpvoUUw0pTmhV7rpt0eycIs80odQNud/doop9a/QYRHoBCwXzulo01zBntkBqsFj5a5GC3QZioCncyT6A1BMhfea4CxRcONaUK2YXYHd9V/j5B4kKcQQMo0Ln8slZtwzwyR5ZzIUCG7tfpf50bUihyBnnZQ33mTUdQaKG6Xa1rtIlQg83cIs3sb7O0FZrDvQtuY/pCzE/lZzHoKE+D5uOMSAXCRG2OcMe3ECDLpaQWaqFnGbOVYRhTfhGv8g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7cuAw1fbNLsUmNJJNuwU6WfZVYOMyIqMbFvP/qivxRE=; b=OwgkrqiLmFLmrYd/u7RbQ+TI3lQ+lATFb1PvXnvDRMZsAGB9N2Y+yLhFF1f4lOsA9RopDgfPAfi69ZyE6zcYzNwnOmul0M5rHYZIBsfSd3Hh3HM1kfHrcPpBpH0Zde5KL9WRMdlFUiDvbDb6G0X8NlQpdq8svBAife/65IGpaBm7hHtBmtyxQtyA1/xtSkoZ6D6It8uaEF0YVjrSPTumrKzkGURurTFSK/jQ85E4LMTJpltEcvD+lyM8mfLQBq9Ur3SmhHPYQ/xBenLlUv65O6z8cOwOgaC15Dh9gppkYZIwCKCgMeUzljYevXUkBfimMPoGXAVHstbpxmS++mWLzQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siemens.com; Received: from PA4PR10MB5780.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:269::8) by AM0PR10MB3619.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:15a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.27; Wed, 9 Nov 2022 14:54:54 +0000 Received: from PA4PR10MB5780.EURPRD10.PROD.OUTLOOK.COM ([fe80::e9f4:4305:f82d:1abb]) by PA4PR10MB5780.EURPRD10.PROD.OUTLOOK.COM ([fe80::e9f4:4305:f82d:1abb%3]) with mapi id 15.20.5791.027; Wed, 9 Nov 2022 14:54:54 +0000 Date: Wed, 9 Nov 2022 16:54:45 +0200 From: Henning Schild To: "Schaffner, Tobias (T CED SES-DE)" Cc: "isar-users@googlegroups.com" , Tobias Schmidl Subject: Re: [PATCH 1/2] Check if last partition ends at GPT backup header Message-ID: <20221109165445.0e411392@md1za8fc.ad001.siemens.net> In-Reply-To: References: <20221108112837.435213-1-tobias.schaffner@siemens.com> <20221108112837.435213-2-tobias.schaffner@siemens.com> <20221109102627.279d430a@md1za8fc.ad001.siemens.net> X-Mailer: Claws Mail 4.1.0 (GTK 3.24.34; x86_64-pc-linux-gnu) Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-ClientProxiedBy: CH0PR03CA0308.namprd03.prod.outlook.com (2603:10b6:610:118::10) To PA4PR10MB5780.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:269::8) Return-Path: henning.schild@siemens.com MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR10MB5780:EE_|AM0PR10MB3619:EE_ X-MS-Office365-Filtering-Correlation-Id: 40bd4f18-8598-427c-e1a2-08dac2625c5f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: t0L5gr1P2MrPFVopz+pDEX8uUR7qR2EzFppeGyv1oQYhlYfaekCzezkics/wo8Hq11k6iU3ARPs44JTjB45bpMF96GPY9a9Bj4L1iNlIa8zeEmgMotoVanRuUgdvm8gUvHAj95IcxgNyrknUBVNQWMIJ08VOlfOXLeQb2k6X8eIin2O/qBteD+ePLaFJr/QkbBP1rKmzPmrWxmGPQfssYlLCs42vhTyfUn0aVZH96xYHNyV1Y28wHN9bb3/EEthSISrvjFYQ/0KbA+87NjkFp4MWE2+rpFyOSGl87V/2xhPtquDLk6ck68vrEpWHk6DwKKBXWYFTZKn+HXQlbh0sELN8mrx+yZ6hs1CVFRrOL7Yrx8xxbO3u7mBRHo0vSi85V7fWqKnqrk3fRTWQscVvyoat7DyCP3/9sNAc/aVtMS30HqKk3HjHJBuxjgcHDh7wuwL9E9iTiapHPpbksZj/6F3K4OdgYirPyNOCR30ih8Kehe0fJ0S1/lf++X47Dbqt2nVLK55pQGo8/z0lTTM+ONzUzJQQp+EILZegINw2qtpaoiRLp8PaDz3qZ4z2X3SurQN66xunNQdsQLtJ1FLcBvj1iuV/Yz6vxdV+5EJYyetjjIFePdg2T3qeFGs4fLXPIQ0bAnlxX4Spn17cd6GDbiMH7KqxjNzL4+IOR3prCFZbj2T2GpW45iheVsh21E6nnE6hirQEtG4WJCiT/PeJm7jN7gIbRgXIA+v1DgKrEwg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR10MB5780.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230022)(4636009)(136003)(376002)(346002)(366004)(396003)(39860400002)(451199015)(4326008)(8936002)(6862004)(5660300002)(2906002)(44832011)(86362001)(82960400001)(38100700002)(186003)(8676002)(41300700001)(83380400001)(6636002)(54906003)(6486002)(316002)(66476007)(66946007)(66556008)(53546011)(6506007)(9686003)(26005)(478600001)(6512007)(107886003)(6666004)(1076003)(966005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SWAgDifWqhQT6zf6UPtZ5nX1YHWezBSGTn/ymVwvOVWj/IvxKfY/AZflnrx0?= =?us-ascii?Q?noT05mKJQ6kunL1Y4aEAruZyVjSycZ4DjlqIlxTRCjvI9lKpxCUJ+a70a9hA?= =?us-ascii?Q?UlzWzeLazhYtGBE+hhPkY7ifWd+Dhc85M3yS+ztiO90FU/gK3SO5Lr+QHPZ2?= =?us-ascii?Q?cUmOSX15p/+VO/aJuSUZI9dfYBFegnOEvS3UZMJvOhLQdr9t9iee2ypl0HSK?= =?us-ascii?Q?mM+xh8Wd6lAlq2GJphrw0kWub2G9pa9Fzn36AqsGenrgJA0wI++GScSTYgUk?= =?us-ascii?Q?ol2wuCoYhcYLDKOcg5MDxPAB+z3NJ2bWTN1yI2Y4w3HdYHpMr3S32MscMFWs?= =?us-ascii?Q?L6trHjLxdskU8MLDY8w2+9JyDBXOnrF3fc0Wc3jRs4IKe3nzJE/M/U76M1Cm?= =?us-ascii?Q?f76AC44J/TsSlYJiOpNTD+4RjL5fJuuM+V4fh4kZUiNwgPf5YwUgaikuD1vs?= =?us-ascii?Q?JMHLHHZJpExYcaA6nEjQdh+lsK9l4bijOKLS5Q7He0q3/ndqf6hGvJG6t0LH?= =?us-ascii?Q?ntMo7ua1QiPr2eaYkZs9GMpy5wXcPwzGB3OdvkI3m6QvGh1TdAllgJcbbisf?= =?us-ascii?Q?b4IQr9K3eyOikd/pY8f6ehOwhpDu1/V28nYkELfbxJXiLDNC+2X8DHBGP827?= =?us-ascii?Q?5ysNnT8wFdNBCrYd9a5h2Z/RQxCE4CFi+9dEE0nwS5WcJd8r1xOG92jMVgC8?= =?us-ascii?Q?tB6Vb6ukUhaZxGtkzKjg2HrjFqBVIhLPC95VZdGYdStrp5qcLeOQzv+HPPkc?= =?us-ascii?Q?Z20ZI2O6k54KuVFgzAa03uOJUOn73XcgnxHZxZ5TBC/gieqlx9SriTe7kRmk?= =?us-ascii?Q?DBXW8H0l9vA1u+f7dDTfBAWmvKJYB5XKVBKAC1zJEkDPZD+Xt826Flu5w7dv?= =?us-ascii?Q?e7O4mFUqRbNxrd3Zbkowbw1YeStEdTNwFqO8M3AfTgr/MkEO4hNTTFej6EnF?= =?us-ascii?Q?0km4co5MhAzycwT6u40huglzvxYrClhfiwh/TE2IbohECQiCSw/v6M1xyrLW?= =?us-ascii?Q?30jPWSTPhWbtBWuM/6mv4w//RVgrGkP52zl2C/fPV3v5vOlMAu9ZsXqg+3Vi?= =?us-ascii?Q?EjcLQIjcQbKwXoPut9Y/m6wPqcWrvEQxRRMCCXFW1BCxfQ4gyuajZCE8h78k?= =?us-ascii?Q?59pk6/14qeWxLIVrWHPKTxiB9zAYEJpjU9Ub40b91g7eWOroo5zHyoi8cjHI?= =?us-ascii?Q?kmslHYov/w1gtseg8cDummEzeDTgrLimhksIrAPg8kW6o2szG38SwSb3whPj?= =?us-ascii?Q?PYBN9VEA36PEH0VZViHn14RUwfWPA3YaaZ1l/p4IkJ3A1DfiUOmWAKBECMMJ?= =?us-ascii?Q?Dx4O16jg0i2WXetnJV8INYRcquIpvNasuKJwxst3P9PhB4+hN/t5DEulET93?= =?us-ascii?Q?PAGVdmIcrYY17R6TZ3RNeECIH6m5pV2IGBQoe7IHtA+Zz+w79RdzpQ7oGuZS?= =?us-ascii?Q?UfUm0+aIri+XKw/VKsaqMWbUVohK3hVMV61LlnxP8QwZFYpfEFLS4uu75HIe?= =?us-ascii?Q?dpQrMxaB+bMed4f7QUwTeSLaNQVRhGTU+EodsnOPcUaLs1cGRHUBN4f7ys0M?= =?us-ascii?Q?GsG7OCKeAddGVAdlW8YiH2BrInaenlI7RIL1KVKCl2SK45F3Fj9K8LeJvKWI?= =?us-ascii?Q?eA=3D=3D?= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 40bd4f18-8598-427c-e1a2-08dac2625c5f X-MS-Exchange-CrossTenant-AuthSource: PA4PR10MB5780.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2022 14:54:53.9654 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: EWERlSic+ELsbmkajk/xfP6Vr2fo6ryfR/dTG7dcxNBN7VOOMA3XARrClVrBDai0BCexqvwK4KB4ceTsoWtLHjBXgFLcEY9LqWjKIOSDhdk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR10MB3619 X-TUID: ckageVVhadX9 Am Wed, 9 Nov 2022 10:40:20 +0100 schrieb "Schaffner, Tobias (T CED SES-DE)" : > On 09.11.22 09:26, Schild, Henning (T CED SES-DE) wrote: > > Am Tue, 8 Nov 2022 12:28:36 +0100 > > schrieb "T. Schaffner" : > > > >> From: Tobias Schaffner > >> > >> The GPT backup header has a fixed size of 33 512 byte blocks. Check > >> if the last partition ends at the block before the start of the > >> GUID partition table backup header. If so the partition is fully > >> expanded. > >> > >> Signed-off-by: Tobias Schaffner > >> --- > >> .../files/expand-last-partition.sh | 21 > >> +++++++++---------- 1 file changed, 10 insertions(+), 11 > >> deletions(-) > >> > >> 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 57055cc..0d662cc 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 > >> @@ -22,24 +22,23 @@ if [ "${ROOT_DEV}" = "${BOOT_DEV}" ]; then > >> exit 1 fi -# this value is in blocks. Normally a block has 512 > >> bytes. -BUFFER_SIZE=32768 > >> BOOT_DEV_NAME=${BOOT_DEV##*/} > >> +LAST_PART_NAME="$(lsblk -l -o NAME "${BOOT_DEV}" | tail -1)" > >> +LAST_PART="/dev/${LAST_PART_NAME}" > >> + > >> DISK_SIZE="$(cat /sys/class/block/"${BOOT_DEV_NAME}"/size)" > >> -ALL_PARTS_SIZE=0 > >> -for PARTITION in > >> /sys/class/block/"${BOOT_DEV_NAME}"/"${BOOT_DEV_NAME}"*; do > >> - PART_SIZE=$(cat "${PARTITION}"/size) > >> - ALL_PARTS_SIZE=$((ALL_PARTS_SIZE + PART_SIZE)) > >> -done > >> +LAST_PART_SIZE="$(cat /sys/class/block/"${LAST_PART_NAME}"/size)" > >> +LAST_PART_START="$(cat > >> /sys/class/block/"${LAST_PART_NAME}"/start)" + > >> +# The GUID partition table stores its backup in the last 33 blocks > >> of the table. +# Therefore the last partition ends 33 before the > >> end of the disk if expanded. +GPT_BACKUP_SIZE=33 > >> > >> -MINIMAL_SIZE=$((ALL_PARTS_SIZE + BUFFER_SIZE)) > >> -if [ "$DISK_SIZE" -lt "$MINIMAL_SIZE" ]; then > >> +if [ $((LAST_PART_START + LAST_PART_SIZE + GPT_BACKUP_SIZE)) -lt > >> "${DISK_SIZE}" ]; then echo "Disk is practically already full, > >> doing nothing." >&2 exit 0 > > > > There was a good reason for that. I think when for alignment > > reasons or so it looks like there is a little bit of space left. > > But the resize would then not work or we would in fact try a shrink > > and fail. Here you seem the switch the logic from "practically > > full" to "really full" and remove that margin where a resize would > > be tried but would fail. > > > > The trick with last_part start + size looks nicer than summing up > > the whole size. > > > > Henning > > Any ideas how I could reproduce such a case? > > I have not seen any partition alignment in my tests so far. The only > thing that has to be respected is the GUID backup header in the end > of the partition. > > What I have seen is a alignment of the filesystem inside of the > partition. Ext4 is aligned to a minimum of 4096 bytes / 8 sysfs > blocks. But this is not relevant in the check if the partition was > expanded. I think the repro was with an example image booted in qemu without growing that image with qemu-img convert. In which case the partition table resize was a noop but the fs resize wanted to shrink for alignment reasons. And that failed because the fs was just very full. Might be hard to repro but also not too smart to basically revert the patch that introduced that "close to full ... better not touch". Likely not all versions/distros affected in the same way. And it was with resize2fs, not sure how systemd would react but i assume it will in effect also call resize2fs at the end of the day. https://github.com/ilbers/isar/commit/bd9bd34c978829ffc13d61c36af90363030c2349 The commit does not explain in detail which combination was "broken". May be spread somewhere in the discussions that have been going on around that. I took Tobias Schmidl on Cc, maybe he will answer. But we might be on our own. I have sent a patch to CI test expand-on-first-boot. While that still needs a rewrite, it can already be used to test this series. Maybe you find your repro that way. Henning > > All the best > > >> fi > >> > >> -LAST_PART="$(sfdisk -d "${BOOT_DEV}" 2>/dev/null | tail -1 | cut > >> -d ' ' -f 1)" - > >> # Transform the partition table as follows: > >> # > >> # - Remove any 'last-lba' header so sfdisk uses the entire > >> available space. > >