From c936f749138b9c8be454b9842ae9da9e4db1260e Mon Sep 17 00:00:00 2001 From: Dimitris Karakasilis Date: Thu, 23 May 2024 15:11:00 +0300 Subject: [PATCH] Trigger udev events also on lock Signed-off-by: Dimitris Karakasilis --- pkg/lib/lock.go | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/pkg/lib/lock.go b/pkg/lib/lock.go index c96ff36..6bcf578 100644 --- a/pkg/lib/lock.go +++ b/pkg/lib/lock.go @@ -2,15 +2,16 @@ package lib import ( "fmt" - "github.com/gofrs/uuid" - "github.com/jaypipes/ghw" - "github.com/jaypipes/ghw/pkg/block" - configpkg "github.com/kairos-io/kcrypt/pkg/config" "math/rand" "os" "os/exec" "strings" "time" + + "github.com/gofrs/uuid" + "github.com/jaypipes/ghw" + "github.com/jaypipes/ghw/pkg/block" + configpkg "github.com/kairos-io/kcrypt/pkg/config" ) func CreateLuks(dev, password, version string, cryptsetupArgs ...string) error { @@ -57,6 +58,13 @@ func Luksify(label, version string, tpm bool) (string, error) { return "", fmt.Errorf("version must be luks1 or luks2") } + // Make sure ghw will see all partitions correctly + out, err := SH("udevadm trigger --settle -v --type=all") + if err != nil { + return "", fmt.Errorf("udevadm trigger failed: %w, out: %s", err, out) + } + SH("sync") //nolint:errcheck + part, b, err := FindPartition(label) if err != nil { return "", err @@ -109,7 +117,7 @@ func Luksify(label, version string, tpm bool) (string, error) { } cmd := fmt.Sprintf("mkfs.ext4 -L %s %s", label, devMapper) - out, err := SH(cmd) + out, err = SH(cmd) if err != nil { return "", fmt.Errorf("mkfs err: %w, out: %s", err, out) }