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.9.tar.gz (38.0 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.9-py3-none-any.whl (38.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: remap_badblocks-0.9.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

Hashes for remap_badblocks-0.9.tar.gz
Algorithm Hash digest
SHA256 25dcf7b029236d0a4d63b20405d4e1c1a1a4fbeb0e56fab80d28ba5e1e093580
MD5 0690c95c15afd31f320b34676b38468f
BLAKE2b-256 5e8a1140c80a6faeccb02907ea27adfd41e502f638d3a8e901a0992fcea04968

See more details on using hashes here.

File details

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

File metadata

  • Download URL: remap_badblocks-0.9-py3-none-any.whl
  • Upload date:
  • Size: 38.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for remap_badblocks-0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 2a2bfccf4774914827ec098042ce3f39fbef5c6422011fc80836cfb8b3211efa
MD5 8425a270e1633e69e392af2b7d7f1999
BLAKE2b-256 574e5172d98284886613c27765e1720996b6407b8ef41f297ee5140692f3ee6c

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