S.M.A.R.T-Drivetest/README.md
hax 7e093a2963 Whoops! fixed :)
Signed-off-by: hax <hax@lainlounge.xyz>
2025-01-05 19:58:10 +00:00

75 lines
2.4 KiB
Markdown

# SMART and Badblocks Testing Script
This script performs diagnostic tests on a specified block device using `smartctl` and `badblocks`. It enables SMART, checks device health, runs various SMART tests, and conducts a non-destructive write test.
## Prerequisites
Ensure the following dependencies are installed on your system:
- `smartctl` (part of the `smartmontools` package)
- `badblocks`
## Usage
```bash
./smartdrivecheck.sh <device>
```
- `<device>`: The block device to test (e.g., `/dev/sda`).
### Example
```bash
./smartdrivecheck.sh /dev/sda
```
## Script Workflow
1. **Dependency Check**
- Verifies that `smartctl` and `badblocks` are installed and executable.
2. **Device Validation**
- Ensures the specified device is a valid block device.
3. **Enable SMART**
- Enables SMART on the device if it is not already enabled.
4. **SMART Data Checks**
- Runs a series of checks on existing SMART data, including health status, error logs, and self-test logs.
5. **Polling Time Extraction**
- Extracts polling times for various SMART self-tests (short, extended, and conveyance).
6. **Self-Tests**
- Depending on available polling times, performs conveyance, short, or extended tests, waiting for their completion.
7. **Non-Destructive Write Test**
- Uses `badblocks` to perform a non-destructive write test on the device.
8. **Final Extended Test**
- If applicable, performs a final extended SMART test.
## Environment Variables
During execution, the script extracts the following variables based on device capabilities:
- `CONVEYANCE_SLEEP`: Estimated time (in minutes) for the conveyance test.
- `SHORT_SLEEP`: Estimated time (in minutes) for the short test.
- `EXTENDED_SLEEP`: Estimated time (in minutes) for the extended test.
## Notes
- **Non-Destructive Testing**: The script ensures that the write test is non-destructive, preserving existing data on the device.
- **SMART Compatibility**: This script assumes the device supports SMART. Ensure your device is compatible before running the script.
## Error Handling
- The script terminates if any critical error occurs during execution.
- Specific error messages will be printed to `stderr`.
## License
This script is open source and available under the AGPL License. See attached License.
## Disclaimer
Use this script at your own risk. Always back up your data before performing diagnostics or tests on storage devices.