From 0fb16ac8b0eae0bc1b0153bb3df02b9be4c48f85 Mon Sep 17 00:00:00 2001 From: Guillaume Rose Date: Sat, 8 Jun 2019 22:57:37 +0200 Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20resize=20dos=20partition=20if?= =?UTF-8?q?=20no=20free=20space=20is=20available?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Guillaume Rose --- pkg/extend/extend.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkg/extend/extend.go b/pkg/extend/extend.go index 7bf88baad..3a88d1445 100644 --- a/pkg/extend/extend.go +++ b/pkg/extend/extend.go @@ -11,6 +11,7 @@ import ( "path/filepath" "regexp" "sort" + "strconv" "strings" "syscall" "time" @@ -87,6 +88,20 @@ func extend(d, fsType string) error { log.Printf("No free space on device to extend partition") return nil } + if f.PartitionTable.Label == "dos" { + out, err := exec.Command("blockdev", "--getsz", d).Output() + if err != nil { + return fmt.Errorf("Unable to get total size of %s: %v", d, err) + } + totalSize, err := strconv.Atoi(strings.TrimSpace(string(out))) + if err != nil { + return fmt.Errorf("Unable to convert total size from string to int: %v", err) + } + if partition.Start+partition.Size == totalSize { + log.Printf("No free space on device to extend partition") + return nil + } + } switch fsType { case "ext4":