CLI tool for remapping bad sectors on Linux disks using device-mapper
Project description
remap-badblocks
remap-badblocks is a Linux CLI tool written in Python that scans a block device for bad sectors and creates a device-mapper target that skips over them. It can also reserve extra space to dynamically remap future badblocks.
It's a simple way to extend the usefulness of slightly damaged drives, ideal for anyone who wants to avoid discarding a disk due to a few bad sectors.
Features
- Scans disks using
badblocksto identify damaged sectors - Creates a
device-mappertarget that avoids bad sectors - Reserves spare sectors for dynamic remapping
- Supports using only part of a device (e.g., for hard partitioning or isolation)
Installation
From PyPI
pip install remap-badblocks
From source
git clone https://gitlab.com/Luigi-98/remap-badblocks.git
cd remap-badblocks
pip install -e .[dev]
Usage
Database
remap-badblocks relies on a single source of stateful storage: a SQLite database. By default, it is stored at /etc/remap_badblocks/devices_config.db, but you can specify an alternative location using the -P option.
Device Identification
Devices can be referenced by either:
- Name: set at creation, used as the name of the output device-mapper
- ID: an internal remap-badblocks identifier
CLI Reference
remap-badblocks --help
Example Workflow
# Add a new device
remap-badblocks add my_remapped_device --path /dev/sda
# Run a read-mode scan and initialize the mapping
# by reserving spare space
remap-badblocks update --name my_remapped_device --mode read --spare-space 100MB
# Apply changes to generate the device-mapper
remap-badblocks apply
# Resulting device appears under /dev/mapper
ls /dev/mapper/
# /dev/mapper/my_remapped_device
Contributing
We welcome feedback, bug reports, feature ideas, code contributions, and help shaping the roadmap — or even rethinking the project from the ground up.
Start with CONTRIBUTING.md, then open an issue or submit a merge request to get involved.
License
GPL v3 License — see LICENSE for details.
Community
- GitLab: remap-badblocks project page
- PyPI: remap-badblocks
- Issues: remap-badblocks Gitlab issues
Acknowledgements & Related Tools
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file remap_badblocks-0.9.1.tar.gz.
File metadata
- Download URL: remap_badblocks-0.9.1.tar.gz
- Upload date:
- Size: 38.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4fab1991ecf40cab7b65b626f30c45fbe694bb1efb88c3a90ce16a9a4e377728
|
|
| MD5 |
32be6b167a5c45a478df045b2fee9034
|
|
| BLAKE2b-256 |
a87cd817b9b64427b9315d83eeb05807c0749a16aa80f20c5a77f271c7b4b5c6
|
File details
Details for the file remap_badblocks-0.9.1-py3-none-any.whl.
File metadata
- Download URL: remap_badblocks-0.9.1-py3-none-any.whl
- Upload date:
- Size: 38.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
117a66d5cc7f04f1b5ca310650b6eac388172dac700a3657dcbbd2450d27f911
|
|
| MD5 |
389efb4b72fd1a8045dad2ebe401e3d8
|
|
| BLAKE2b-256 |
d94a5aeadc177e14dac915f381382f2153edf36a2d2cc0200ebba9c410ec6b30
|