]> git.ipfire.org Git - thirdparty/util-linux.git/blobdiff - misc-utils/lsblk.8
lsblk: allow to specify tree column
[thirdparty/util-linux.git] / misc-utils / lsblk.8
index 2f9c17f76777207d97ff5623c21ebe9affda6d02..07cd7a16fbbb1fdabde72cc9c39174bf939e9483 100644 (file)
-.\" -*- nroff -*-
-.TH LSBLK 8 "Apr 2010" "Version 1.0"
+.TH LSBLK 8 "February 2013" "util-linux" "System Administration"
 .SH NAME
 lsblk \- list block devices
 .SH SYNOPSIS
 .B lsblk
-.RB [ options ]
-.sp
-.B lsblk
-.RB [ options ]
-.IR device...
+[options]
+.RI [ device ...]
 .SH DESCRIPTION
 .B lsblk
-will list information about all or selected block devices. The
+lists information about all available or the specified block devices.  The
 .B lsblk
-command reads
-.I sysfs
-filesystem to gather information.
+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 the tree-like format
-by default. See
+The command prints all block devices (except RAM disks) in a tree-like format
+by default.  Use
 .B "lsblk --help"
-to get list of all available columns.
+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
+and
+.B \-\-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
-.IP "\fB\-a, \-\-all\fP"
-List all block devices.
-.IP "\fB\-b, \-\-bytes\fP"
-Print the SIZE column in bytes rather than in human readable format.
-.IP "\fB\-d, \-\-nodeps\fP"
-Don't print device holders or slaves. For example "lsblk --nodeps /dev/sda" prints
+.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 \-d , " \-\-nodeps"
+Do not print holder devices or slaves.  For example, \fBlsblk --nodeps /dev/sda\fR prints
 information about the sda device only.
-.IP "\fB\-e, \-\-exclude \fIlist\fP
-Exclude devices by comma delimited list of major device numbers. Note that RAM
-disks (major=1) are excluded by default.
-.IP "\fB\-f, \-\-fs\fP
-Output info about filesystems. This option is equivalent to -o NAME,FSTYPE,LABEL,MOUNTPOINT.
-The authoritative information about filesystems and raids are provided by
+.TP
+.BR \-E , " \-\-dedup " \fIcolumn\fP
+Use \fIcolumn\fP as a de-duplication key to de-duplicate output tree. If the
+key is not available for the device, or the device is a partition and parental
+whole-disk device provides the same key than the device is always printed.
+
+The usual use case is to de-duplicate output on system multi-path devices, for
+example by \fB\-E WWN\fR.
+.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.
-.IP "\fB\-h, \-\-help\fP"
-Print help and exit.
-.IP "\fB\-i, \-\-ascii\fP"
-Use ascii characters for tree formatting.
-.IP "\fB\-m, \-\-perms\fP
-Output info about device owner, group and mode. This option is equivalent to -o NAME,SIZE,OWNER,GROUP,MODE.
-.IP "\fB\-l, \-\-list\fP"
-Use the list output format.
-.IP "\fB\-n, \-\-noheadings\fP"
+.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. The output does not provide information
+about relationships between devices and since version 2.34 every device is
+printed only once.
+.TP
+.BR \-M , " \-\-merge"
+Group parents of sub-trees to provide more readable output for RAIDs and
+Multi-path devices. The tree-like output is required.
+.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.
-.IP "\fB\-o, \-\-output \fIlist\fP"
-Define output columns.  Use
-.B "--help"
-to get list of all supported columns.
-.IP "\fB\-r, \-\-raw\fP"
-Use raw output format.
-.IP "\fB\-t, \-\-topology\fP"
-Output info about block device topology. This option is equivalent to -o NAME,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,ROTA,SCHED.
+.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 , " \-\-tree" [ =\fIcolumn ]
+Force tree-like output format.  If \fIcolumn\fP is specified, then a tree is printed in the column.
+The default is NAME column.
+.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 \-z , " \-\-zoned"
+Print the zone model for each device.
+.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 findmnt (8),
+.BR ls (1),
 .BR blkid (8),
-.BR ls (1)
+.BR findmnt (8)
 .SH AVAILABILITY
 The lsblk command is part of the util-linux package and is available from
-ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
+https://www.kernel.org/pub/linux/utils/util-linux/.