ここでは、(最終的には) 複数の仕様を使用してドライブの消去をサポートする機能を作成しようとしています。私が直面している問題は、ZeroBlock をディスクに書き込もうとすると、書き込まれますが、コードは失敗したように動作することです。私がそれが機能したと言う理由は、テストシステムのドライブからブートセクターをクリアしたためです
def WipeDisk(Drive, WipeSpec, Passes):
DiskSize = int(System.HDD[Drive].Size)
DiskSect = int(System.HDD[Drive].Sectors())
SectSize = int(System.HDD[Drive].SectSz)
System.HDD[Drive].Start = time.time()
if (WipeSpec == "Zero"):
with open("/dev/zero", "rb") as Zero:
ZeroBlock = Zero.read(SectSize)
Zero.close()
Pass = 0
with open(System.HDD[Drive].Device, "wb") as Disk:
while (Pass < Passes):
Current = 1
while (Current < DiskSect):
if (Disk.write(ZeroBlock)):
if (Current %((DiskSect*Passes)/100) == 0):
(variable updates)
if (Current == DiskSect):
Pass = (Pass+1)
else:
System.HDD[Drive].Error = 1
Pass = Passes
break
Current = (Current+1)
if (Pass == Passes):
System.HDD[Drive].Current = Current
System.HDD[Drive].Percent = "100"
System.HDD[Drive].Complete = 1
Disk.close()
else:
print("Unknown Wipe Specification: "+WipeSpec)