From 889f540f80e96f196d610bb469384d4d2144ca61 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 8 Jan 2022 14:25:12 +0200 Subject: 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 --- v-i | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'v-i') 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() -- cgit v1.2.1