...

self.log("Extracting ISO to USB (this may take a while)...") # Mount ISO mount_result = subprocess.run(f'powershell Mount-DiskImage -ImagePath "{iso_path}" -PassThru', capture_output=True, text=True) if mount_result.returncode != 0: self.log("Failed to mount ISO. Try using Rufus or Ventoy.") return # Get mounted drive letter mount_letter = None for line in mount_result.stdout.splitlines(): if ":" in line and "\\" in line: # crude extraction parts = line.split() for p in parts: if len(p) == 2 and p[1] == ':': mount_letter = p break if not mount_letter: self.log("Could not find mounted ISO drive.") return

def log(self, msg): self.output.insert(tk.END, msg + "\n") self.output.see(tk.END) self.root.update()

# Use diskpart + bootsect (common method) with tempfile.NamedTemporaryFile(mode='w', suffix='.txt', delete=False) as dp_script: dp_script.write(f"select volume {usb_drive[0]}\nclean\ncreate partition primary\nactive\nformat fs=ntfs quick\nassign letter={usb_drive[0]}\nexit\n") dp_script_path = dp_script.name