llverdev(8)

NAME
llverdev - verify a block device is functioning properly over its full size

SYNOPSIS
llverdev [-c chunksize] [-f] [-h] [-o offset_kb] [-l] [-p] [-r] [-s size_mb] [-t timestamp] [-v] [-w] device

DESCRIPTION
Sometimes kernel drivers or hardware devices have bugs that prevent them from accessing the full device size correctly, or possibly have bad sectors on disk or other problems which prevent proper data storage. There are often defects associated with major system boundaries such as 2^32 bytes, 2^31 sectors, 2^31 blocks, 2^32 blocks, etc.

The llverdev tool will write and verify a unique test pattern across the entire device in order to ensure that not only is data accessible after it was written, but also that data written to one part of the disk is not overwriting data on another part of the disk.

It is expected that llverdev tool will be run on large size devices (TB), so it is always better to run llverdev tool in verbose mode, so that one can easily restart device testing from the point at which it had stopped.

Running a full verification can be time consuming for very large devices, so it is advisable to start with a partial verification to ensure the device is minimally sane before investing the time in a full verification.

OPTIONS

-c|--chunksize chunk_mb
    IO chunk size in megabytes (default=1), with optional KMG suffix.

-f|--force
    force test to run without confirmation that the device will be overwritten and all data therein will be permanently destroyed.

-h|--help
    display a brief help message.

-l|--long
    Run a full check, writing and then reading and verifying every block on the disk.

-o|--offset offset_kb
    offset of IO start in kilobytes (default=0), with optional KMGTP suffix.

-p|--partial
    Run a partial check, only doing periodic checks across the device (1GB steps).

-r|--read
    Run test in read (verify) mode only, after having run the test in -w mode previously.

-s|--size size_mb
    device or file size in megabytes to use for the test, with optional KMGTP suffix. If unspecified, use the actual device or file size (or write until an error is hit if 0).

-t|--timestamp timestamp
    Set test start time as printed at the start of a previously interrupted test to ensure that the validation data is the same across the whole filesystem (default=current time())

-v|--verbose
    Run test in verbose mode, listing each read and write operation.

-w|--write
    Run test in write (test-pattern) mode (default run both read and write)

EXAMPLES

Run a partial device verification on /dev/sda:
    llverdev -v -p /dev/sda
    llverdev: permanently overwrite all data on /dev/sda (yes/no)? y
    llverdev: /dev/sda is 4398046511104 bytes (4096.0 GB) in size
    Timestamp: 1009839028
    Current write offset: 4096 kB

Continue an interrupted verification at offset 4096kB from the start of the device, using the same timestamp as the previous run:
    llverdev -f -v -p --offset=4096 --timestamp=1009839028 /dev/sda
    llverdev: /dev/sda is 4398046511104 bytes (4096.0 GB) in size
    Timestamp: 1009839028
    write complete
    read complete

SEE ALSO
llverfs(8)