.TH LSBLK 8 "February 2013" "util-linux" "System Administration"
.SH NAME
lsblk \- list block devices
.SH SYNOPSIS
.B lsblk
[options]
.RI [ device ...]
.SH DESCRIPTION
.B lsblk
lists information about all available or the specified block devices.  The
.B lsblk
command reads the
.B sysfs
filesystem and
.B udev db
to gather information. If the udev db is not available or lsblk is compiled without udev support than it
tries to read LABELs, UUIDs and filesystem types from the block device. In this case root permissions
are necessary.
.PP
The command prints all block devices (except RAM disks) in a tree-like format
by default.  Use
.B "lsblk --help"
to get a list of all available columns.
.PP
The default output, as well as the default output from options like
.B \-\-fs
and
.BR \-\-topology ,
is subject to change.  So whenever possible, you should avoid using default
outputs in your scripts.  Always explicitly define expected columns by using
.B \-\-output
.I columns-list
in environments where a stable output is required.
.PP
Note that
.B lsblk
might be executed in time when
.B udev
does not have all information about recently added or modified devices yet. In this
case it is recommended to use
.B "udevadm settle"
before lsblk to synchronize with udev.
.SH OPTIONS
.TP
.BR \-a , " \-\-all"
Also list empty devices and RAM disk devices.
.TP
.BR \-b , " \-\-bytes"
Print the SIZE column in bytes rather than in a human-readable format.
.TP
.BR \-D , " \-\-discard"
Print information about the discarding capabilities (TRIM, UNMAP) for each device.
.TP
.BR \-z , " \-\-zoned"
Print the zone model for each device.
.TP
.BR \-d , " \-\-nodeps"
Do not print holder devices or slaves.  For example, \fBlsblk --nodeps /dev/sda\fR prints
information about the sda device only.
.TP
.BR \-e , " \-\-exclude " \fIlist\fP
Exclude the devices specified by the comma-separated \fIlist\fR of major device numbers.
Note that RAM disks (major=1) are excluded by default if \fB\-\-all\fR is no specified.
The filter is applied to the top-level devices only. This maybe be confusing for
\fB\-\-list\fR output format where hierarchy of the devices is not obvious.
.TP
.BR \-f , " \-\-fs"
Output info about filesystems.  This option is equivalent to
.BR -o\ NAME,FSTYPE,LABEL,UUID,MOUNTPOINT .
The authoritative information about filesystems and raids is provided by the
.BR blkid (8)
command.
.TP
.BR \-h , " \-\-help"
Display help text and exit.
.TP
.BR \-I , " \-\-include " \fIlist\fP
Include devices specified by the comma-separated \fIlist\fR of major device numbers.
The filter is applied to the top-level devices only. This maybe be confusing for
\fB\-\-list\fR output format where hierarchy of the devices is not obvious.
.TP
.BR \-i , " \-\-ascii"
Use ASCII characters for tree formatting.
.TP
.BR \-J , " \-\-json"
Use JSON output format.
.TP
.BR \-l , " \-\-list"
Produce output in the form of a list.
.TP
.BR \-m , " \-\-perms"
Output info about device owner, group and mode.  This option is equivalent to
.BR -o\ NAME,SIZE,OWNER,GROUP,MODE .
.TP
.BR \-n , " \-\-noheadings"
Do not print a header line.
.TP
.BR \-o , " \-\-output " \fIlist\fP
Specify which output columns to print.  Use
.B \-\-help
to get a list of all supported columns.

The default list of columns may be extended if \fIlist\fP is
specified in the format \fI+list\fP (e.g. \fBlsblk -o +UUID\fP).
.TP
.BR \-O , " \-\-output\-all "
Output all available columns.
.TP
.BR \-P , " \-\-pairs"
Produce output in the form of key="value" pairs.
All potentially unsafe characters are hex-escaped (\\x<code>).
.TP
.BR \-p , " \-\-paths"
Print full device paths.
.TP
.BR \-r , " \-\-raw"
Produce output in raw format.  All potentially unsafe characters are hex-escaped
(\\x<code>) in the NAME, KNAME, LABEL, PARTLABEL and MOUNTPOINT columns.
.TP
.BR \-S , " \-\-scsi"
Output info about SCSI devices only.  All partitions, slaves and holder devices are ignored.
.TP
.BR \-s , " \-\-inverse"
Print dependencies in inverse order. If the \fB\-\-list\fR output is requested then
the lines are still ordered by dependencies.
.TP
.BR \-t , " \-\-topology"
Output info about block-device topology.
This option is equivalent to
.BR -o\ NAME,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,ROTA,SCHED,RQ-SIZE,RA,WSAME .
.TP
.BR \-V , " \-\-version"
Display version information and exit.
.TP
.BR \-x , " \-\-sort " \fIcolumn\fP
Sort output lines by \fIcolumn\fP. This option enables \fB\-\-list\fR output format by default.
It is possible to use the option \fI\-\-tree\fP to force tree-like output and
than the tree branches are sorted by the \fIcolumn\fP.
.TP
.BR " \-\-sysroot " \fIdirectory\fP
Gather data for a Linux instance other than the instance from which the lsblk
command is issued.  The specified directory is the system root of the Linux
instance to be inspected.  This option is designed for the testing purpose.

.SH NOTES
For partitions, some information (e.g. queue attributes) is inherited from the
parent device.
.PP
The
.B lsblk
command needs to be able to look up each block device by major:minor numbers,
which is done by using
.IR /sys/dev/block .
This sysfs block directory appeared in kernel 2.6.27 (October 2008).
In case of problems with a new enough kernel, check that CONFIG_SYSFS
was enabled at the time of the kernel build.

.SH RETURN CODES
.IP 0
success
.IP 1
failure
.IP 32
none of specified devices found
.IP 64
some specified devices found, some not found

.SH AUTHORS
.nf
Milan Broz <mbroz@redhat.com>
Karel Zak <kzak@redhat.com>
.fi
.SH ENVIRONMENT
.IP LSBLK_DEBUG=all
enables lsblk debug output.
.IP LIBBLKID_DEBUG=all
enables libblkid debug output.
.IP LIBMOUNT_DEBUG=all
enables libmount debug output.
.IP LIBSMARTCOLS_DEBUG=all
enables libsmartcols debug output.
.IP LIBSMARTCOLS_DEBUG_PADDING=on
use visible padding characters. Requires enabled LIBSMARTCOLS_DEBUG.
.SH SEE ALSO
.BR ls (1),
.BR blkid (8),
.BR findmnt (8)
.SH AVAILABILITY
The lsblk command is part of the util-linux package and is available from
https://www.kernel.org/pub/linux/utils/util-linux/.
