summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/sbuild-qemu-boot2
-rwxr-xr-xbin/sbuild-qemu-update16
2 files changed, 16 insertions, 2 deletions
diff --git a/bin/sbuild-qemu-boot b/bin/sbuild-qemu-boot
index 1fd93ae..7a411e0 100755
--- a/bin/sbuild-qemu-boot
+++ b/bin/sbuild-qemu-boot
@@ -274,7 +274,7 @@ def main():
'-fw_cfg', f'name=opt/sbuild-qemu/tty-cols,string={termsize.columns}',
])
- args.append(image)
+ args.extend(['-drive', f'file={image},discard=unmap,if=virtio'])
print(' '.join(str(a) for a in args))
if parsed_args.noexec:
diff --git a/bin/sbuild-qemu-update b/bin/sbuild-qemu-update
index 6e08274..2de7ab5 100755
--- a/bin/sbuild-qemu-update
+++ b/bin/sbuild-qemu-update
@@ -180,6 +180,12 @@ def update_interaction(child, quiet):
child.expect('root@host:~# ')
child.sendline('sync')
child.expect('root@host:~# ')
+ child.sendline('mount -o remount,discard /')
+ child.expect('root@host:~# ')
+ child.sendline('fstrim /')
+ child.expect('root@host:~# ')
+ child.sendline('sync')
+ child.expect('root@host:~# ')
# Don't recall what issue this solves, but it solves it
child.sendline('sleep 1')
child.expect('root@host:~# ')
@@ -257,7 +263,7 @@ def main():
'-m', '1024',
'-smp', '1',
'-nographic',
- image,
+ '-drive', f'file={image},discard=unmap,if=virtio',
])
if parsed_args.extra_args:
args.extend(parsed_args.extra_args)
@@ -278,6 +284,14 @@ def main():
except pexpect.TIMEOUT:
print("Update timed out. Consider using --timeout.", file=sys.stderr)
child.terminate()
+ child.wait()
+
+ try:
+ subprocess.check_call(["qemu-img", "convert", "-O", "qcow2", image, f"{image}.tmp"])
+ except subprocess.CalledProcessError as err:
+ print(f"Error converting image: {err}", file=sys.stderr)
+ return
+ os.replace(f"{image}.tmp", image)
if __name__ == '__main__':