mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-08 05:26:58 +02:00
Run partprobe after Ignition partition changes
This adds https://github.com/coreos/ignition/pull/1717 as downstream patch to fix https://github.com/flatcar/Flatcar/issues/1194
This commit is contained in:
parent
0866b8b3a5
commit
2acaf32699
1
changelog/bugfixes/2023-09-29-ignition-partition.md
Normal file
1
changelog/bugfixes/2023-09-29-ignition-partition.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
- Triggered re-reading of partition table to fix adding partitions to the boot disk [scripts#1202](https://github.com/flatcar/scripts/pull/1202)
|
@ -0,0 +1,67 @@
|
|||||||
|
From e5c4e6bd9f3bad3b27e338e4da2f3b0b53ab1599 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kai Lueke <kailuke@microsoft.com>
|
||||||
|
Date: Fri, 29 Sep 2023 18:06:09 +0200
|
||||||
|
Subject: [PATCH] sgdisk: Run partprobe after partition changes
|
||||||
|
|
||||||
|
The sgdisk tool does not update the kernel partition table in contrast
|
||||||
|
to other similar tools. Often udev can detect the changes but not always
|
||||||
|
as experienced when adding a new partition on Flatcar's boot disk.
|
||||||
|
Instead of implicitly relying on some other component to re-read the
|
||||||
|
kernel partition table, trigger the re-read with partprobe.
|
||||||
|
---
|
||||||
|
dracut/30ignition/module-setup.sh | 1 +
|
||||||
|
internal/distro/distro.go | 2 ++
|
||||||
|
internal/sgdisk/sgdisk.go | 5 +++++
|
||||||
|
3 files changed, 8 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/dracut/30ignition/module-setup.sh b/dracut/30ignition/module-setup.sh
|
||||||
|
index ad7e80fd..3cdcb631 100755
|
||||||
|
--- a/dracut/30ignition/module-setup.sh
|
||||||
|
+++ b/dracut/30ignition/module-setup.sh
|
||||||
|
@@ -33,6 +33,7 @@ install() {
|
||||||
|
mkfs.xfs \
|
||||||
|
mkswap \
|
||||||
|
sgdisk \
|
||||||
|
+ partprobe \
|
||||||
|
useradd \
|
||||||
|
userdel \
|
||||||
|
usermod \
|
||||||
|
diff --git a/internal/distro/distro.go b/internal/distro/distro.go
|
||||||
|
index 61ca87ae..c1c13b62 100644
|
||||||
|
--- a/internal/distro/distro.go
|
||||||
|
+++ b/internal/distro/distro.go
|
||||||
|
@@ -37,6 +37,7 @@ var (
|
||||||
|
mdadmCmd = "mdadm"
|
||||||
|
mountCmd = "mount"
|
||||||
|
sgdiskCmd = "sgdisk"
|
||||||
|
+ partprobeCmd = "partprobe"
|
||||||
|
modprobeCmd = "modprobe"
|
||||||
|
udevadmCmd = "udevadm"
|
||||||
|
usermodCmd = "usermod"
|
||||||
|
@@ -90,6 +91,7 @@ func GroupdelCmd() string { return groupdelCmd }
|
||||||
|
func MdadmCmd() string { return mdadmCmd }
|
||||||
|
func MountCmd() string { return mountCmd }
|
||||||
|
func SgdiskCmd() string { return sgdiskCmd }
|
||||||
|
+func PartprobeCmd() string { return partprobeCmd }
|
||||||
|
func ModprobeCmd() string { return modprobeCmd }
|
||||||
|
func UdevadmCmd() string { return udevadmCmd }
|
||||||
|
func UsermodCmd() string { return usermodCmd }
|
||||||
|
diff --git a/internal/sgdisk/sgdisk.go b/internal/sgdisk/sgdisk.go
|
||||||
|
index 29915809..e70a3881 100644
|
||||||
|
--- a/internal/sgdisk/sgdisk.go
|
||||||
|
+++ b/internal/sgdisk/sgdisk.go
|
||||||
|
@@ -121,6 +121,11 @@ func (op *Operation) Commit() error {
|
||||||
|
if _, err := op.logger.LogCmd(cmd, "deleting %d partitions and creating %d partitions on %q", len(op.deletions), len(op.parts), op.dev); err != nil {
|
||||||
|
return fmt.Errorf("create partitions failed: %v", err)
|
||||||
|
}
|
||||||
|
+ // In contrast to similar tools, sgdisk does not trigger the update of the kernel partition table
|
||||||
|
+ cmd = exec.Command(distro.PartprobeCmd(), op.dev)
|
||||||
|
+ if _, err := op.logger.LogCmd(cmd, "re-reading of %d deleted partitions and %d created partitions on %q", len(op.deletions), len(op.parts), op.dev); err != nil {
|
||||||
|
+ return fmt.Errorf("re-reading partitions failed: %v", err)
|
||||||
|
+ }
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -63,6 +63,7 @@ PATCHES=(
|
|||||||
"${FILESDIR}/0019-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch"
|
"${FILESDIR}/0019-docs-Add-re-added-platforms-to-docs-to-pass-tests.patch"
|
||||||
"${FILESDIR}/0020-usr-share-oem-oem.patch"
|
"${FILESDIR}/0020-usr-share-oem-oem.patch"
|
||||||
"${FILESDIR}/0021-internal-exec-stages-mount-Mount-oem.patch"
|
"${FILESDIR}/0021-internal-exec-stages-mount-Mount-oem.patch"
|
||||||
|
"${FILESDIR}/0022-sgdisk-Run-partprobe-after-partition-changes.patch"
|
||||||
)
|
)
|
||||||
|
|
||||||
src_compile() {
|
src_compile() {
|
||||||
|
@ -10,7 +10,7 @@ CROS_WORKON_REPO="https://github.com"
|
|||||||
if [[ "${PV}" == 9999 ]]; then
|
if [[ "${PV}" == 9999 ]]; then
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
||||||
else
|
else
|
||||||
CROS_WORKON_COMMIT="2c0968a0c26a3f39721e76fb99368ee0fabffc7c" # flatcar-master
|
CROS_WORKON_COMMIT="9eaeae2fbbdef1d6364a95192bf8e5b35dca8ed1" # flatcar-master
|
||||||
KEYWORDS="amd64 arm arm64 x86"
|
KEYWORDS="amd64 arm arm64 x86"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user