Commit Graph

580 Commits

Author SHA1 Message Date
Dimitri Papadopoulos
009ccf294b Add a .codespellrc file to run codespell 2021-11-02 12:10:22 +01:00
PartialVolume
17609ecdcd Merge pull request #352 from DimitriPapadopoulos/spaces
Remove trailing spaces or empty lines
2021-11-02 09:34:37 +00:00
PartialVolume
9f58de6006 Merge pull request #351 from DimitriPapadopoulos/codespell
Typos found by codespell
2021-11-02 09:30:23 +00:00
Dimitri Papadopoulos
c545aa8447 Remove trailing spaces or empty lines 2021-11-02 08:21:34 +01:00
Dimitri Papadopoulos
b2c22d58cb Typos found by codespell 2021-11-02 08:13:48 +01:00
PartialVolume
2459b0a397 Merge pull request #350 from PartialVolume/Add_SAS_to_bus_type_for_GUI
Add SAS to GUI.
2021-11-01 23:02:34 +00:00
PartialVolume
3c4e51a1ff Add SAS to GUI.
For some controllers/drivers the readlink method of
obtaining the bus type for GUI display does not work.

If we haven't already resolved the bus type, we then
also check smartctl for the transport protocol
for SAS.
2021-11-01 22:54:55 +00:00
PartialVolume
0ee4099c64 Merge pull request #348 from PartialVolume/Fix_spaces_overwriting_first_two_chars_of_DOD
Fix slight screen corruption on 80 column display
2021-10-31 21:49:19 +00:00
PartialVolume
089c188b06 Fix slight screen corruption on 80 column display
When highlighting the verify ones option the first two
digits of DoD 5220 .20-M disappear. This patch fixes that
issue.
2021-10-31 21:30:20 +00:00
PartialVolume
154490e56f Merge pull request #347 from PartialVolume/update_ready_for_0.32_release
Update files for 0.32 release
v0.32
2021-10-28 23:40:29 +01:00
PartialVolume
753e758b0a Update files for 0.32 release
Confirmed the following release files were/are updated.
configure.ac
CHANGELOG.md
nwipe.1
version.c
2021-10-28 23:34:46 +01:00
PartialVolume
7d58587eb0 Merge pull request #346 from PartialVolume/update_readme_with_new_ones_wipe_and_verification
Update README.md with new wipe methods
2021-10-28 22:18:14 +01:00
PartialVolume
996c6cbf02 Update README.md with new wipe methods
Updated with Ones wipe & Ones verification.
2021-10-28 22:16:37 +01:00
PartialVolume
7eba0aeb1b Merge pull request #345 from PartialVolume/add_verify_ones
Add ones (0xFF) verification method.
2021-10-28 21:55:50 +01:00
PartialVolume
a379329fca Add ones (0xFF) verification method. 2021-10-28 21:50:19 +01:00
PartialVolume
9196e7748b Merge pull request #344 from PartialVolume/update_help_and_man_pages_for_zeros_ones
Update help, man and options for the ones method
2021-10-28 10:46:56 +01:00
PartialVolume
f7730b9fea Update ones method, help, man and options 2021-10-28 10:44:09 +01:00
PartialVolume
bcb34f7a83 Merge pull request #343 from PartialVolume/Adjust_info_for_max_80_columns
Adjust method info for 80+ column display
2021-10-28 00:40:27 +01:00
PartialVolume
a8dbbd46ec Adjust method info for 80+ column display 2021-10-28 00:36:53 +01:00
PartialVolume
7a3f2f573f Merge pull request #342 from PartialVolume/add_wipe_with_ones_method
Add ones 0xFF method.
2021-10-27 23:42:15 +01:00
PartialVolume
8336653926 Add ones 0xFF method. 2021-10-27 23:40:30 +01:00
PartialVolume
e629d9b2d1 Merge pull request #341 from PartialVolume/Remove_syslinux.cfg_lines
Remove the old syslinux configuration hints.

Help on nwipe options is available from the command
line nwipe --help or man help.
2021-10-27 22:30:58 +01:00
PartialVolume
70c5383d97 Remove the old syslinux configuration hints.
Help on nwipe options is available from the command
line nwipe --help or man help.
2021-10-27 22:22:15 +01:00
PartialVolume
708c4e02c8 Merge pull request #340 from PartialVolume/Move_method_info
Move the method description
2021-10-27 21:12:16 +01:00
PartialVolume
8fcb314ed4 Move the method description
Move the method description to the right hand side
of the list of methods. This allows us to extend the
list of methods so that the info doesn't fall of the
terminal on a 80x24 system that is using the frame
buffer such as shredos.

