martijnvanbrummelen / nwipe

nwipe secure disk eraser
GNU General Public License v2.0
789 stars 86 forks source link

Allow Last Pass Verify to work without requiring final blanking (zero) pass. #326

Closed PartialVolume closed 3 years ago

PartialVolume commented 3 years ago
  1. Allows zero fill to be verified when blanking off. Prior to this if you wanted to verify a zero pass, blanking had to be on. This meant a zero pass, then a blanking pass then a verify, effectively two zero passes and a verify. This is now fixed so you can now do a zero pass with verification without a blanking pass. This knocks a third off the wipe time of a zero fill with verification !. This also means all other methods can have either all their passes or just the last pass verified, whether static or random, without blanking being enabled. Optionally a blanking pass with or without verification can be selected except for the Ops2 method which requires a mandatory random pass.

  2. OPS2 method requires the last pass to be random, the GUI now disables the use of the blanking option for this method and displays a warning message that a final blanking pass is not allowed for OPS2. It never did a final blanking pass anyway, even if it was selected, but this makes it clearer in the GUI that a blanking pass is not an option.

  3. The calculate_round_size() function was improved by reducing some duplicated code and bringing the full calculation into this function. Corrected OPS2 and HMG IS5 Enhanced 'additional calculations' due to verification being allowed without a final blanking pass.

  4. On completion of each pass or verification the total number of bytes written or read for each pass or verification is logged.

Verified correct round size and thus correct percentage completion values for all 84 possible combinations of wipe. zerofill OPS-II DoD-S DoD-F GutM PRNG V.Blank IS5
Verify Last Pass, Blanking On, 1R 100% N/A 100% 100% 100% 100% N/A 100%
Verify Last Pass, Blanking On, 2R 100% N/A 100% 100% 100% 100% N/A 100%
Verify Last Pass, Blanking Off, 1R 100% 100% 100% 100% 100% 100% 100% 100%
Verify Last Pass, Blanking Off, 2R 100% 100% 100% 100% 100% 100% 100% 100%
Verify Off, Blanking On, 1R 100% N/A 100% 100% 100% 100% N/A 100%
Verify Off, Blanking On, 2R 100% N/A 100% 100% 100% 100% N/A 100%
Verify Off, Blanking Off, 1R 100% 100% 100% 100% 100% 100% 100% 100%
Verify Off, Blanking Off, 2R 100% 100% 100% 100% 100% 100% 100% 100%
Verify All, Blanking On, 1R 100% N/A 100% 100% 100% 100% N/A 100%
Verify All, Blanking On, 2R 100% N/A 100% 100% 100% 100% N/A 100%
Verify All, Blanking Off, 1R 100% 100% 100% 100% 100% 100% 100% 100%
Verify All, Blanking Off, 2R 100% 100% 100% 100% 100% 100% 100% 100%