Winbootmate Full //free\\ [ PC QUICK ]

self.log(f"\n--- Creating bootable USB on {usb_drive} from {iso_path} ---") self.log("This will FORMAT the USB drive. Continue?") if not messagebox.askyesno("Warning", f"All data on {usb_drive} will be erased. Continue?"): return

# Title title = tk.Label(root, text="WinBootMate", font=("Segoe UI", 16, "bold")) title.pack(pady=10)

class WinBootMate: def (self, root): self.root = root self.root.title("WinBootMate - Boot Assistant") self.root.geometry("700x550") self.root.resizable(True, True) winbootmate full

self.log("Preparing USB with diskpart...") subprocess.run(f"diskpart /s {dp_script_path}", shell=True, capture_output=True) os.unlink(dp_script_path)

def backup_bcd(self): backup_path = filedialog.asksaveasfilename(defaultextension=".bcd", filetypes=[("BCD files", "*.bcd")]) if backup_path: self.log(f"\n--- Backing up BCD to {backup_path} ---") # BCD store location (UEFI typically) bcd_path = r"C:\Boot\BCD" if not os.path.exists(bcd_path): bcd_path = r"C:\EFI\Microsoft\Boot\BCD" try: shutil.copy2(bcd_path, backup_path) self.log(f"✓ Backup saved to {backup_path}") except Exception as e: self.log(f"✗ Backup failed: {e}") View Boot Entries", command=self

tk.Button(btn_frame, text="1. View Boot Entries", command=self.view_boot_entries, width=20).grid(row=0, column=0, padx=5, pady=5) tk.Button(btn_frame, text="2. Backup BCD", command=self.backup_bcd, width=20).grid(row=0, column=1, padx=5, pady=5) tk.Button(btn_frame, text="3. Restore BCD", command=self.restore_bcd, width=20).grid(row=0, column=2, padx=5, pady=5)

tk.Button(btn_frame, text="4. Create Bootable USB", command=self.create_bootable_usb, width=20).grid(row=1, column=0, padx=5, pady=5) tk.Button(btn_frame, text="5. Fix Boot Errors", command=self.fix_boot_errors, width=20).grid(row=1, column=1, padx=5, pady=5) tk.Button(btn_frame, text="6. Rebuild BCD", command=self.rebuild_bcd, width=20).grid(row=1, column=2, padx=5, pady=5) Create Bootable USB", command=self

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