Код создан специально для Linux. Код выглядит следующим образом:
Код: Выделить всё
def _wipe_thread(self):
try:
mount_point = '/mnt/myluks'
# Attempt to unmount the device
subprocess.run(['sudo', 'umount', self.selected_drive], check=True)
# Perform wiping operations
subprocess.run(['echo', 'yes', '|', 'sudo', 'mkfs.ext4', '-F', self.selected_drive], check=True)
subprocess.run(
['sudo', 'cryptsetup', 'luksFormat', '--type', 'luks2', '--verify-passphrase', self.selected_drive],
check=True)
subprocess.run(['sudo', 'cryptsetup', 'luksClose', '--batch-mode', 'ENCRYPTED'], check=True``)
subprocess.run(['echo', 'yes', '|', 'sudo', 'mkfs.ext4', '-F', self.selected_drive], check=True)
subprocess.run(['sudo', 'mount', self.selected_drive, mount_point], check=True)
# Show completion message
messagebox.showinfo("Wipe Complete",
f"Drive {self.selected_drive} has been securely wiped and reformatted in ext4.")
# Print message to terminal
print(f"Wipe process completed for drive: {self.selected_drive}")
except subprocess.CalledProcessError as e:
messagebox.showerror("Error", f"Subprocess error occurred: {e}")
except Exception as e:
messagebox.showerror("Error", f"Unexpected error occurred: {str(e)}")
Ожидаемый результат заключался в том, что он будет просто форматировать-шифровать-переформатировать без дальнейшего взаимодействия с пользователем
Произошло следующее: мне все еще требовалось взаимодействие человека с консолью, и возникла ошибка, сообщающая, что LuksClose не удалось.
Подробнее здесь: https://stackoverflow.com/questions/787 ... t-on-linux