The blkid program is the command-line interface to working with the
libblkid(3) library. It can determine the type of content (e.g.,
filesystem or swap) that a block device holds, and also the attributes
(tokens, NAME=value pairs) from the content metadata (e.g., LABEL or UUID
It is recommended to use lsblk(8) command to get
information about block devices, or lsblk --fs to get an overview of
filesystems, or findmnt(8) to search in already mounted
lsblk(8) provides more information, better control on
output formatting, easy to use in scripts and it does not require root
permissions to get actual information. blkid reads information
directly from devices and for non-root users it returns cached unverified
information. blkid is mostly designed for system services and to test
When device is specified, tokens from only this device are
displayed. It is possible to specify multiple device arguments on the
command line. If none is given, all partitions or unpartitioned devices
which appear in /proc/partitions are shown, if they are
blkid has two main forms of operation: either searching for
a device with a specific NAME=value pair, or displaying NAME=value pairs for
one or more specified devices.
For security reasons blkid silently ignores all devices
where the probing result is ambivalent (multiple colliding filesystems are
detected). The low-level probing mode (-p) provides more information
and extra exit status in this case. It’s recommended to use
wipefs(8) to get a detailed overview and to erase obsolete stuff
(magic strings) from the device.
The size and offset arguments may be followed by the
multiplicative suffixes like KiB (=1024), MiB (=1024*1024), and so on for GiB,
TiB, PiB, EiB, ZiB and YiB (the "iB" is optional, e.g.,
"K" has the same meaning as "KiB"), or the suffixes KB
(=1000), MB (=1000*1000), and so on for GB, TB, PB, EB, ZB and YB.
-c, --cache-file cachefile
Read from cachefile instead of reading from the
default cache file (see the CONFIGURATION FILE section for more details). If
you want to start with a clean cache (i.e., don’t report devices
previously scanned but not necessarily available at this time), specify
Don’t encode non-printing characters. The
non-printing characters are encoded by ^ and M- notation by default. Note that
the --output udev output format uses a different encoding which cannot
Don’t print information (PART_ENTRY_* tags) from
partition table in low-level probing mode.
Perform a garbage collection pass on the blkid cache to
remove devices which no longer exist.
Display a usage message and exit.
-H, --hint setting
Set probing hint. The hints are optional way how to force
probing functions to check for example another location. The currently
supported is "session_offset=number" to set session offset on
Display information about I/O Limits (aka I/O topology).
The 'export' output format is automatically enabled. This option can be used
together with the --probe option.
List all known filesystems and RAIDs and exit.
Look up only one device that matches the search parameter
specified with the --match-token
option. If there are multiple devices
that match the specified search parameter, then the device with the highest
priority is returned, and/or the first device found at a given priority (but
see below note about udev). Device types in order of decreasing priority are:
Device Mapper, EVMS, LVM, MD, and finally regular block devices. If this
option is not specified, blkid
will print all of the devices that match
the search parameter.
This option forces blkid to use udev when used for LABEL or
UUID tokens in --match-token. The goal is to provide output
consistent with other utils (like mount(8), etc.) on systems where
the same tag is used for multiple devices.
-L, --label label
Look up the device that uses this filesystem
; this is equal to --list-one --output device --match-token
. This lookup method is able to reliably use
/dev/disk/by-label udev symlinks (dependent on a setting in
). Avoid using the symlinks directly; it is not reliable
to use the symlinks without verification. The --label
option works on
systems with and without udev.
Unfortunately, the original blkid(8) from e2fsprogs uses
the -L option as a synonym for -o list. For better
portability, use -l -o device -t LABEL=label and -o
list in your scripts rather than the -L option.
-n, --match-types list
Restrict the probing functions to the specified
of superblock types (names). The list items may
be prefixed with "no" to specify the types which should be ignored.
blkid --probe --match-types vfat,ext3,ext4 /dev/sda1
probes for vfat, ext3 and ext4 filesystems, and
blkid --probe --match-types nominix /dev/sda1
probes for all supported formats except minix filesystems. This
option is only useful together with --probe.
-o, --output format
Use the specified output format. Note that the order of
variables and devices is not fixed. See also option -s
parameter may be:
print all tags (the default)
print the value of the tags
print the devices in a user-friendly format; this output
format is unsupported for low-level probing (--probe
This output format is DEPRECATED in favour of the
print the device name only; this output format is always
enabled for the --label and --uuid options
print key="value" pairs for easy import into
the udev environment; the keys are prefixed by ID_FS_ or ID_PART_ prefixes.
The value may be modified to be safe for udev environment; allowed is plain
ASCII, hex-escaping and valid UTF-8, everything else (including whitespaces)
is replaced with '_'. The keys with _ENC
postfix use hex-escaping for
The udev output returns the ID_FS_AMBIVALENT tag if more
superblocks are detected, and ID_PART_ENTRY_* tags are always returned for
all partitions including empty partitions.
This output format is DEPRECATED.
print key=value pairs for easy import into the
environment; this output format is automatically enabled when I/O Limits
option) are requested.
The non-printing characters are encoded by ^ and M- notation and
all potentially unsafe characters are escaped.
-O, --offset offset
Probe at the given offset (only useful with
--probe). This option can be used together with the --info
Switch to low-level superblock probing mode (bypassing
Note that low-level probing also returns information about
partition table type (PTTYPE tag) and partitions (PART_ENTRY_* tags). The
tag names produced by low-level probing are based on names used internally
by libblkid and it may be different than when executed without
--probe (for example PART_ENTRY_UUID= vs PARTUUID=). See also
-s, --match-tag tag
For each (specified) device, show only the tags that
match tag. It is possible to specify multiple --match-tag
options. If no tag is specified, then all tokens are shown for all (specified)
devices. In order to just refresh the cache without showing any tokens, use
--match-tag none with no other options.
-S, --size size
Override the size of device/file (only useful with
-t, --match-token NAME=value
Search for block devices with tokens named NAME
that have the value value, and display any devices which are found.
Common values for NAME include TYPE, LABEL, and
UUID. If there are no devices specified on the command line, all block
devices will be searched; otherwise only the specified devices are
-u, --usages list
Restrict the probing functions to the specified
of "usage" types. Supported usage
types are: filesystem, raid, crypto and other. The list items may be prefixed
with "no" to specify the usage types which should be ignored. For
blkid --probe --usages filesystem,other /dev/sda1
probes for all filesystem and other (e.g., swap) formats, and
blkid --probe --usages noraid /dev/sda1
probes for all supported formats except RAIDs. This option is only
useful together with --probe.
-U, --uuid uuid
Look up the device that uses this filesystem uuid.
For more details see the --label option.
Display version number and exit.