Also updated the information, making it more
description in terms of describing the passes used
for each method.
2021-10-27 21:07:32 +01:00
PartialVolume
6497b43518 Merge pull request #339 from PartialVolume/add_fdata_sync_errors_to_summary_table
Add fdatasync errors to error summary table
2021-10-27 10:17:15 +01:00
PartialVolume
e6e6ed1e30 Add fdatasync errors to error summary table 2021-10-27 09:55:33 +01:00
PartialVolume
c821f3176b Merge pull request #337 from PartialVolume/change_color_theme
Toggle between dark/blank/default screens
2021-10-26 02:09:18 +01:00
PartialVolume
9db8ad854e Toggle between dark/blank/default screens
Using the 'b' key you can now toggle between
dark/blank/default screens during a wipe.

Added the dark option to prevent TFT/LCD image
persistence.

See:
https://en.wikipedia.org/wiki/Image_persistence
2021-10-26 02:03:58 +01:00
PartialVolume
6ce785c2f2 Update and rename ci_ubuntu_16.04.yml to ci_ubuntu_18.04.yml 2021-10-26 01:46:59 +01:00
PartialVolume
cb08dda2de Update README.md with distro info 2021-06-15 23:57:34 +01:00
PartialVolume
2fb882084d Update README.md 2021-06-15 13:36:47 +01:00
PartialVolume
64caac4b16 Update README.md 2021-06-15 13:30:15 +01:00
PartialVolume
47e523cf34 Update nwipe.1 with correct default sync rate 2021-06-08 23:25:17 +01:00
PartialVolume
cf3ae6a0f6 Merge pull request #328 from PartialVolume/update_to_0.31
Update to 0.31
v0.31
2021-06-05 20:23:12 +01:00
PartialVolume
a88eeb9383 Update to 0.31 2021-06-05 19:40:00 +01:00
PartialVolume
a84894f317 Update CHANGELOG.md with version 0.31 changes
Update CHANGELOG.md with version 0.31 changes
2021-06-05 00:17:41 +01:00
PartialVolume
5c3eed8813 Merge pull request #326 from PartialVolume/Enable_verification_on_zero_pass_without_additional_blanking_pass
Allow Last Pass Verify to work without requiring final blanking (zero) pass.
2021-06-04 10:36:35 +01:00
PartialVolume
4b1c7007ff Various fixes to methods
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 without blanking being
enabled.

2. OPS2 method requires the last pass to be random, the GUI
now disables the use of the blanking option for this message
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.

3. The caculate_round_size() function was improved by reducing
some duplicated code and bring the full calculation into this function.

4. On completion of each pass or verification the total number of
bytes written or read for each pass or verification is logged.
2021-06-04 10:20:23 +01:00
PartialVolume
970d74f0d5 Bump minor version number from 009 to 010 2021-06-01 02:36:51 +01:00
PartialVolume
c815235f7b Merge pull request #325 from PartialVolume/Add_count_of_fatal_non-fatal_and_verification_errors_to_summary_table
Add pass and verification summary table to log
2021-06-01 02:30:50 +01:00
PartialVolume
dcfa13a8db Add pass and verification summary table to log 2021-06-01 02:21:00 +01:00
PartialVolume
a1560de8b5 Merge pull request #324 from PartialVolume/Fixes_verify_status_message_not_shown_on_blanking_pass
Fix blanking pass verification status message
2021-05-31 23:44:41 +01:00
PartialVolume
18386f225e Fix blanking pass verification status message
Although the blanking pass verification is
completed correctly the GUI status message
did not show the status as 'Verifying', the
status message continued to say blanking.

This patch fixes the GUI message so if
verification and blanking pass are enabled,
then when blanking is complete and verification
starts the drive status message changes from
'blanking' to 'Verifying'.
2021-05-31 23:41:19 +01:00
PartialVolume
1f3b36f141 Merge pull request #323 from PartialVolume/Fix_mersenne_prng_always_being_used_even_when_user_selected_isaac
Fix the prng GUI selection
2021-05-30 23:09:01 +01:00
PartialVolume
962e1053dd Fix the prng GUI selection
This patch fixes the issue where irrespective
of whether the user selects mersenne or isaac
in the GUI, mersenne is always used without the
user being aware mersenne was being used instead
of isaac.
2021-05-30 23:05:47 +01:00
PartialVolume
93ea5f85d0 Merge pull request #322 from PartialVolume/populate_the_empty_isaac_read_function_with_some_actual_code
Fix non functional isaac prng
2021-05-30 22:34:36 +01:00
PartialVolume
76a7be696c Fix non functional isaac prng
Since at least 2013 (the initial nwipe commit),
isaac has never functioned. When the issac prng
was selected in the GUI, nwipe used the mersenne
twister prng instead. Not that you would ever
have known, as there were no log entries saying which
prng was being actively used.

