| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-05-15 | 11.3 kB | |
| v0.41 source code.tar.gz | 2026-05-15 | 7.4 MB | |
| v0.41 source code.zip | 2026-05-15 | 7.4 MB | |
| Totals: 3 Items | 14.8 MB | 0 | |
Notable New Features
- System PDF Report nwipe has expanded its reporting capabilities to better support hardware refurbishers, resellers, and fleet-scale server wiping operations. In addition to individual drive certificates, nwipe can now generate a single system-focused erasure certificate. This document consolidates the erasure status and SMART data of all installed drives on a system and captures essential SMBIOS/DMI identifiers to ensure full auditability of the host, whether server, desktop or laptop." Note: The population of SMBIOS/DMI fields varies by manufacturer. While tier-one brands generally ensure high data integrity, some hardware vendors may provide incomplete or unpopulated data fields." Thanks to @PartialVolume [#717] [#723] [#724] [#752] [#753] [#754] Example: nwipe_system_report (anonymized)
- Protection of Mounted Drives
Having personally experienced the joy of wiping my system drive by mistake, we introduced a new feature to nwipe that now marks a mounted drive as [ In Use ] and will not allow you to wipe it.. unless you use the
./nwipe --forcecommand line option to override this protection. In my opinion this is a really useful addition and will hopefully save somebody from accidentally wiping their system drive by mistake. Note for ShredOS users. As ShredOS is a disk less operating system running completely in RAM, it doesn't have a permanently mounted system disc unlike your typical Linux distribution so if you boot your work laptop/PC with ShredOS it won't recognise that one of your drives may have your favourite Linux distribution installed, as it won't be mounted. Therefore, if using ShredOS, make sure you are careful about selecting the correct drive that you want to wipe as this protection is not relevant for ShredOS. Thanks to @desertwitch [#742] [#751]
- Reverse Wiping
Nwipe can now reverse wipe a disk. The default wipe is a forward wipe starting at block zero to max block. You can now have nwipe wipe the disc in reverse from the max block to block zero. This feature may be useful if you are wiping a faulty disc that fails with an I/O error at a specific location on the disc. Prior to this new feature every block after the I/O error would have not been erased. Therefore, if a I/O error should occur due to a faulty disc, you can now use the
dkey on the drive selection screen to have nwipe start the wipe from the other end of the disc. In this way you are far more likely to wipe the bulk of the disk subject to the type of fault the disc may have. If reversing the wipe, a(R)is placed after the method to indicate which mode you have selected. Thanks to @desertwitch [#735]
- Scatter Wiping
Nwipe can now optionally wipe a disk in a scattered segment mode instead of sequentially. Giving long seeks and short sequential writes while still completely erasing the entire disc. This is useful for stress testing a drive that you suspect of having seek errors. Scatter wiping can be selected with the
dkey from the drive selection screen. If scatter wipe mode is selected a(S)will be placed after the method to indicate which mode you are using. Thanks to @desertwitch [#743]
- Two New PRNGs - SplitMix64 (General-purpose PRNG) and ChaCha20 (Cryptographically-secure PRNG)
ChaCha20, which is a very popular CSPRNG that's used in OS kernels, TLS, SSH.
SplitMix64, a fast 64-bit centric PRNG, optimised and providing a great increase in speed which will be a nice feature for mass wipes/NVMe etc. In addition CSPRNG and PRNGs have been split between two menus in the GUI as shown below. Thanks to @desertwitch [#727]
- CI Unit Testing Nwipe has now adopted CI Testing: The purpose of Continuous Integration (CI) unit testing for nwipe is to ensure the absolute reliability, safety, and stability of the software before code changes are merged into production.
Because nwipe is a data sanitization tool, the stakes for software failure are incredibly high. CI unit testing addresses this through several core functions:
-
Guaranteeing Erasure Integrity: A bug in a wiping utility can lead to catastrophic data leaks (e.g., reporting a successful wipe when data remains intact). Unit tests mathematically validate that the data generation algorithms (like AES-CTR or ChaCha20) and verification passes behave exactly as intended.
-
Preventing Regressions: As developers introduce new features—such as consolidated system certificates or optimized I/O buffering—automated testing ensures that existing core capabilities (like multi-drive threading or disk geometry parsing) are not inadvertently broken.
-
Ensuring Platform and Dependency Stability: nwipe relies closely on the Linux kernel, system calls, and external libraries (like libparted). CI pipelines compile and test the code against various environments to catch platform-specific compilation errors or dependency conflicts early.
-
Accelerating Open-Source Contributions: Automated workflows allow maintainers to safely and efficiently vet community pull requests. It provides an immediate sanity check on code quality, reducing the need for tedious manual validation on physical testing hardware.
Thanks @Knogle [#725] and @desertwitch [#737] [#740]
- New command line switch (--no-abort-on-block-errors)
This commit introduces a new command line option
--no-abort-on-block-errorsthat allows forward write passes to continue when a block write fails. When enabled, nwipe will: treat the entire block as failed, count its size toward pass_errors, skip the block via lseek(), advance z and round_done accordingly, and continue with the next block instead of aborting the pass. The default behaviour (aborting the pass on a write error) remains unchanged. This implementation modifies only nwipe_random_pass() and nwipe_static_pass(); no changes to verification or reverse passes. Thanks to @Knogle [#685]
- Reformatted the command line help to improve legibility
User-input text is now highlighted in green, as shown in the image below. Please note that the following image represents only a portion of the available commands.
nwipe --helpThanks to @PartialVolume [#730]
- Added Contribution Guidelines especially regarding the use of AI agents. Thanks @Knogle [#739]
ShredOS Users: I will endeavour to release a new version of ShredOS that incorporates nwipe v0.41 within 24hrs of this release. @PartialVolume
What's Changed (auto generated list of all changes)
- Restructure PDF source files. We now have a separate source file for each type of PDF created. by @PartialVolume in https://github.com/martijnvanbrummelen/nwipe/pull/717
- Major bugfixes & bad block/error handling by @desertwitch in https://github.com/martijnvanbrummelen/nwipe/pull/720
- Add optional non-fatal handling of block write errors in forward passes by @Knogle in https://github.com/martijnvanbrummelen/nwipe/pull/685
- Merge pull request [#717] from PartialVolume/restructure_PDF_source_files by @PartialVolume in https://github.com/martijnvanbrummelen/nwipe/pull/723
- Initial work on system multi disc PDF, work in progress by @PartialVolume in https://github.com/martijnvanbrummelen/nwipe/pull/724
- Update installation instructions in README.md by @TheSuperGiant in https://github.com/martijnvanbrummelen/nwipe/pull/726
- Reverse wiping, verification skip bad blocks & minor fixes by @desertwitch in https://github.com/martijnvanbrummelen/nwipe/pull/722
- PRNGs: Two new PRNGs + GUI Selection Screen by @desertwitch in https://github.com/martijnvanbrummelen/nwipe/pull/727
- CI unit testing for nwipe by @Knogle in https://github.com/martijnvanbrummelen/nwipe/pull/725
- Tidy up display_help function by @PartialVolume in https://github.com/martijnvanbrummelen/nwipe/pull/730
- Add the .clang-format-ignore file by @PartialVolume in https://github.com/martijnvanbrummelen/nwipe/pull/731
- Bump minor version as a test of .clang-format-ignore by @PartialVolume in https://github.com/martijnvanbrummelen/nwipe/pull/732
- Minor formatting fixes by @PartialVolume in https://github.com/martijnvanbrummelen/nwipe/pull/733
- Some additional help info for display_help() by @PartialVolume in https://github.com/martijnvanbrummelen/nwipe/pull/734
- Fix v0.40 regression (failing -std=c99, Fedora packaging) by @desertwitch in https://github.com/martijnvanbrummelen/nwipe/pull/736
- ci: add workflows for -std=c99/c11/c17 by @desertwitch in https://github.com/martijnvanbrummelen/nwipe/pull/737
- Added contribution guidelines, especially regarding the use of AI agents by @Knogle in https://github.com/martijnvanbrummelen/nwipe/pull/739
- CI: Test
--directioand--cachedioI/O modes by @desertwitch in https://github.com/martijnvanbrummelen/nwipe/pull/740 - I/O direction selection (--reverse) by @desertwitch in https://github.com/martijnvanbrummelen/nwipe/pull/735
- feat: introduce --force for in use devices by @desertwitch in https://github.com/martijnvanbrummelen/nwipe/pull/742
- Device geometry, scattered I/O, verification error paths by @desertwitch in https://github.com/martijnvanbrummelen/nwipe/pull/743
- fix(gui): do not select disabled devices by @desertwitch in https://github.com/martijnvanbrummelen/nwipe/pull/751
- System pdf by @PartialVolume in https://github.com/martijnvanbrummelen/nwipe/pull/752
- Add system host UUID and serial number by @PartialVolume in https://github.com/martijnvanbrummelen/nwipe/pull/753
- Add smbios dmi page to system pdf by @PartialVolume in https://github.com/martijnvanbrummelen/nwipe/pull/754
New Contributors
- @TheSuperGiant made their first contribution in https://github.com/martijnvanbrummelen/nwipe/pull/726
Full Changelog: https://github.com/martijnvanbrummelen/nwipe/compare/v0.40...v0.41