summaryrefslogtreecommitdiffstats
path: root/system/bbf/bbf.8
diff options
context:
space:
mode:
Diffstat (limited to 'system/bbf/bbf.8')
-rw-r--r--system/bbf/bbf.8416
1 files changed, 416 insertions, 0 deletions
diff --git a/system/bbf/bbf.8 b/system/bbf/bbf.8
new file mode 100644
index 0000000000..b523dfb2e6
--- /dev/null
+++ b/system/bbf/bbf.8
@@ -0,0 +1,416 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "BBF" 8 "2023-03-27" "20220524_0e90e04" "SlackBuilds.org"
+.SH NAME
+bbf \- bad block finder
+.\" RST source for bbf(1) man page. Convert with:
+.
+.\" rst2man.py bbf.rst > bbf.8
+.
+.SH SYNOPSIS
+.sp
+bbf [\fIoptions\fP] \fIinstruction\fP \fIpath\fP
+.SH DESCRIPTION
+.sp
+\fBbbf\fP is a safer and more featureful tool for dealing with bad
+blocks on hard drives. It\(aqs 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\(aqt technically bad, but is causing issues.
+.SH FEATURES
+.INDENT 0.0
+.INDENT 3.5
+.INDENT 0.0
+.IP \(bu 2
+readonly scanning of bad blocks
+.IP \(bu 2
+safe \(aqfix\(aq mode which won\(aqt overwrite good blocks
+.IP \(bu 2
+burnin mode for checking new drives
+.IP \(bu 2
+manual marking blocks as corrupted
+.IP \(bu 2
+find files given list of blocks
+.IP \(bu 2
+dump list of files and associated block ranges
+.IP \(bu 2
+dump list of blocks used by a file
+.IP \(bu 2
+issue secure drive erasure
+.IP \(bu 2
+filesystem stressing
+.UNINDENT
+.UNINDENT
+.UNINDENT
+.SH OPTIONS
+.SS Arguments
+.INDENT 0.0
+.TP
+.B \-f\fP,\fB \-\-force
+override checking if drive is in use when trying to perform destructive actions
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-t, \-\-rwtype \fIos|ata\fP
+select between OS or ATA reads and writes (default: os)
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-q\fP,\fB \-\-quiet
+redirects stdout to /dev/null or otherwise limits output
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-s, \-\-start\-block \fIlba\fP
+block to start from (default: 0)
+.TP
+.B \-e, \-\-end\-block \fIlba\fP
+block to stop at (default: last block)
+.TP
+.B \-S, \-\-stepping \fIn\fP
+number of logical blocks to read at a time (default: physical / logical)
+.TP
+.B \-o, \-\-output \fIfile\fP
+file to write bad block list to (default: $HOME/badblocks.*captcha*)
+.TP
+.B \-i, \-\-input \fIfile\fP
+file to read bad block list from (default: $HOME/badblocks.*captcha*)
+.TP
+.B \-r, \-\-retries \fIcount\fP
+number of retries on certain reads & writes
+.TP
+.B \-c, \-\-captcha \fIcaptcha\fP
+needed when performing destructive operations
+.TP
+.B \-M, \-\-maxerrors \fIn\fP
+max r/w errors before exiting (default: 1024)
+.UNINDENT
+.SS Instructions
+.sp
+\fBinfo\fP
+.INDENT 0.0
+.INDENT 3.5
+\fIpath\fP is a block device. Prints out details about the block device.
+.UNINDENT
+.UNINDENT
+.sp
+\fBcaptcha\fP
+.INDENT 0.0
+.INDENT 3.5
+\fIpath\fP is a block device. Prints out captcha needed for certain instructions.
+.UNINDENT
+.UNINDENT
+.sp
+\fBscan\fP
+.INDENT 0.0
+.INDENT 3.5
+\fIpath\fP is a block device. A read\-only scan of the block device for
+bad blocks. \fIrwtype=ata\fP will be slower but may catch more.
+.sp
+Relevant options: rwtype, start block, end block, stepping, max errors, input file, output file.
+.UNINDENT
+.UNINDENT
+.sp
+\fBfix\fP
+.INDENT 0.0
+.INDENT 3.5
+\fIpath\fP 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
+\(aqfixed\(aq aren\(aqt in fact damaged.
+.UNINDENT
+.UNINDENT
+.sp
+\fIrwtype=ata\fP will work better.
+.INDENT 0.0
+.INDENT 3.5
+Requires captcha.
+.sp
+Relevant options: captcha, rwtype, force, input file.
+.UNINDENT
+.UNINDENT
+.sp
+\fBfix\-file\fP
+.INDENT 0.0
+.INDENT 3.5
+\fIpath\fP 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.
+.sp
+\fIrwtype=ata\fP will work better.
+.sp
+Requires captcha.
+.sp
+Relevant options: captcha, rwtype, retries.
+.UNINDENT
+.UNINDENT
+.sp
+\fBburnin\fP
+.INDENT 0.0
+.INDENT 3.5
+\fIpath\fP is a block device. Iterates through the blocks of the device performing the following:
+.INDENT 0.0
+.INDENT 3.5
+.INDENT 0.0
+.IP 1. 3
+Read block data (zero out on failure)
+.IP 2. 3
+Write 0x00\(aqs and read back to confirm data integrity.
+.IP 3. 3
+Write 0x55\(aqs and read back to confirm data integrity.
+.IP 4. 3
+Write 0xAA\(aqs and read back to confirm data integrity.
+.IP 5. 3
+Write 0xFF\(aqs and read back to confirm data integrity.
+.IP 6. 3
+Write back originally read data.
+.UNINDENT
+.UNINDENT
+.UNINDENT
+.sp
+Requires captcha.
+.sp
+Relevant options: rwtype, start block, end block, stepping, max
+errors, retries, input file, output file.
+.UNINDENT
+.UNINDENT
+.sp
+\fBfsthrash\fP
+.INDENT 0.0
+.INDENT 3.5
+\fIpath\fP 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.
+.sp
+Use \fI\-\-quiet\fP to keep it from printing out what it is doing and improve performance.
+.UNINDENT
+.UNINDENT
+.sp
+\fBfilethrash\fP
+.INDENT 0.0
+.INDENT 3.5
+\fIpath\fP 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.
+.UNINDENT
+.UNINDENT
+.sp
+\fBfind\-files\fP
+.INDENT 0.0
+.INDENT 3.5
+\fIpath\fP is a filesystem mount point. Attempts to find the
+files associated with any blocks listed in the bad block input
+file. Useful after running \fIscan\fP to find the files with bad blocks.
+.sp
+Relevant options: input file.
+.UNINDENT
+.UNINDENT
+.sp
+\fBdump\-files\fP
+.INDENT 0.0
+.INDENT 3.5
+\fIpath\fP is a filesystem. Scans the filesystem and dumps a list of the files with the blocks on the device it occupies.
+.UNINDENT
+.UNINDENT
+.sp
+\fBfile\-blocks\fP
+.INDENT 0.0
+.INDENT 3.5
+\fIpath\fP is an existing file. Prints out a list of all logical blocks the file uses.
+.UNINDENT
+.UNINDENT
+.sp
+\fBwrite\-pseudo\-uncorrectable\-wl\fP
+.sp
+\fBwrite\-pseudo\-uncorrectable\-wol\fP
+.sp
+\fBwrite\-flagged\-uncorrectable\-wl\fP
+.sp
+\fBwrite\-flagged\-uncorrectable\-wol\fP
+.INDENT 0.0
+.INDENT 3.5
+\fIpath\fP is a block device. Marks blocks listed in the bad block input
+file as \(aqpseudo\(aq or \(aqflagged\(aq uncorrectable. Blocks marked \(aqpseudo\(aq,
+when read, cause the drive to perform normal error recovery and
+return errors if necessary. Blocks marked \(aqflagged\(aq, when read,
+will simply return errors indicating it is bad. \(aqwl\(aq means \(aqwith
+logging\(aq and if read will result in failed reads being stored in
+SMART logs. \(aqwol\(aq means \(aqwithout logging\(aq and will not log any read
+failures in the SMART log.
+.sp
+Relevant options: input file.
+.UNINDENT
+.UNINDENT
+.sp
+\fBsecurity\-erase\fP
+.INDENT 0.0
+.INDENT 3.5
+\fIpath\fP 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.
+.sp
+Requires captcha.
+.sp
+Relevant options: captcha.
+.UNINDENT
+.UNINDENT
+.sp
+\fBenhanced\-security\-erase\fP
+.INDENT 0.0
+.INDENT 3.5
+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.
+.sp
+Requires captcha.
+.sp
+Relevant options: captcha.
+.UNINDENT
+.UNINDENT
+.SH EXAMPLES
+.nf
+# bbf info /dev/sdb
+/dev/sdi:
+.in +2
+\- serial_number: XXXXXXXX
+\- firmware_revision: SC61
+\- model_number: ST8000VN0022\-2EL112
+\- RPM: 7200
+\- features:
+.in +2
+\- 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
+.in -2
+\- block_size:
+.in +2
+\- physical: 4096
+\- logical: 512
+\- stepping: 8
+.in -2
+\- block_count:
+.in +2
+\- physical: 1953506646
+\- logical: 15628053168
+.in -2
+\- size:
+.in +2
+\- bytes: 8001563222016
+\- human:
+.in +2
+\- base2: 7.28TB
+\- base10: 8.00TiB
+
+.in -2
+.in -2
+.in -2
+.fi
+.sp
+.nf
+# 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
+
+.fi
+.sp
+.nf
+# bbf captcha /dev/sdb
+Z8400VR0
+
+.fi
+.sp
+.nf
+# bbf \-i ~/badblocks.Z8400VR0 \-c Z8400VR0 fix /dev/sdb
+
+.fi
+.sp
+.nf
+# bbf \-q fsthrash /mnt/mydrive0
+CTRL\-C to exit...
+^CCleaning up...
+
+.fi
+.sp
+.nf
+# 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...
+.fi
+.sp
+.SH COPYRIGHT
+.sp
+See the file /usr/doc/bbf\-20220524_0e90e04/LICENSE for license information.
+.SH AUTHORS
+.sp
+\fBbbf\fP was written by Antonio SJ Musumeci <\fI\%trapexit@spawn.link\fP>.
+.sp
+This man page created for the SlackBuilds.org project by
+B. Watson. Since it\(aqs just copy/pasted from README.md, the man page is
+licensed the same as \fBbbf\fP itself.
+.SH SEE ALSO
+.sp
+\fBbadblocks\fP(8), \fBsmartctl\fP(8), \fBfsck\fP(8)
+.sp
+The \fBbbf\fP homepage: \fI\%https://github.com/trapexit/bbf\fP
+.\" Generated by docutils manpage writer.
+.