diff --git a/pkg/lib/lock.go b/pkg/lib/lock.go index d313bc5..3c99f39 100644 --- a/pkg/lib/lock.go +++ b/pkg/lib/lock.go @@ -58,8 +58,10 @@ 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") + // Make sure ghw will see all partitions correctly. + // Some versions of udevadm don't support --settle (e.g. alpine) + // and older versions don't have --type=all. Try the simpler version then. + out, err := SH("udevadm trigger --settle -v --type=all || udevadm trigger -v") if err != nil { return "", fmt.Errorf("udevadm trigger failed: %w, out: %s", err, out) } diff --git a/pkg/lib/unlock.go b/pkg/lib/unlock.go index 00fae6c..47609a8 100644 --- a/pkg/lib/unlock.go +++ b/pkg/lib/unlock.go @@ -38,8 +38,10 @@ func UnlockAllWithLogger(tpm bool, logger zerolog.Logger) error { return nil } + // Some versions of udevadm don't support --settle (e.g. alpine) + // and older versions don't have --type=all. Try the simpler version then. logger.Info().Msgf("triggering udev to populate disk info") - _, err = utils.SH("udevadm trigger -v --type=all") + _, err = utils.SH("udevadm trigger --settle -v --type=all || udevadm trigger -v") if err != nil { return err }