mirror of
https://github.com/kairos-io/kcrypt.git
synced 2025-05-08 16:28:04 +00:00
Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
70dfc0c14b | ||
|
2f3a99f421 | ||
|
4495239b5f | ||
|
f6ed18cd18 | ||
|
c936f74913 | ||
|
7de640988f |
@ -2,15 +2,17 @@ package lib
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"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"
|
"math/rand"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"strings"
|
"strings"
|
||||||
|
"syscall"
|
||||||
"time"
|
"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 {
|
func CreateLuks(dev, password, version string, cryptsetupArgs ...string) error {
|
||||||
@ -57,6 +59,14 @@ func Luksify(label, version string, tpm bool) (string, error) {
|
|||||||
return "", fmt.Errorf("version must be luks1 or luks2")
|
return "", fmt.Errorf("version must be luks1 or luks2")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Make sure ghw will see all partitions correctly.
|
||||||
|
// older versions don't have --type=all. Try the simpler version then.
|
||||||
|
out, err := SH("udevadm trigger --type=all || udevadm trigger")
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("udevadm trigger failed: %w, out: %s", err, out)
|
||||||
|
}
|
||||||
|
syscall.Sync()
|
||||||
|
|
||||||
part, b, err := FindPartition(label)
|
part, b, err := FindPartition(label)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
@ -109,7 +119,7 @@ func Luksify(label, version string, tpm bool) (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cmd := fmt.Sprintf("mkfs.ext4 -L %s %s", label, devMapper)
|
cmd := fmt.Sprintf("mkfs.ext4 -L %s %s", label, devMapper)
|
||||||
out, err := SH(cmd)
|
out, err = SH(cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", fmt.Errorf("mkfs err: %w, out: %s", err, out)
|
return "", fmt.Errorf("mkfs err: %w, out: %s", err, out)
|
||||||
}
|
}
|
||||||
|
@ -38,6 +38,14 @@ func UnlockAllWithLogger(tpm bool, logger zerolog.Logger) error {
|
|||||||
return nil
|
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 --type=all || udevadm trigger")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
for _, disk := range blk.Disks {
|
for _, disk := range blk.Disks {
|
||||||
for _, p := range disk.Partitions {
|
for _, p := range disk.Partitions {
|
||||||
if p.Type == "crypto_LUKS" {
|
if p.Type == "crypto_LUKS" {
|
||||||
|
Loading…
Reference in New Issue
Block a user