summaryrefslogtreecommitdiff
path: root/v-i
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2022-01-08 14:25:12 +0200
committerLars Wirzenius <liw@liw.fi>2022-01-08 14:25:12 +0200
commit889f540f80e96f196d610bb469384d4d2144ca61 (patch)
treeb28f0becf2018c4a9ed7441cd8a45d072c586608 /v-i
parentfd092fc2d40640dd53ae66d931f95ad265f4dab6 (diff)
downloadv-i-889f540f80e96f196d610bb469384d4d2144ca61.tar.gz
fix: discard the entire target disk to remove all data
This works for me, as all my systems boot off SSDs. Also add some logging. Sponsored-by: author
Diffstat (limited to 'v-i')
-rwxr-xr-xv-i14
1 files changed, 11 insertions, 3 deletions
diff --git a/v-i b/v-i
index ce26933..03a90c7 100755
--- a/v-i
+++ b/v-i
@@ -82,7 +82,7 @@ def is_luks(path):
return p.returncode == 0
-def clean_up_disks():
+def clean_up_disks(device):
log("clean up disks from old installs")
mounts = mount_points()
@@ -90,7 +90,12 @@ def clean_up_disks():
lvs = logical_volumes()
vgs = volume_groups()
+ log(f"PVs: {pvs}")
+ log(f"VGs: {vgs}")
+ log(f"LVs: {lvs}")
+
for lv in lvs:
+ log(f"LV: {lv}")
for m in find_mount_points(mounts, lv["path"]):
log(f"unmount {m['mount']}")
run(["umount", m["mount"]], capture_output=True)
@@ -110,6 +115,9 @@ def clean_up_disks():
log(f"open LUKS volume {mapping} (just in case it is one)")
run(["cryptsetup", "close", mapping], check=False, capture_output=True)
+ log(f"blkdiscard {device}")
+ run(["blkdiscard", "--force", device], check=True, capture_output=True)
+
def vmdb_spec(cryptsetup_password, playbook, extra_vars):
device = "{{ image }}"
@@ -277,7 +285,7 @@ def main():
p.add_argument("--verbose", action="store_true")
p.add_argument("--log", default="install.log")
p.add_argument("--cache", default="cache.tar.gz")
- p.add_argument("--playbook")
+ p.add_argument("--playbook", default="std.yml")
p.add_argument("--vars")
p.add_argument("--luks")
p.add_argument("device")
@@ -292,7 +300,7 @@ def main():
with open(args.vars) as f:
extra_vars = yaml.safe_load(f)
- clean_up_disks()
+ clean_up_disks(args.device)
spec = vmdb_spec(args.luks, args.playbook, extra_vars)
tmp = tempfile.mkdtemp()