summaryrefslogtreecommitdiffstats
path: root/system/bbf/bbf.rst
diff options
context:
space:
mode:
Diffstat (limited to 'system/bbf/bbf.rst')
-rw-r--r--system/bbf/bbf.rst320
1 files changed, 320 insertions, 0 deletions
diff --git a/system/bbf/bbf.rst b/system/bbf/bbf.rst
new file mode 100644
index 0000000000..20a7a1d3a8
--- /dev/null
+++ b/system/bbf/bbf.rst
@@ -0,0 +1,320 @@
+.. RST source for bbf(1) man page. Convert with:
+.. rst2man.py bbf.rst > bbf.8
+
+.. |version| replace:: 20220524_0e90e04
+.. |date| date::
+
+===
+bbf
+===
+
+----------------
+bad block finder
+----------------
+
+:Manual section: 8
+:Manual group: SlackBuilds.org
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+bbf [*options*] *instruction* *path*
+
+DESCRIPTION
+===========
+
+**bbf** is a safer and more featureful tool for dealing with bad
+blocks on hard drives. It's built around the workflow of dealing with
+hard drive bad blocks. It has a number of features to limit risk in
+using the tool and provides features to more easily track down what
+files are affected by the bad blocks found. It also gives you the
+ability to manually mark blocks as corrupted in cases where a block
+isn't technically bad, but is causing issues.
+
+FEATURES
+========
+
+ * readonly scanning of bad blocks
+ * safe 'fix' mode which won't overwrite good blocks
+ * burnin mode for checking new drives
+ * manual marking blocks as corrupted
+ * find files given list of blocks
+ * dump list of files and associated block ranges
+ * dump list of blocks used by a file
+ * issue secure drive erasure
+ * filesystem stressing
+
+
+OPTIONS
+=======
+
+Arguments
+---------
+
+-f, --force
+ override checking if drive is in use when trying to perform destructive actions
+
+-t, --rwtype *os|ata*
+ select between OS or ATA reads and writes (default: os)
+
+-q, --quiet
+ redirects stdout to /dev/null or otherwise limits output
+
+-s, --start-block *lba*
+ block to start from (default: 0)
+
+-e, --end-block *lba*
+ block to stop at (default: last block)
+
+-S, --stepping *n*
+ number of logical blocks to read at a time (default: physical / logical)
+
+-o, --output *file*
+ file to write bad block list to (default: $HOME/badblocks.*captcha*)
+
+-i, --input *file*
+ file to read bad block list from (default: $HOME/badblocks.*captcha*)
+
+-r, --retries *count*
+ number of retries on certain reads & writes
+
+-c, --captcha *captcha*
+ needed when performing destructive operations
+
+-M, --maxerrors *n*
+ max r/w errors before exiting (default: 1024)
+
+Instructions
+------------
+
+**info**
+
+ *path* is a block device. Prints out details about the block device.
+
+**captcha**
+
+ *path* is a block device. Prints out captcha needed for certain instructions.
+
+**scan**
+
+ *path* is a block device. A read-only scan of the block device for
+ bad blocks. *rwtype=ata* will be slower but may catch more.
+
+ Relevant options: rwtype, start block, end block, stepping, max errors, input file, output file.
+
+**fix**
+
+ *path* is a block device. Writes to bad blocks in an attempt to
+ force the drive to reallocate the block. Attempts to read the block
+ first and will write the read data if successful otherwise it will
+ write zeros. This means it is pretty safe to use even if the blocks
+ 'fixed' aren't in fact damaged.
+
+*rwtype=ata* will work better.
+
+ Requires captcha.
+
+ Relevant options: captcha, rwtype, force, input file.
+
+**fix-file**
+
+ *path* is a file. Gets the list of blocks that a file uses and then
+ goes through each block reading what is there and then writing it
+ back which will force reallocation if a block is bad.
+
+ *rwtype=ata* will work better.
+
+ Requires captcha.
+
+ Relevant options: captcha, rwtype, retries.
+
+**burnin**
+
+ *path* is a block device. Iterates through the blocks of the device performing the following:
+
+ 1) Read block data (zero out on failure)
+
+ 2) Write 0x00's and read back to confirm data integrity.
+
+ 3) Write 0x55's and read back to confirm data integrity.
+
+ 4) Write 0xAA's and read back to confirm data integrity.
+
+ 5) Write 0xFF's and read back to confirm data integrity.
+
+ 6) Write back originally read data.
+
+ Requires captcha.
+
+ Relevant options: rwtype, start block, end block, stepping, max
+ errors, retries, input file, output file.
+
+**fsthrash**
+
+ *path* is a directory. Spawns a number of threads to hammer the
+ filesystem using a number of functions to stress the filesystem and
+ underlying device. Functions include: create, open, mkdir, unlink,
+ rmdir, write, read, close, readdir, stat, chmod, chown, link,
+ symlink. Cleans up after itself on exit but does consume storage and
+ inodes as it runs.
+
+ Use *--quiet* to keep it from printing out what it is doing and improve performance.
+
+**filethrash**
+
+ *path* is a non-existent file. Creates a file, expands it to fill
+ up the rest of the filesystem, and spawns a thread per core which
+ writes 1MB blocks to the file at random offsets to stress the
+ filesystem and unerlying device.
+
+**find-files**
+
+ *path* is a filesystem mount point. Attempts to find the
+ files associated with any blocks listed in the bad block input
+ file. Useful after running *scan* to find the files with bad blocks.
+
+ Relevant options: input file.
+
+**dump-files**
+
+ *path* is a filesystem. Scans the filesystem and dumps a list of the files with the blocks on the device it occupies.
+
+**file-blocks**
+
+ *path* is an existing file. Prints out a list of all logical blocks the file uses.
+
+**write-pseudo-uncorrectable-wl**
+
+**write-pseudo-uncorrectable-wol**
+
+**write-flagged-uncorrectable-wl**
+
+**write-flagged-uncorrectable-wol**
+
+ *path* is a block device. Marks blocks listed in the bad block input
+ file as 'pseudo' or 'flagged' uncorrectable. Blocks marked 'pseudo',
+ when read, cause the drive to perform normal error recovery and
+ return errors if necessary. Blocks marked 'flagged', when read,
+ will simply return errors indicating it is bad. 'wl' means 'with
+ logging' and if read will result in failed reads being stored in
+ SMART logs. 'wol' means 'without logging' and will not log any read
+ failures in the SMART log.
+
+ Relevant options: input file.
+
+**security-erase**
+
+ *path* is a block device. Issues an ATA Security Erase command to
+ the device. What this means specifically is device specific but
+ generally it is supposed to be like a low-level format. Use with
+ care.
+
+ Requires captcha.
+
+ Relevant options: captcha.
+
+**enhanced-security-erase**
+
+ Theoretically a more thorough version of the standard ATA Security
+ Erase command. Similarly its function depends on the device and may
+ be the same as the regular security erase.
+
+ Requires captcha.
+
+ Relevant options: captcha.
+
+EXAMPLES
+========
+
+| # bbf info /dev/sdb
+| /dev/sdi:
+| - serial_number: XXXXXXXX
+| - firmware_revision: SC61
+| - model_number: ST8000VN0022-2EL112
+| - RPM: 7200
+| - features:
+| - form_factor: 3.5"
+| - write_uncorrectable: 1
+| - smart_supported: 1
+| - smart_enabled: 1
+| - security_supported: 1
+| - security_enabled: 0
+| - security_locked: 0
+| - security_frozen: 0
+| - security_count_expired: 0
+| - security_enhanced_erase_supported: 1
+| - security_normal_erase_time: 698
+| - security_enhanced_erase_time: 698
+| - block_erase: 0
+| - overwrite: 1
+| - crypto_scramble: 0
+| - sanitize: 1
+| - supports_sata_gen1: 1
+| - supports_sata_gen2: 1
+| - supports_sata_gen3: 1
+| - trim_supported: 0
+| - block_size:
+| - physical: 4096
+| - logical: 512
+| - stepping: 8
+| - block_count:
+| - physical: 1953506646
+| - logical: 15628053168
+| - size:
+| - bytes: 8001563222016
+| - human:
+| - base2: 7.28TB
+| - base10: 8.00TiB
+|
+
+| # bbf -S 256 -t ata scan /dev/sdb
+| start block: 0
+| end block: 15628053168
+| stepping: 256
+| logical block size: 512
+| physical block size: 4096
+| read size: 131072
+| Scanning: 0 - 15628053168
+| Current: 2425512192 (15.52%); bps: 179384.74; eta: 20:26:39; bad: 0
+|
+
+| # bbf captcha /dev/sdb
+| Z8400VR0
+|
+
+| # bbf -i ~/badblocks.Z8400VR0 -c Z8400VR0 fix /dev/sdb
+|
+
+| # bbf -q fsthrash /mnt/mydrive0
+| CTRL-C to exit...
+| ^CCleaning up...
+|
+
+| # bbf filethrash /mnt/mydrive0/test
+| Creating file: /mnt/mydrive0/test
+| Expanding file to fill drive: 200209731584 bytes
+| Spawning thrashing threads: 4 (one per core)
+| CTRL-C to exit...
+
+COPYRIGHT
+=========
+
+See the file /usr/doc/bbf-|version|/LICENSE for license information.
+
+AUTHORS
+=======
+
+**bbf** was written by Antonio SJ Musumeci <trapexit@spawn.link>.
+
+This man page created for the SlackBuilds.org project by
+B. Watson. Since it's just copy/pasted from README.md, the man page is
+licensed the same as **bbf** itself.
+
+SEE ALSO
+========
+
+**badblocks**\(8), **smartctl**\(8), **fsck**\(8)
+
+The **bbf** homepage: https://github.com/trapexit/bbf