[FIX] Fix erasing when overwriting disk size
This commit is contained in:
parent
0ffe7d07df
commit
5f55c6a156
@ -1,5 +1,6 @@
|
|||||||
import threading
|
import threading
|
||||||
import os
|
import os
|
||||||
|
import traceback
|
||||||
|
|
||||||
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
|
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
|
||||||
from cryptography.hazmat.backends import default_backend
|
from cryptography.hazmat.backends import default_backend
|
||||||
@ -88,20 +89,26 @@ class Drive():
|
|||||||
prev_percent = 0
|
prev_percent = 0
|
||||||
len_write = 0
|
len_write = 0
|
||||||
progressbar.set(prev_percent)
|
progressbar.set(prev_percent)
|
||||||
|
progress_label.configure(text=f"{int(prev_percent*100)} %, {i+1}")
|
||||||
while len_write < self.capacity:
|
while len_write < self.capacity:
|
||||||
if erasing_methods[method]["data"][i] == "random":
|
if erasing_methods[method]["data"][i] == "random":
|
||||||
data = get_random_bytes(write_size)
|
data = get_random_bytes(write_size)
|
||||||
else:
|
else:
|
||||||
data = erasing_methods[method]["data"][i] * write_size
|
data = erasing_methods[method]["data"][i] * write_size
|
||||||
|
if len(data) > self.capacity - len_write:
|
||||||
|
print(self.capacity - len_write)
|
||||||
|
data = data[:self.capacity - len_write]
|
||||||
drive.write(data)
|
drive.write(data)
|
||||||
len_write += len(data)
|
len_write += len(data)
|
||||||
cur_percent = len_write/self.capacity
|
cur_percent = len_write/self.capacity
|
||||||
if cur_percent - prev_percent > 0.01:
|
if cur_percent - prev_percent > 0.01:
|
||||||
progressbar.set(cur_percent)
|
progressbar.set(cur_percent)
|
||||||
progress_label.configure(text=f"{int(cur_percent*100)} %")
|
progress_label.configure(text=f"{int(cur_percent*100)} %, {i+1}")
|
||||||
prev_percent = cur_percent
|
prev_percent = cur_percent
|
||||||
|
del data
|
||||||
result["result"] = True
|
result["result"] = True
|
||||||
result["err"] = ""
|
result["err"] = ""
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
print(traceback.format_exc())
|
||||||
result["result"] = False
|
result["result"] = False
|
||||||
result["err"] = e
|
result["err"] = e
|
||||||
Loading…
x
Reference in New Issue
Block a user