A secure device wiping utility that overwrites block devices with random data.
π¨ CRITICAL WARNING: This tool is EXTREMELY DESTRUCTIVE and COMPLETELY IRREVERSIBLE! π¨
- Features
- Installation
- Usage
- Requirements
- Safety Features
- Common Use Cases
- Troubleshooting
- Performance Recommendations
- Secure Wiping: Overwrites block devices with random data for permanent data destruction
- Device Listing: Display all block devices with detailed information (size, model, serial, partitions)
- Memory Efficient: Chunked writing prevents excessive RAM usage (configurable buffer size: 1M-1T)
- Safety First: Root privilege verification and comprehensive safety checks
- Automatic Disk Detection: Identifies disk type (HDD, SSD, NVMe) with confidence scoring
- HDD Pretest: Tests write speeds at different disk positions (beginning, middle, end)
- Adaptive Algorithms: Three wiping strategies automatically selected based on disk characteristics:
- Standard Strategy: Fixed chunk size for consistent SSDs and fast HDDs
- Small Chunk Strategy: 10MB chunks for slow/unreliable drives (better responsiveness)
- Adaptive Strategy: Dynamic chunk sizing based on disk position and speed (HDD optimization)
- Real-time Progress: Live display with percentage, speed (MB/s), ETA, and progress bar
- Estimated Finish Time: Shows actual clock time (e.g., "3:15 PM") at every 5% milestone
- Resume Support: Automatic progress saving every 1GB or 10 chunks
- Resume Detection: Prompts user about previous interrupted wipes when starting
- 24-Hour Expiry: Progress files automatically expire after 24 hours
β οΈ Mount Detection: Prevents wiping mounted devices (blocks execution if mounted)- π¨ Confirmation Prompt: Requires explicit 'y' confirmation before wiping
- Graceful Interruption: Ctrl+C saves progress and provides resume instructions
- Device Verification: Shows detailed device info before wiping to prevent mistakes
- Permission Checks: Ensures proper root/sudo privileges
- Clean Output: Professional formatting with section headers and bullet points
- Progress Milestones: Milestone messages every 5% with estimated completion time
- Resume Workflow: Automatic detection and helpful prompts for pending operations
- Detailed Reporting: Comprehensive completion summary with statistics
- Responsive: Immediate Ctrl+C handling with progress preservation
- Buffer Size: Configurable from 1MB to 1TB (default: 100MB)
- Skip Pretest: Option to bypass HDD pretest for faster start
- Resume Flag: Auto-detects drive by serial number for seamless resume
- List Devices: Dedicated --list option for device enumeration
- Strategy Pattern: Object-oriented wiping strategies for extensibility
- 95% Test Coverage: 148 comprehensive unit and integration tests
- Performance Tracking: Speed sampling and analysis for adaptive algorithms
- Progress Persistence: JSON-based progress files with device tracking
- Type Detection: Uses rotation rate, model strings, and device paths for accurate detection
Download the latest .whl file from the Releases page, then:
pip install wipeit-*.whlgit clone https://github.com/cscortes/wipeit.git
cd wipeit
uv syncgit clone https://github.com/cscortes/wipeit.git
cd wipeit
uv sync
source .venv/bin/activateπ¨ EXTREME CAUTION: This section shows how to PERMANENTLY DESTROY data! π¨
Always run with sudo and double-check device paths!
To see all available block devices on your system:
sudo wipeitNote: If you have pending wipe operations (interrupted wipes), the tool will first display information about them before showing available devices.
Example with pending operations:
$ ./wipeit.py
Found pending wipe operations:
==================================================
1. Device: /dev/sdb
Progress: 25.00% complete
Written: 1.00 GB / 4.00 GB
Buffer size: 100 MB
Started: Thu Oct 9 18:04:00 2025
Resume command: sudo ./wipeit.py --resume
NOTE: To resume any operation, simply run: sudo ./wipeit.py --resume
NOTE: The tool will automatically find the correct drive by serial number
NOTE: To start fresh, the progress file will be overwritten
==================================================
==================================================
Available devices (requires sudo):
==================================================
Error: This program must be run as root (sudo) to list devices.
Use: sudo ./wipeit.pyExample output:
Device: /dev/sda
Size: 256.00 GB
Model: SAMSUNG_SSD_860
Serial: S3Z9NB0K123456
Device and partitions:
NAME SIZE TYPE MOUNTPOINTS
sda 256G disk
ββsda1 512M part /boot/efi
ββsda2 255.5G part /
Warning: /dev/sda or its partitions appear to be mounted.
---
Device: /dev/sdb
Size: 128.00 GB
Model: USB_Flash_Drive
Serial: 1234567890
Device and partitions:
NAME SIZE TYPE MOUNTPOINTS
sdb 128G disk
/dev/sdb does not appear to be mounted.
π¨ DANGER: This will PERMANENTLY DESTROY ALL DATA on the specified device! π¨
To securely wipe a device by overwriting it with random data:
sudo wipeit /dev/sdxReplace /dev/sdx with your actual device (e.g., /dev/sdb, /dev/sdc).
You can adjust the write buffer size for better performance:
# Use 1GB buffer for faster wiping
sudo wipeit -b 1G /dev/sdx
# Alternative syntax (same result)
sudo wipeit --force-buffer-size 1G /dev/sdx
# Use 500MB buffer
sudo wipeit -b 500M /dev/sdx
# Use 100MB buffer (default)
sudo wipeit -b 100M /dev/sdxBuffer size options:
- Range:
1M(minimum) to1T(maximum) - Suffixes:
M(megabytes),G(gigabytes),T(terabytes) - Default:
100M(when not specified) - Aliases:
-b,--buffer-size,--force-buffer-size(all work the same) - Important: When you specify a buffer size, it is ALWAYS used exactly as specified
- Bypasses algorithm selection and pretest
- Your choice overrides any recommendations
- wipeit will inform you if your choice is unusual but will respect it
wipeit now automatically detects your disk type and optimizes the wiping process:
$ sudo wipeit /dev/sdb
Device: /dev/sdb
Size: 500.00 GB
Model: WDC_WD5000AAKX-00ERMA0
Serial: WD-WMAYUA1234567
Type: HDD (confidence: HIGH)
Detection details: Rotational device
Device and partitions:
NAME SIZE TYPE MOUNTPOINTS
sdb 500G disk
/dev/sdb does not appear to be mounted.
Detected disk type: HDD (confidence: HIGH)
HDD detected - performing pretest to optimize wiping algorithm...For HDDs, wipeit performs a pretest to measure write speeds at different disk positions:
Performing HDD pretest to optimize wiping algorithm... This will test write
speeds at different disk positions. Testing beginning of disk... Beginning:
120.45 MB/s Testing middle of disk... Middle: 95.32 MB/s Testing end of disk...
End: 78.21 MB/s
Pretest Analysis:
Average speed: 97.99 MB/s
Speed variance: 42.24 MB/s
Recommended algorithm: adaptive_chunk
Reason: High speed variance detected - adaptive chunk sizing recommended
Pretest complete. Using adaptive_chunk algorithm.
Using adaptive chunk sizing based on disk positionBased on the pretest results, wipeit selects the optimal algorithm:
- Standard: For SSDs, NVMe drives, and HDDs with consistent speeds
- Adaptive Chunk: For HDDs with high speed variance (adjusts chunk size based on disk position)
- Small Chunk: For very slow HDDs (uses smaller chunks for better responsiveness)
If you want to bypass the pretest and use the standard algorithm:
sudo wipeit --skip-pretest /dev/sdxThis is useful when:
- You're in a hurry and want to start wiping immediately
- You're wiping multiple similar drives and already know the optimal settings
- The pretest is taking too long on very large drives
When resuming an interrupted wipe on an HDD:
- With existing pretest results: The previous pretest results are automatically reused, ensuring optimal performance without re-testing
- Without pretest results: A new pretest is performed to optimize the algorithm for the remaining wipe operation
- Pretest results are preserved: All pretest data is saved with progress and restored on resume
This ensures that:
- Optimal performance is maintained throughout the entire wipe process
- No duplicate testing when resuming with existing pretest results
- Consistent algorithm is used from start to finish
- Time savings by reusing previous pretest results
- This will PERMANENTLY DESTROY ALL DATA on the device
- There is NO UNDO operation
- Double-check the device path before confirming
- Never wipe your system disk or mounted partitions
Interactive workflow:
$ sudo wipeit /dev/sdb -b 1G
Using buffer size: 1024 MB (1.00 GB)
Device: /dev/sdb
Size: 128.00 GB
Model: USB_Flash_Drive
Serial: 1234567890
Device and partitions:
NAME SIZE TYPE MOUNTPOINTS
sdb 128G disk
/dev/sdb does not appear to be mounted.
Confirm wipe (y/n): y
Progress: 5.32% | Written: 6.81 GB | Speed: 85.32 MB/s | ETA: 23.45 min | Buffer: 1024M | Algorithm: AdaptivePress Ctrl+C at any time to interrupt the wiping process:
Progress: 15.42% | Written: 19.74 GB | Speed: 82.15 MB/s | ETA: 17.23 min
^C
Wipe interrupted at 19.74 GB (15.42% complete)
Progress saved. To resume, run:
sudo ./wipeit.py --resumeThe tool will automatically find the correct drive by matching the serial number from the progress file.
To continue from where you left off:
sudo ./wipeit.py --resumeThe tool will automatically find the correct drive by matching the serial number from the progress file.
Example resume session with HDD and pretest results:
$ sudo ./wipeit.py --resume
======================================================================
AUTO-DETECTING RESUME DRIVE
======================================================================
β Found matching drive: /dev/sdb
Serial: WD-WMAYUA1234567
Model: Hitachi_HTS545032B9A300
Size: 128.00 GB
Detected disk type: HDD (confidence: HIGH)
Detection details: Rotational device
Resuming wipe from 19.74 GB (15.42% complete)
Previous session: Wed Oct 1 18:30:45 2025
Found previous pretest results from Wed Oct 1 18:30:45 2025
Using previous pretest results for optimal algorithm.
Previous algorithm: adaptive_chunk
Device: /dev/sdb
Size: 128.00 GB
Model: Hitachi_HTS545032B9A300
Serial: WD-WMAYUA1234567
Device and partitions:
NAME SIZE TYPE MOUNTPOINTS
sdb 128G disk
/dev/sdb does not appear to be mounted.
Confirm wipe (y/n): y
Progress: 16.12% | Written: 20.64 GB | Speed: 85.32 MB/s | ETA: 16.45 min | Buffer: 100M | Algorithm: AdaptiveExample resume session without pretest results:
$ sudo ./wipeit.py --resume
======================================================================
AUTO-DETECTING RESUME DRIVE
======================================================================
β Found matching drive: /dev/sdb
Serial: WD-WMAYUA1234567
Model: Hitachi_HTS545032B9A300
Size: 128.00 GB
Detected disk type: HDD (confidence: HIGH)
Detection details: Rotational device
Resuming wipe from 19.74 GB (15.42% complete)
Previous session: Wed Oct 1 18:30:45 2025
HDD detected - pretest will be performed to optimize wiping algorithm...
This will test write speeds at different disk positions.
The pretest may take a few minutes depending on disk size.
Proceed with HDD pretest? (y/n): y
Starting HDD pretest...
Performing HDD pretest to optimize wiping algorithm...
This will test write speeds at different disk positions.
β οΈ WARNING: This will write test data to the disk!
Disk size: 128.00 GB
Test chunk size: 100 MB
Test positions: 3 locations
Testing beginning of disk...
Beginning: 120.45 MB/s
Testing middle of disk...
Middle: 95.32 MB/s
Testing end of disk...
End: 78.21 MB/s
Pretest Analysis:
Average speed: 97.99 MB/s
Speed variance: 42.24 MB/s
Recommended algorithm: adaptive_chunk
Reason: High speed variance detected - adaptive chunk sizing recommended
Pretest complete. Using adaptive_chunk algorithm.
Using adaptive chunk sizing based on disk position
Device: /dev/sdb
Size: 128.00 GB
Model: Hitachi_HTS545032B9A300
Serial: WD-WMAYUA1234567
Device and partitions:
NAME SIZE TYPE MOUNTPOINTS
sdb 128G disk
/dev/sdb does not appear to be mounted.
Confirm wipe (y/n): y
Progress: 16.12% | Written: 20.64 GB | Speed: 85.32 MB/s | ETA: 16.45 min | Buffer: 100M | Algorithm: AdaptiveIf you try to start a new wipe on a device with existing progress:
$ sudo ./wipeit.py /dev/sdb
β οΈ Found previous wipe session:
Progress: 15.42% (19.74 GB)
Started: Wed Oct 1 18:30:45 2025
Options:
1. Resume previous session: sudo ./wipeit.py --resume
2. Start fresh (will overwrite previous progress)
Start fresh wipe? (y/n): n
Aborted.To see all available options:
wipeit --helpTo check the version:
wipeit --version
# or
wipeit -vExample output:
$ wipeit --version
wipeit 1.2.0The tool automatically saves progress and allows resuming interrupted wipes:
- Progress file is stored as
wipeit_progress.json(current directory) - Auto-save occurs every 1GB written or every 10 chunks
- Resume detection when starting a new wipe on a device with existing progress
- Progress cleanup when wipe completes successfully
- 24-hour expiry for progress files (prevents stale resumes)
- Pending operations display when running without arguments shows all interrupted wipes
- Operating System: Linux (tested on Fedora, Ubuntu, Debian, Arch)
- Python: 3.8 or higher
- Privileges: Root/sudo access
The following utilities must be available on your system:
blockdev- Query block device sizeudevadm- Get device properties (model, serial)lsblk- List block devices and partitionsmount- Check mount status
These are typically pre-installed on most Linux distributions.
- Root check: Verifies the program is run with root privileges
- Device information: Displays full device details before proceeding
- Mount safety check: STOPS EXECUTION if device or partitions are mounted
- Explicit confirmation: Requires user to type 'y' to proceed
- Progress tracking: Real-time feedback on operation status
- Interruptible: Can be stopped at any time with Ctrl+C (immediate response)
- Resumable: Automatically saves progress and allows resuming from interruption point
π¨ CRITICAL SAFETY FEATURE: Mount Detection and Prevention
wipeit includes a comprehensive mount safety system that prevents accidental data loss:
- Automatic Detection: Checks if the target device or any of its partitions are mounted
- Immediate Termination: STOPS EXECUTION if mounted devices are detected
- Detailed Information: Shows exactly which partitions are mounted and where
- Clear Instructions: Provides step-by-step commands to safely unmount devices
- Safety Warnings: Explains the risks of wiping mounted devices
Example of mount safety in action:
$ sudo wipeit /dev/sdb
======================================================================
π¨ SAFETY CHECK FAILED - DEVICE IS MOUNTED
======================================================================
Cannot proceed with wiping /dev/sdb
The device or its partitions are currently mounted!
Mounted partitions found:
β’ /dev/sdb1 -> /mnt/usb
TO FIX THIS ISSUE:
1. Unmount all partitions on this device:
sudo umount /dev/sdb*
2. Or unmount specific partitions:
sudo umount /dev/sdb1
3. Verify device is unmounted:
lsblk /dev/sdb
4. Then run wipeit again
β οΈ WARNING: Wiping a mounted device can cause:
β’ Data corruption on the mounted filesystem
β’ System instability or crashes
β’ Loss of data on other mounted partitions
Program terminated for safety.Why this matters:
- Prevents data corruption on active filesystems
- Avoids system crashes from wiping mounted system partitions
- Protects against accidental loss of important data
- Ensures clean, safe wiping of unmounted devices only
- Overwrites entire device from start to finish
- No patterns that could potentially be recovered
sudo wipeit /dev/sdbsudo wipeit -b 1G /dev/sdc# Fast wipe with 2GB buffer
sudo wipeit --buffer-size 2G /dev/sddsudo ./wipeit.py --resumeThe tool will automatically find the correct drive by matching the serial number from the progress file.
sudo wipeitSolution: Always prefix the command with sudo:
sudo wipeit /dev/sdxSolution: Unmount all partitions before wiping:
sudo umount /dev/sdx1
sudo umount /dev/sdx2
# Then try again
sudo wipeit /dev/sdxSolution:
- Ensure you're using
sudo - Check if the device is locked by another process
- Verify the device path exists:
ls -l /dev/sdx
Always verify the device path before wiping:
# List all devices
lsblk
# Check specific device
sudo fdisk -l /dev/sdx
# Use wipeit's listing feature
sudo wipeitActual wiping speed varies by device type and interface:
| Device Type | Expected Speed | Time for 1TB |
|---|---|---|
| USB 2.0 | 30-40 MB/s | ~7-9 hours |
| USB 3.0 | 80-150 MB/s | ~2-3.5 hours |
| USB 3.1/3.2 | 150-300 MB/s | ~1-2 hours |
| SATA HDD (5400 RPM) | 80-120 MB/s | ~2.5-3.5 hours |
| SATA HDD (7200 RPM) | 120-160 MB/s | ~2-2.5 hours |
| SATA SSD | 200-450 MB/s | ~40-90 min |
| NVMe SSD (Gen3) | 500-1500 MB/s | ~12-35 min |
| NVMe SSD (Gen4) | 1000-3000 MB/s | ~6-18 min |
| Size | USB 3.0 | SATA SSD | NVMe SSD |
|---|---|---|---|
| 16 GB | 2-3 min | 1-2 min | < 1 min |
| 32 GB | 4-7 min | 2-3 min | < 1 min |
| 64 GB | 7-13 min | 3-5 min | 1-2 min |
| 128 GB | 15-27 min | 6-10 min | 2-4 min |
| 256 GB | 29-53 min | 12-20 min | 4-9 min |
| 512 GB | 57-107 min | 23-40 min | 8-17 min |
| 1 TB | 2-3.5 hours | 40-85 min | 12-35 min |
| 2 TB | 4-7 hours | 1.5-2.8 hours | 25-70 min |
| 4 TB | 8-14 hours | 3-5.5 hours | 50-140 min |
Why does the speed drop during wiping?
The speed you see in wipeit's progress display will typically decrease over time, especially for traditional hard drives. This is completely normal and expected behavior:
- Outer tracks are faster: Hard drives have higher data density on outer tracks, enabling faster read/write speeds
- Inner tracks are slower: As wiping progresses toward the center of the disk, data density decreases, resulting in slower speeds
- Speed drop is normal: Expect 30-50% speed reduction from start to finish on traditional hard drives
Progress: 5.01% | Speed: 70.10 MB/s | ETA: 68.93 min
Progress: 15.00% | Speed: 250.00 MB/s | ETA: 17.30 min | Estimated Finish Time: 7:02 PM
Progress: 25.00% | Speed: 200.00 MB/s | ETA: 15.00 min
Progress: 50.00% | Speed: 150.00 MB/s | ETA: 12.00 min
Progress: 75.00% | Speed: 120.00 MB/s | ETA: 8.00 min
Progress: 95.00% | Speed: 100.00 MB/s | ETA: 2.00 min
- This is normal behavior - not an error
- Hard drives naturally slow down on inner tracks
- Your wipeit implementation is working correctly
- The speed calculation is accurate
- ETA will adjust automatically as speed changes
- Traditional HDDs: Significant speed drop (30-50% reduction)
- SSDs: Minimal speed variation (usually <10% change)
- NVMe SSDs: Very consistent speeds throughout
The dropping speed is actually a good sign that wipeit is working properly and writing to the entire disk surface!
The buffer size directly affects memory usage and can impact performance:
# USB 2.0/3.0 Devices (slower devices)
sudo wipeit -b 100M /dev/sdx # Optimal for most USB drives
sudo wipeit -b 256M /dev/sdx # For faster USB 3.1+ devices
# SATA SSDs
sudo wipeit -b 500M /dev/sdx # Good balance
sudo wipeit -b 1G /dev/sdx # Maximum performance
# NVMe SSDs (fastest devices)
sudo wipeit -b 1G /dev/sdx # Minimum recommended
sudo wipeit -b 2G /dev/sdx # Better performance
sudo wipeit -b 4G /dev/sdx # Maximum performance
# Large HDDs (multi-TB)
sudo wipeit -b 500M /dev/sdx # Standard recommendation
sudo wipeit -b 1G /dev/sdx # For faster RAID arrays| Buffer Size | Memory Usage | Speed Impact | Best For |
|---|---|---|---|
| 1M-10M | Very Low (~10 MB) | Slowest | Low-memory systems |
| 50M-100M | Low (~100 MB) | Good | Default, USB 2.0 |
| 256M-500M | Medium (~500 MB) | Better | USB 3.0, SATA HDD |
| 1G-2G | High (~2 GB) | Best | SATA SSD, NVMe |
| 4G+ | Very High (4+ GB) | Maximum | High-end NVMe only |
- Low: Minimal CPU usage (~5-15%)
- Random data generation (
os.urandom()) uses CPU but is efficient - Multi-core systems benefit from kernel I/O optimizations
Minimum memory needed = Buffer size + ~100 MB overhead
| Buffer Size | Minimum RAM | Recommended RAM |
|---|---|---|
| 100M | 256 MB | 512 MB |
| 500M | 1 GB | 2 GB |
| 1G | 2 GB | 4 GB |
| 2G | 4 GB | 8 GB |
| 4G | 8 GB | 16 GB |
For best performance, use appropriate I/O scheduler:
# Check current scheduler
cat /sys/block/sdx/queue/scheduler
# For SSDs (recommended: none or mq-deadline)
echo none | sudo tee /sys/block/sdx/queue/scheduler
# For HDDs (recommended: mq-deadline or bfq)
echo mq-deadline | sudo tee /sys/block/sdx/queue/schedulerStart with defaults and increase if you have available RAM:
# Start with default
sudo wipeit /dev/sdx
# If device is fast and you have RAM, increase buffer
sudo wipeit -b 1G /dev/sdxEnsure nothing else is accessing the device:
# Unmount all partitions
sudo umount /dev/sdx*
# If device is used for swap, disable it
sudo swapoff /dev/sdx1For maximum speed:
- Close unnecessary applications
- Stop unnecessary services
- Avoid heavy disk I/O on other drives during wiping
Always wipe the entire device, not partitions:
# β Correct - wipe entire device
sudo wipeit /dev/sdb
# β Incorrect - wiping partition is slower
sudo wipeit /dev/sdb1Watch the progress output to verify expected speeds:
Progress: 15.42% | Written: 19.74 GB | Speed: 82.15 MB/s | ETA: 17.23 min | Buffer: 100MIf speed is much lower than expected:
- Check if other processes are using I/O
- Verify device is not failing (
dmesg | tail) - Try increasing buffer size
- Check cable quality (for external drives)
When wiping multiple devices simultaneously:
# In separate terminals, adjust buffer sizes based on total available RAM
sudo wipeit -b 500M /dev/sdb
sudo wipeit -b 500M /dev/sdc
sudo wipeit -b 500M /dev/sddNote: Total buffer size across all instances should not exceed available RAM.
Problem: Speed is 50-70% lower than expected
Solutions:
- Check cable quality (try different USB port/cable)
- Verify device health:
sudo smartctl -a /dev/sdx - Increase buffer size:
-b 500Mor-b 1G - Check for background processes:
iotop -o - Disable power management:
sudo hdparm -B 255 /dev/sdx # Disable APM
Problem: System running out of memory
Solutions:
- Reduce buffer size:
-b 100Mor-b 50M - Close other applications
- Check available memory:
free -h
Problem: External device getting hot
Solutions:
- Reduce buffer size to slow down writes
- Improve airflow around device
- Take periodic breaks (Ctrl+C to pause)
Real-world test results (256 GB NVMe SSD):
| Buffer Size | Speed | Time | Memory Used |
|---|---|---|---|
| 10M | 180 MB/s | 24 min | ~15 MB |
| 100M | 420 MB/s | 10 min | ~105 MB |
| 500M | 485 MB/s | 9 min | ~505 MB |
| 1G | 510 MB/s | 8.5 min | ~1.05 GB |
| 2G | 515 MB/s | 8.3 min | ~2.05 GB |
Conclusion: For most use cases, 100M-500M provides the best balance of speed and resource usage.
# Run all tests
python3 test_wipeit.py
# Run with verbose output
python3 test_wipeit.py -v
# Run specific test class
python3 -m unittest test_wipeit.TestParseSize -v
# Run with coverage
coverage run test_wipeit.py
coverage reportThis project uses GitHub Actions for continuous integration:
- CI Pipeline: Runs tests on Python 3.8, 3.11, 3.12
- Test Suite: Comprehensive unit tests with 27 test cases
- Code Quality: Linting, formatting, and security checks
- Coverage: Code coverage reporting
- Build: Automatic package building and validation
We welcome contributions from the community! There are many ways to participate:
- Star the project β - Help others discover wipeit
- Watch for updates π - Stay informed about new features
- Share with others π’ - Spread the word about secure data wiping
- Bug reports - Found a problem? Let us know!
- Performance issues - Experiencing slow wiping speeds?
- Compatibility problems - Issues with specific hardware?
- Documentation gaps - Something unclear or missing?
- New algorithms - Have ideas for better wiping methods?
- UI improvements - Suggestions for better user experience?
- Platform support - Need support for additional operating systems?
- Integration requests - Want wipeit to work with other tools?
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Add tests for new functionality
- Ensure all tests pass (
make tests) - Follow coding standards (
make pre-git-prep) - Submit a pull request
- Improve guides - Make documentation clearer
- Add examples - Share use cases and workflows
- Translate - Help make wipeit accessible worldwide
- Tutorials - Create step-by-step guides
- Test on different hardware - Help ensure compatibility
- Report edge cases - Find scenarios we haven't tested
- Performance testing - Help optimize wiping speeds
- Security validation - Verify wiping effectiveness
Every contribution matters! Whether you're reporting a bug, suggesting a feature, or submitting code, you're helping make wipeit better for everyone.
For more information, see the DOCS directory:
- CHANGES.md - Version history and changelog
- PERFORMANCE-GUIDE.md - Quick reference for performance optimization
- TESTDESIGN.md - Comprehensive testing strategy and guidelines
MIT License
Before asking for help:
- Check the troubleshooting section above
- Verify all system requirements are met
- Review the documentation for detailed guides
- Found a bug? β Open an issue
- Have a feature request? β Request a feature
- General questions? β Start a discussion
- Need documentation help? β Improve the docs
- Star this project - Help others discover wipeit
- Watch for updates - Get notified of new releases
- Share your experience - Help others in discussions
- Contribute - See the Contributing section above
We're here to help! The wipeit community is friendly and responsive. Don't hesitate to reach out!
THIS TOOL IS EXTREMELY DESTRUCTIVE AND COMPLETELY IRREVERSIBLE!
Before using this tool, you MUST:
- TRIPLE-CHECK the device path multiple times
- VERIFY you're targeting the correct device (NOT your system disk!)
- BACKUP any important data before proceeding
- UNMOUNT devices before wiping
- NEVER wipe your system disk or any device with important data
- TEST on a disposable device first if you're unsure
- UNDERSTAND that this process cannot be undone
- ACCEPT full responsibility for any data loss
π¨ CRITICAL REMINDERS:
- This tool will PERMANENTLY DESTROY all data on the target device
- There is NO UNDO function - once started, data is gone forever
- DOUBLE-CHECK device paths - a typo could destroy the wrong drive
- NEVER run this on your main system drive or any drive with important data
- This tool is designed for SECURE DATA DESTRUCTION - use responsibly
By using this tool, you accept full responsibility for any data loss.