Skip to main content

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 badblocks to identify damaged sectors
  • Creates a device-mapper target 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

Acknowledgements & Related Tools

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

remap_badblocks-0.10.1.tar.gz (38.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

remap_badblocks-0.10.1-py3-none-any.whl (39.9 kB view details)

Uploaded Python 3

File details

Details for the file remap_badblocks-0.10.1.tar.gz.

File metadata

  • Download URL: remap_badblocks-0.10.1.tar.gz
  • Upload date:
  • Size: 38.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for remap_badblocks-0.10.1.tar.gz
Algorithm Hash digest
SHA256 f0dcbdf3bf4f65ce634d3f8c4ddcd1a8df5a366c5e23f219a72ecd9ebc9064e6
MD5 368830c4deb73f1d01b353e19ae08651
BLAKE2b-256 789d1d4af915dc321a8c311b2040687879d1d051c427df642b0ad220de0887b8

See more details on using hashes here.

File details

Details for the file remap_badblocks-0.10.1-py3-none-any.whl.

File metadata

File hashes

Hashes for remap_badblocks-0.10.1-py3-none-any.whl
Algorithm Hash digest
SHA256 24ae09368c06b7cbb9f55b6eecd78cd88473740fed4720bcac2101d83c1d9b2e
MD5 8c505dc14f0067f5589f70cba92f32ca
BLAKE2b-256 d58be91fdd091502e9d4cdb6cab034a318e76c322f443e8a0d8261d92c053a53

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page