From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7174822613449965568 X-Received: by 2002:ac2:42d1:0:b0:4b5:1686:e702 with SMTP id n17-20020ac242d1000000b004b51686e702mr17505217lfl.271.1670521166719; Thu, 08 Dec 2022 09:39:26 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:2c17:0:b0:279:9f0a:bf59 with SMTP id s23-20020a2e2c17000000b002799f0abf59ls1006796ljs.9.-pod-prod-gmail; Thu, 08 Dec 2022 09:39:25 -0800 (PST) X-Google-Smtp-Source: AA0mqf7MVbGWoIc4eJft2Z9K5sitlDUnEFmXOf/4qZCPj31PChdxouwYzXO623te8QNikq9EvPP3 X-Received: by 2002:a05:651c:895:b0:277:22d1:ca92 with SMTP id d21-20020a05651c089500b0027722d1ca92mr673877ljq.32.1670521165473; Thu, 08 Dec 2022 09:39:25 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1670521165; cv=pass; d=google.com; s=arc-20160816; b=i6QEQkPKLpoZEJvrj6ONArB4YTFTKUEU3dPI1RMjpUQ7SEaVAUHrDKQy0HLcxZx3cE 4tvXsUHXt0a8AJpQxPzXlA2Hs9WxnefiyLprfC86X15m6BlpO5ZMsCXmAC6qRDkhS0xG CA7eC5QG7SmhL1QhlRYoJEGPiuH4STuDabpvbA6fYd8dabKqjgI8qLuEZasrORqzQ1Rd xPdad8YpoRwhIW13VtxaGFV1xcWMCwB6VlC2+6jQMqIg/Fu0HnKejzKODWevyJddZe4X xjGqW0vwQwoBXa4KurUORPKHxudaW93U1poGyXrBX1oqJWk8ENiHqnimLPxBzglFoZfx 6BsQ== 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=WerRTrBrGQ/4DasYWCdUrLfTn2qb/3owo4vIQczx9P8=; b=rh0fXWEQ9weYgczJ+fF3IN3Dlky8amqKuds9jtT0J/ZTrbLyoTH4Sc3eD/IfeUcc0U iQPSM+BG5vGAv5r3gReqXBYh5poroKT37Tk67GVuP5OFDl1VwwEWX1Jxp9Te8IV1Tpmu 2lEajfapgfgjvve83wywAfjjW5yIWYGhZhg8VuOsIn1IGoYpdHII8YUEv9udPlg7r3O9 Hl5N0BGZ9CbLCFryjSEEGMT40uvPIpEPmjnTjhx3faF0PlF8oU/3WW8RG58O/3V/7i1I Cv8EhcH6m6usC7/TfISLApbcSZirPubvLLbaBu2Q6776U6QKlfpTndfCjvZg9TOQHfxX pFdA== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=Nkr3LLMJ; 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.22.57 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 EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2057.outbound.protection.outlook.com. [40.107.22.57]) by gmr-mx.google.com with ESMTPS id r11-20020a2e8e2b000000b00278f552596bsi995090ljk.2.2022.12.08.09.39.25 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Dec 2022 09:39:25 -0800 (PST) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 40.107.22.57 as permitted sender) client-ip=40.107.22.57; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=Nkr3LLMJ; 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.22.57 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=bHmrwPsWG/2lp0xk4UaPNv54ayzMwfNQzAqa2lGBlSwB34cFV24ZU/oeK/MJk8PRbSqg9ntiz8VjCkFd30jbr2bjrC/C+kIcv39XbTK6MrfVOPN6q0ZgvYCA67GkD1xV/cVmnTUcXDg5eYDnDx7sIBJkHGwNXu5NnN8wC0g0vVWpIxI6ZeNrBc3CKaLYCm0GdFZ8EHGm9rn8mSPtYH88SLdI67WZtPJgXxbjiPcapk5BjbYsZQS7aqDObdoC6OMIGaal5O4uJ3c26byyZL+8ZLfIcX2biJ2ar9OtzLD22NxekRwZl2St+VtTILBmUqsptoXMKkLxCCOPCcVIgPuYDQ== 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=WerRTrBrGQ/4DasYWCdUrLfTn2qb/3owo4vIQczx9P8=; b=cSxjs15qbszaLQiZu+XmA6p5r1la5HRhCZAqMpcmxrp6mceH5yQqFGldUAzK79rPw9v2LOLz2hFfGQFDkT5l+X26kr4ICn2V/pqgS3BJSvUGEY+PXif+AYxtOcY1k9sP/SL3qNkzSWsG+5FxOrCBUCeQ/ewHKpPH1s6EgBlU6ouEDrbvISIPVCPjTGYBYMpnAzjxw7SsYwOShL+SccmO+ZJZZ3fAIsOFai7GcWPRKU5YWV/W6yk4Tc5rgsAq37NWt//n3ExpaOvcaRBkkJ4PLqp11H6/k7uT2g5Hzv7s2Q/CxT77Qj/SeAa14kLDAf75iBzKbMvl0lBfdMzrh22adg== 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=WerRTrBrGQ/4DasYWCdUrLfTn2qb/3owo4vIQczx9P8=; b=Nkr3LLMJoGS4maJDpoMy6Ui9tC4sx/WEODW4LDHNOAcYihqEVy4jcCuLTRSRhegvg0hsYC4nQMAptZQefiBWk4KSdmTcR14l8rQldtYmjQwXPXwLbcmtOKFeLiYOTIoaz3zxaA7acvx8MDUm8Pttq+9pogvfJu9STn4K6lw5yzOxI6UH/U2eKtOzG/Pd8QT7V7hLVYqRziNz6rwBHG3jx0C6UfNwFDucM2jG4H00Zo/C9/pIqcPS2ORnQ2vxaJIKZuba0brJszUbr5SEMIxy7UKEHI3Z+oFnPaxKVnrNUQUVXkElgfpytdnek4Wi8GY4pkPrcIxKT5RK+1unYBy1mQ== 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 PAWPR10MB6879.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:33c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.14; Thu, 8 Dec 2022 17:39:24 +0000 Received: from PA4PR10MB5780.EURPRD10.PROD.OUTLOOK.COM ([fe80::bdf0:fdeb:f955:bc79]) by PA4PR10MB5780.EURPRD10.PROD.OUTLOOK.COM ([fe80::bdf0:fdeb:f955:bc79%3]) with mapi id 15.20.5880.014; Thu, 8 Dec 2022 17:39:24 +0000 Date: Thu, 8 Dec 2022 18:39:19 +0100 From: Henning Schild To: "T. Schaffner" Cc: , , Subject: Re: [PATCH] expand-on-first-boot: wait for udev to create symlink Message-ID: <20221208183919.1703fb25@md1za8fc.ad001.siemens.net> In-Reply-To: <20221208165542.2451856-1-tobias.schaffner@siemens.com> References: <20221208165542.2451856-1-tobias.schaffner@siemens.com> 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: FR0P281CA0059.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::7) 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_|PAWPR10MB6879:EE_ X-MS-Office365-Filtering-Correlation-Id: 5986fca1-ed1b-491a-e6a9-08dad9432546 X-LD-Processed: 38ae3bcd-9579-4fd4-adda-b42e1495d55a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: orV3SkWgBhSm2dOQ2rXYWFRUiWCn9MbHrsEluRa/Y08EOZXJlyntWRU/4xnL16wSJ3fspyaYY2EOax4Yk4WL0heiz1ZQtJrV13QK1ErkGIOK1ISF6tM3nss3CBFVVo12lotSN9FxHqEj4//xJ4sCVvdWXWFOZZwP7WXqRGsDF3QuGdDR/Y/HJr7mv2Yxf3YWuuwzB1Wnp+Xt+idGPSKF4nzmWk84Qn3Tvlj70yAICQCM3R/I8U8TdheGv63kLGXkhR7su3ypfvwlaQX+GajRoh/Yc9m3lRm2lqrbh9YO9f84yiDVIeMbdPwGCqNXaVxgp1eFpYceVZ0fpRYkOyYUHBKS8iAAywcCOSWTL9Sc6QXygz7elD3W5YP5rO4kDf1lbM7PgNnbB8GA10wQ0cY9Z6hgSsRB+fhXjnSh54nrHzOlcKcjNRA1Q9yqVjcUWQA8uMOyyeNQJHdRwSQsNU1FPHyEy5vUo3V42ecdazi+ekGvwn4OWmAKXz9xNiwuskBmtFTXrJ7/zBqa4beCkTBuExoC2rwlw4dIuTl1DbqTK4WHCimPyIkdvgYOfoVNhnZiGAtwGVOKFhpaPpSqB+21BdjQcGuMFZgZdIW+wCyWdKe7G3uXdDfAo0TTrbmJubCOeOdep+B1Y8S0Ud8ucrKk+g== 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)(376002)(396003)(366004)(346002)(136003)(39860400002)(451199015)(86362001)(6486002)(478600001)(6506007)(41300700001)(66946007)(107886003)(9686003)(8676002)(6512007)(26005)(6862004)(4326008)(66476007)(5660300002)(316002)(8936002)(54906003)(2906002)(6636002)(66556008)(6666004)(186003)(44832011)(38100700002)(83380400001)(82960400001)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0I6oR3fFadPErbQBe4MwEZ2hzd5BiJxJgGBMUVB4pBLGu8XlE/tLEhu+YeUv?= =?us-ascii?Q?HU2MKNRviJatF5VQ/7sP/1kKcMakE5szOwSxXNmwSxEj6j3AWswEjTMSLmTz?= =?us-ascii?Q?8m9L/PyGkfhB5us6KfA9imTmLuugk5BywKnsUj85PvyDsjpy9VkaZMK7CbpB?= =?us-ascii?Q?Fn58AGFc5SmmxLuhuyY5GRd/IfUq+6qh88YAsbo5I0ogIk3xjBPvs0ibUeT0?= =?us-ascii?Q?gGKuHaJF18OO5vVMPoF9f5pO4l1jd9M6KNHOXXUVnap6nxdXK/KnZIedLn4h?= =?us-ascii?Q?lsqSc1YTkFBeI6gaUJh2LUEkJBfZEqrPQhJ1KCHcM6rIjKnRVebeCgcxgS/5?= =?us-ascii?Q?jD5WIeoDJ+Hd7x2Px/LpWJFWnUbCYGgyMzEDLN6EWj0x8a8cTIRti7KEqcnr?= =?us-ascii?Q?LbLYlc228k3fxqB28nwXlzsVD2kMYz526g3jj2rcXwKHmyGri2cCzegp6kpE?= =?us-ascii?Q?6iytKPzvixEY33XTivvsBZ9VfzfPxQQCaflbQWEAtno3/vAtcDlyomMYl7p3?= =?us-ascii?Q?lU3kcq7YUvemqI874bNgDu85qaE0zSE2lHsEw+svrT4Q9Pn59W6H5EsxOlgD?= =?us-ascii?Q?5utfKgRoGV7cUSHd41lobIjR4cyrKbFrhwZxD1HKjmtcziW3IQZQqwRj/3um?= =?us-ascii?Q?s/7ScD0PWwBC//CgTlQx54tkqHlYMIKJDSDisknrTlRQ5f46oZ0arQGnphrg?= =?us-ascii?Q?/57i6d1XjssAVjpjLpDKEf46jhOvGJBFUB3XzmA4IGo4BL01IewHSEKS6t6Q?= =?us-ascii?Q?LlpejIrmE+VJKtvMUDK95aAALjJIOys0BDM5XqeqGCpKKmYQs9g/u5BJEx23?= =?us-ascii?Q?dAx1qXv9D+os9FkjZlVkJ+LUgDdYtC/VdPoaAtab+3fp3oJ4/xWqqyNXgqFd?= =?us-ascii?Q?CuQbqJaVUO0gQHC3JkWF4nFj6HKi1Pyqm+j0DjQOW8m/fbK8kHDBarrS0jxd?= =?us-ascii?Q?sGrbNnaFSgpcmjIZ/tUi5AQ6B1bBveFZa5RJvHyCQ01auX3Fhq9jJPXCzDSk?= =?us-ascii?Q?zAJplkb29BSpHko5otj3Vd3FRKyzXmcVwRisgN2O9IgPl5Ikn+tmImnFt/TH?= =?us-ascii?Q?4f+pXFagyzV5LG+2ygDi/OtTgr7lcDOUwagcfgnFyNdE4hjyfbMa5LR0Ybs9?= =?us-ascii?Q?5R0V2HpAyf3um7Upv2Y2VRmzDz3aq86F6/V9agkW2pUdSVQtjuPR6cflJc+0?= =?us-ascii?Q?gkdRVdphrdUFqgMsVqYxt067wr0ME7+aNdgSZdccq+hXWsZCQ+t8TWyj2tBE?= =?us-ascii?Q?oTtZU1eMh960iUMUIv3DqdL79WpTMSsQQ6CG5cFlx/Na22IEYaE6Vh730DkA?= =?us-ascii?Q?++g4XVqUPLfCg4phyu5qz8bitYySWUSwB30fGMnO2FQljAlSrPn66sCPNX8+?= =?us-ascii?Q?lkAN3mXxw/XG/hkhQJ6V+KDvHeTcXqTMP2sWoWGHShSr4nTJQsZBbjWiGpL4?= =?us-ascii?Q?TFEWAQ3mloWAkCQD0DvhcPhIByeCF1l2+Vb7CCDYvJ8AxLGPVUUJn+oV5C/F?= =?us-ascii?Q?fLRZr9JaW6CDpP0UecANKXu56cDbYnCYUSNk4bfwjVEJeuHac6PHlnKc1uOv?= =?us-ascii?Q?NlZ8L0p6ivwVRXb0nNhie5qWxfVmieZIH3pgynIqJyAMfqWleska2pksp7WZ?= =?us-ascii?Q?5w=3D=3D?= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5986fca1-ed1b-491a-e6a9-08dad9432546 X-MS-Exchange-CrossTenant-AuthSource: PA4PR10MB5780.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2022 17:39:24.1379 (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: hAGKfbYjzobma2AMqMR124TM7kIPZTlxBNmPQQAJd1JPPhD2WBDxSFya3GlU9MOJ0uYKaEs7F2oQS0SMu63tdqF4XWQhzrNfAb2nTM98pKk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR10MB6879 X-TUID: kBbFzDIPakXE Am Thu, 8 Dec 2022 17:55:42 +0100 schrieb "T. Schaffner" : > From: Tobias Schaffner > > systemd-growfs depends on a symlink to the partition of the filesystem > that should be resized. This symlink is created by udev in > /dev/block/. > > If this symlink is not yet created for example because systemd-udev is > not up yet systemd-growfs will fail. > > We could use Require and After to depend on the systemd-udev service > but this could again create a race condition if udev is up but not > fast enough after the partx -u. > > Resolve the symlinks in /dev/block/ periodically until the symlink > appears before running systemd-growfs. > --- > .../files/expand-last-partition.sh | 16 > +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) > > 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..7ebb3e5 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 > @@ -38,7 +38,8 @@ if [ "$DISK_SIZE" -lt "$MINIMAL_SIZE" ]; then exit > 0 fi -LAST_PART="$(sfdisk -d "${BOOT_DEV}" 2>/dev/null | tail -1 | > cut -d ' ' -f 1)" +LAST_PART_NAME="$(lsblk -l -o NAME "${BOOT_DEV}" | > tail -1)" +LAST_PART="/dev/${LAST_PART_NAME}" > > # Transform the partition table as follows: > # > @@ -79,6 +80,19 @@ if [ ! -d "${MOUNT_POINT}" ]; then > exit 1 > fi > > +START_TIME="$(date +%s)" > + > +# Wait for udev to create the symlink to the partition in Newer systemd versions will not need that anymore. Maybe write down which version that would be and starting from which debian distro we can drop that. Who knows when that udev stuff changes and the symlinks will never appear ... We should only wait for them in systemd versions that use them. If we already have a version out there ... like bookworm? We can already implement it without the wait. > /dev/block/ as +# systemd-growfs depends on it > +while ! readlink /dev/block/* | grep -q "${LAST_PART_NAME}"; do I would make that much stricter to not be tricked by partial matches sda4 vs sda42 readlink -f /dev/block/* | grep -e -q "^${LAST_PART}$" > + sleep 0.1 I wonder if there is anything we could do here. Maybe "udevadm trigger" and depend on udev after all. Because the 5 is a nasty guess ... > + CURRENT_TIME="$(date +%s)" > + if [ $(( CURRENT_TIME - START_TIME )) -gt "5" ]; then we can simply i++ > 50, no need to call date so maybe err=1 for i in $(seq 0 50); do if readlink -f /dev/block/* | grep -e -q "^${LAST_PART}$"; then err=0 break fi sleep 0.1 done if $err ... > + echo "Could not find symlink to last part in /dev/block/." > + exit 1 > + fi > +done > + > mount "${LAST_PART}" "${MOUNT_POINT}" > /lib/systemd/systemd-growfs "${MOUNT_POINT}" we could also loop over calling this until it goes "0" or we reach a retry counter, that way we magically handle new systemd versions that do not need symlinks and do not implement anything with symlinks. Henning > umount "${MOUNT_POINT}"