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) }