However, I don't believe this was just an nwipe
issue, looking at the code for DBAN's dwipe the
same function nwipe_isaac_read( NWIPE_PRNG_READ_SIGNATURE )
exists as it does in nwipe. In both cases the function
has no code that actually does anything.

This patch populates this function and brings isaac
back to life !

This bug was also responsible for verification errors
when the option prng=isaac was used on the command
line. Worse still, if you used prng=isaac on the
command line then wiped using method=prng, no verification
and no blanking you would expect to see random data. You
don't, instead you would see either all zeros or mainly
zeros because the uninitialised buffer that should have
contained random data instead contained initialised text
data such as partial log entries. This patch and previously
submitted patches fix all these problems related to the
isaac implementation.

A separate commit will fix the GUI prng selection which
was leading everybody to believe isaac was being used
when in fact it was mersenne all along.
2021-05-30 22:30:31 +01:00
PartialVolume
630d107558 Merge pull request #321 from PartialVolume/check_prng_is_generating_data
Check that the prng produces output.
2021-05-29 21:31:47 +01:00
PartialVolume
5adc34b9e3 Check that the prng produces output.
Additional log messages are produced and a failed prng
causes a wipe failure. The buffer that outputs prng data
to the disk is now initialised with zeros (calloc rather than malloc)
to avoid uninitialised memory leakage to the disk in the event of some
unforeseen bug. This initialised buffer is also required for the check
process.

Why do this check? At a future date more prng methods may be added. This
is a very basic check that they produce some output although the output
is not verified in terms of it's randomness. This check was also
implemented to show an existing bug in the Isaac implementation in nwipe.

See the example log below that shows a failed prng. This would be caused
by a bug in the prng implementation. See the last few messages after
pass 3/3 starts. 3/3 in DoD short is the prng pass.

[2021/05/29 20:30:27]  notice: Invoking method 'DoD Short' on /dev/loop29
[2021/05/29 20:30:27]  notice: Starting round 1 of 1 on /dev/loop29
[2021/05/29 20:30:27]  notice: Starting pass 1/3, round 1/1, on /dev/loop29
[2021/05/29 20:30:39]  notice: 1073741824 bytes written to /dev/loop29
[2021/05/29 20:30:39]  notice: Finished pass 1/3, round 1/1, on /dev/loop29
[2021/05/29 20:30:39]  notice: Starting pass 2/3, round 1/1, on /dev/loop29
[2021/05/29 20:30:58]  notice: 1073741824 bytes written to /dev/loop29
[2021/05/29 20:30:58]  notice: Finished pass 2/3, round 1/1, on /dev/loop29
[2021/05/29 20:30:58]  notice: Starting pass 3/3, round 1/1, on /dev/loop29
[2021/05/29 20:30:58]  notice: Initialising Isaac prng
[2021/05/29 20:30:58]   fatal: ERROR, prng wrote nothing to the buffer
[2021/05/29 20:30:58]  notice: 0 bytes written to /dev/loop29
[2021/05/29 20:31:03]   error: Nwipe exited with fatal errors on device = /dev/loop29

********************************************************************************
! Device | Status | Thru-put | HH:MM:SS | Model/Serial Number
--------------------------------------------------------------------------------
! loop29 |-FAILED-|  69 MB/s | 00:00:31 | Loopback device/
--------------------------------------------------------------------------------
[2021/05/29 20:31:03] Total Throughput  69 MB/s, DoD Short, 1R+NB+NV
********************************************************************************

A message is also shown for a successful prng output. i.e "prng is active"
See example below.

[2021/05/29 20:04:30]  notice: Invoking method 'DoD Short' on /dev/loop29
[2021/05/29 20:04:30]  notice: Starting round 1 of 1 on /dev/loop29
[2021/05/29 20:04:30]  notice: Starting pass 1/3, round 1/1, on /dev/loop29
[2021/05/29 20:04:44]  notice: 1073741824 bytes written to /dev/loop29
[2021/05/29 20:04:44]  notice: Finished pass 1/3, round 1/1, on /dev/loop29
[2021/05/29 20:04:44]  notice: Starting pass 2/3, round 1/1, on /dev/loop29
[2021/05/29 20:04:59]  notice: 1073741824 bytes written to /dev/loop29
[2021/05/29 20:04:59]  notice: Finished pass 2/3, round 1/1, on /dev/loop29
[2021/05/29 20:04:59]  notice: Starting pass 3/3, round 1/1, on /dev/loop29
[2021/05/29 20:04:59]  notice: Initialising Mersenne Twister prng
[2021/05/29 20:04:59]  notice: prng stream is active
[2021/05/29 20:05:25]  notice: 1073741824 bytes written to /dev/loop29
2021-05-29 21:23:38 +01:00