From 8cb83eee5a58b1fad74c34094ce3afb9e430b5a4 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 6 May 2024 04:42:50 +0200 Subject: Adding upstream version 2.33.1. Signed-off-by: Daniel Baumann --- misc-utils/Makemodule.am | 217 +++++ misc-utils/blkid.8 | 332 ++++++++ misc-utils/blkid.c | 947 +++++++++++++++++++++ misc-utils/cal.1 | 231 ++++++ misc-utils/cal.c | 1128 +++++++++++++++++++++++++ misc-utils/fincore.1 | 62 ++ misc-utils/fincore.c | 417 ++++++++++ misc-utils/findfs.8 | 84 ++ misc-utils/findfs.c | 80 ++ misc-utils/findmnt-verify.c | 519 ++++++++++++ misc-utils/findmnt.8 | 308 +++++++ misc-utils/findmnt.c | 1723 ++++++++++++++++++++++++++++++++++++++ misc-utils/findmnt.h | 41 + misc-utils/getopt-parse.bash | 75 ++ misc-utils/getopt-parse.tcsh | 77 ++ misc-utils/getopt.1 | 462 +++++++++++ misc-utils/getopt.c | 472 +++++++++++ misc-utils/kill.1 | 179 ++++ misc-utils/kill.c | 392 +++++++++ misc-utils/logger.1 | 358 ++++++++ misc-utils/logger.c | 1294 +++++++++++++++++++++++++++++ misc-utils/look.1 | 123 +++ misc-utils/look.c | 376 +++++++++ misc-utils/lsblk-mnt.c | 127 +++ misc-utils/lsblk-properties.c | 188 +++++ misc-utils/lsblk.8 | 190 +++++ misc-utils/lsblk.c | 1820 +++++++++++++++++++++++++++++++++++++++++ misc-utils/lsblk.h | 112 +++ misc-utils/lslocks.8 | 108 +++ misc-utils/lslocks.c | 662 +++++++++++++++ misc-utils/mcookie.1 | 69 ++ misc-utils/mcookie.c | 196 +++++ misc-utils/namei.1 | 80 ++ misc-utils/namei.c | 451 ++++++++++ misc-utils/rename.1 | 123 +++ misc-utils/rename.c | 313 +++++++ misc-utils/test_uuidd.c | 344 ++++++++ misc-utils/uuidd.8 | 94 +++ misc-utils/uuidd.8.in | 94 +++ misc-utils/uuidd.c | 712 ++++++++++++++++ misc-utils/uuidd.rc.in | 62 ++ misc-utils/uuidd.service.in | 13 + misc-utils/uuidd.socket.in | 8 + misc-utils/uuidgen.1 | 102 +++ misc-utils/uuidgen.c | 209 +++++ misc-utils/uuidparse.1 | 78 ++ misc-utils/uuidparse.c | 349 ++++++++ misc-utils/whereis.1 | 172 ++++ misc-utils/whereis.c | 650 +++++++++++++++ misc-utils/wipefs.8 | 136 +++ misc-utils/wipefs.c | 830 +++++++++++++++++++ 51 files changed, 18189 insertions(+) create mode 100644 misc-utils/Makemodule.am create mode 100644 misc-utils/blkid.8 create mode 100644 misc-utils/blkid.c create mode 100644 misc-utils/cal.1 create mode 100644 misc-utils/cal.c create mode 100644 misc-utils/fincore.1 create mode 100644 misc-utils/fincore.c create mode 100644 misc-utils/findfs.8 create mode 100644 misc-utils/findfs.c create mode 100644 misc-utils/findmnt-verify.c create mode 100644 misc-utils/findmnt.8 create mode 100644 misc-utils/findmnt.c create mode 100644 misc-utils/findmnt.h create mode 100644 misc-utils/getopt-parse.bash create mode 100644 misc-utils/getopt-parse.tcsh create mode 100644 misc-utils/getopt.1 create mode 100644 misc-utils/getopt.c create mode 100644 misc-utils/kill.1 create mode 100644 misc-utils/kill.c create mode 100644 misc-utils/logger.1 create mode 100644 misc-utils/logger.c create mode 100644 misc-utils/look.1 create mode 100644 misc-utils/look.c create mode 100644 misc-utils/lsblk-mnt.c create mode 100644 misc-utils/lsblk-properties.c create mode 100644 misc-utils/lsblk.8 create mode 100644 misc-utils/lsblk.c create mode 100644 misc-utils/lsblk.h create mode 100644 misc-utils/lslocks.8 create mode 100644 misc-utils/lslocks.c create mode 100644 misc-utils/mcookie.1 create mode 100644 misc-utils/mcookie.c create mode 100644 misc-utils/namei.1 create mode 100644 misc-utils/namei.c create mode 100644 misc-utils/rename.1 create mode 100644 misc-utils/rename.c create mode 100644 misc-utils/test_uuidd.c create mode 100644 misc-utils/uuidd.8 create mode 100644 misc-utils/uuidd.8.in create mode 100644 misc-utils/uuidd.c create mode 100644 misc-utils/uuidd.rc.in create mode 100644 misc-utils/uuidd.service.in create mode 100644 misc-utils/uuidd.socket.in create mode 100644 misc-utils/uuidgen.1 create mode 100644 misc-utils/uuidgen.c create mode 100644 misc-utils/uuidparse.1 create mode 100644 misc-utils/uuidparse.c create mode 100644 misc-utils/whereis.1 create mode 100644 misc-utils/whereis.c create mode 100644 misc-utils/wipefs.8 create mode 100644 misc-utils/wipefs.c (limited to 'misc-utils') diff --git a/misc-utils/Makemodule.am b/misc-utils/Makemodule.am new file mode 100644 index 0000000..c44cdda --- /dev/null +++ b/misc-utils/Makemodule.am @@ -0,0 +1,217 @@ +if BUILD_CAL +usrbin_exec_PROGRAMS += cal +dist_man_MANS += misc-utils/cal.1 +cal_SOURCES = misc-utils/cal.c +cal_CFLAGS = $(AM_CFLAGS) +cal_LDADD = $(LDADD) libcommon.la libtcolors.la +# tinfo or ncurses are optional +if HAVE_TINFO +cal_LDADD += $(TINFO_LIBS) +cal_CFLAGS += $(TINFO_CFLAGS) +else +if HAVE_NCURSES +cal_LDADD += $(NCURSES_LIBS) +cal_CFLAGS += $(NCURSES_CFLAGS) +endif +endif # !HAVE_TINFO + +check_PROGRAMS += test_cal +test_cal_SOURCES = $(cal_SOURCES) +test_cal_LDADD = $(cal_LDADD) +test_cal_CFLAGS = -DTEST_CAL $(cal_CFLAGS) +endif # BUILD_CAL + + +if BUILD_LOGGER +usrbin_exec_PROGRAMS += logger +dist_man_MANS += misc-utils/logger.1 +logger_SOURCES = misc-utils/logger.c lib/strutils.c lib/strv.c +logger_LDADD = $(LDADD) +logger_CFLAGS = $(AM_CFLAGS) +if HAVE_SYSTEMD +logger_LDADD += $(SYSTEMD_LIBS) $(SYSTEMD_DAEMON_LIBS) $(SYSTEMD_JOURNAL_LIBS) +logger_CFLAGS += $(SYSTEMD_CFLAGS) $(SYSTEMD_DAEMON_CFLAGS) $(SYSTEMD_JOURNAL_CFLAGS) +endif + +check_PROGRAMS += test_logger +test_logger_SOURCES = $(logger_SOURCES) +test_logger_LDADD = $(logger_LDADD) +test_logger_CFLAGS = -DTEST_LOGGER $(logger_CFLAGS) +endif # BUILD_LOGGER + + +if BUILD_LOOK +usrbin_exec_PROGRAMS += look +dist_man_MANS += misc-utils/look.1 +look_SOURCES = misc-utils/look.c +endif + +if BUILD_MCOOKIE +usrbin_exec_PROGRAMS += mcookie +dist_man_MANS += misc-utils/mcookie.1 +mcookie_SOURCES = misc-utils/mcookie.c lib/md5.c +mcookie_LDADD = $(LDADD) libcommon.la +endif + +if BUILD_NAMEI +usrbin_exec_PROGRAMS += namei +dist_man_MANS += misc-utils/namei.1 +namei_SOURCES = misc-utils/namei.c lib/strutils.c lib/idcache.c +endif + +if BUILD_WHEREIS +usrbin_exec_PROGRAMS += whereis +dist_man_MANS += misc-utils/whereis.1 +whereis_SOURCES = misc-utils/whereis.c +whereis_LDADD = $(LDADD) libcommon.la +endif + +if BUILD_LSLOCKS +usrbin_exec_PROGRAMS += lslocks +dist_man_MANS += misc-utils/lslocks.8 +lslocks_LDADD = $(LDADD) libcommon.la libmount.la libsmartcols.la +lslocks_SOURCES = misc-utils/lslocks.c +lslocks_CFLAGS = $(AM_CFLAGS) -I$(ul_libmount_incdir) -I$(ul_libsmartcols_incdir) +endif + +if BUILD_LSBLK +bin_PROGRAMS += lsblk +dist_man_MANS += misc-utils/lsblk.8 +lsblk_SOURCES = \ + misc-utils/lsblk.c \ + misc-utils/lsblk-mnt.c \ + misc-utils/lsblk-properties.c \ + misc-utils/lsblk.h +lsblk_LDADD = $(LDADD) libblkid.la libmount.la libcommon.la libsmartcols.la +lsblk_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir) -I$(ul_libmount_incdir) -I$(ul_libsmartcols_incdir) +if HAVE_UDEV +lsblk_LDADD += -ludev +endif +endif # BUILD_LSBLK + +if BUILD_UUIDGEN +usrbin_exec_PROGRAMS += uuidgen +dist_man_MANS += misc-utils/uuidgen.1 +uuidgen_SOURCES = misc-utils/uuidgen.c +uuidgen_LDADD = $(LDADD) libuuid.la +uuidgen_CFLAGS = $(AM_CFLAGS) -I$(ul_libuuid_incdir) +endif + +if BUILD_UUIDPARSE +usrbin_exec_PROGRAMS += uuidparse +dist_man_MANS += misc-utils/uuidparse.1 +uuidparse_SOURCES = misc-utils/uuidparse.c +uuidparse_LDADD = $(LDADD) libcommon.la libuuid.la libsmartcols.la +uuidparse_CFLAGS = $(AM_CFLAGS) -I$(ul_libuuid_incdir) -I$(ul_libsmartcols_incdir) +endif + +if BUILD_UUIDD +usrsbin_exec_PROGRAMS += uuidd +dist_man_MANS += misc-utils/uuidd.8 +uuidd_LDADD = $(LDADD) libuuid.la libcommon.la $(REALTIME_LIBS) +uuidd_CFLAGS = $(DAEMON_CFLAGS) $(AM_CFLAGS) -I$(ul_libuuid_incdir) +uuidd_LDFLAGS = $(DAEMON_LDFLAGS) $(AM_LDFLAGS) +uuidd_SOURCES = misc-utils/uuidd.c lib/monotonic.c lib/timer.c +if HAVE_SYSTEMD +uuidd_LDADD += $(SYSTEMD_LIBS) $(SYSTEMD_DAEMON_LIBS) +uuidd_CFLAGS += $(SYSTEMD_CFLAGS) $(SYSTEMD_DAEMON_CFLAGS) +systemdsystemunit_DATA += \ + misc-utils/uuidd.service \ + misc-utils/uuidd.socket +endif + +check_PROGRAMS += test_uuidd +test_uuidd_SOURCES = misc-utils/test_uuidd.c +test_uuidd_LDADD = $(LDADD) libcommon.la libuuid.la -lpthread +test_uuidd_CFLAGS = $(AM_CFLAGS) -I$(ul_libuuid_incdir) +endif # BUILD_UUIDD + +PATHFILES += \ + misc-utils/uuidd.8 \ + misc-utils/uuidd.rc \ + misc-utils/uuidd.service \ + misc-utils/uuidd.socket + +if BUILD_BLKID +sbin_PROGRAMS += blkid +dist_man_MANS += misc-utils/blkid.8 +blkid_SOURCES = misc-utils/blkid.c +blkid_LDADD = $(LDADD) libblkid.la libcommon.la +blkid_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir) + +if HAVE_STATIC_BLKID +sbin_PROGRAMS += blkid.static +blkid_static_SOURCES = $(blkid_SOURCES) +blkid_static_LDFLAGS = -all-static +blkid_static_LDADD = $(LDADD) libblkid.la +blkid_static_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir) +endif +endif # BUILD_BLKID + + +if BUILD_FINDFS +sbin_PROGRAMS += findfs +dist_man_MANS += misc-utils/findfs.8 +findfs_LDADD = $(LDADD) libblkid.la +findfs_SOURCES = misc-utils/findfs.c +findfs_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir) +endif + +if BUILD_WIPEFS +sbin_PROGRAMS += wipefs +dist_man_MANS += misc-utils/wipefs.8 +wipefs_SOURCES = misc-utils/wipefs.c +wipefs_LDADD = $(LDADD) libblkid.la libcommon.la libsmartcols.la +wipefs_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir) -I$(ul_libsmartcols_incdir) +endif + +if BUILD_FINDMNT +bin_PROGRAMS += findmnt +dist_man_MANS += misc-utils/findmnt.8 +findmnt_LDADD = $(LDADD) libmount.la \ + libcommon.la \ + libsmartcols.la \ + libblkid.la +findmnt_CFLAGS = $(AM_CFLAGS) \ + -I$(ul_libmount_incdir) \ + -I$(ul_libsmartcols_incdir) \ + -I$(ul_libblkid_incdir) +findmnt_SOURCES = misc-utils/findmnt.c \ + misc-utils/findmnt-verify.c \ + misc-utils/findmnt.h +if HAVE_UDEV +findmnt_LDADD += -ludev +endif +endif # BUILD_FINDMNT + + +if BUILD_KILL +bin_PROGRAMS += kill +kill_SOURCES = misc-utils/kill.c +kill_LDADD = $(LDADD) libcommon.la +dist_man_MANS += misc-utils/kill.1 +endif + +if BUILD_RENAME +usrbin_exec_PROGRAMS += rename +dist_man_MANS += misc-utils/rename.1 +rename_SOURCES = misc-utils/rename.c +endif + +if BUILD_GETOPT +usrbin_exec_PROGRAMS += getopt +dist_man_MANS += misc-utils/getopt.1 +getopt_SOURCES = misc-utils/getopt.c +getoptexampledir = $(docdir)/getopt/ +dist_getoptexample_SCRIPTS = \ + misc-utils/getopt-parse.bash \ + misc-utils/getopt-parse.tcsh +endif + +if BUILD_FINCORE +usrbin_exec_PROGRAMS += fincore +dist_man_MANS += misc-utils/fincore.1 +fincore_SOURCES = misc-utils/fincore.c +fincore_LDADD = $(LDADD) libsmartcols.la libcommon.la +fincore_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir) +endif diff --git a/misc-utils/blkid.8 b/misc-utils/blkid.8 new file mode 100644 index 0000000..13b5edb --- /dev/null +++ b/misc-utils/blkid.8 @@ -0,0 +1,332 @@ +.\" Copyright 2000 Andreas Dilger (adilger@turbolinux.com) +.\" +.\" This file may be copied under the terms of the GNU Public License. +.TH BLKID 8 "March 2013" "util-linux" "System Administration" +.SH NAME +blkid \- locate/print block device attributes +.SH SYNOPSIS +.IP \fBblkid\fR +.BI \-\-label " label" +| +.BI \-\-uuid " uuid" + +.IP \fBblkid\fR +.RB [ \-\-no\-encoding +.B \-\-garbage\-collect \-\-list\-one \-\-cache\-file +.IR file ] +.RB [ \-\-output +.IR format ] +.RB [ \-\-match\-tag +.IR tag ] +.RB [ \-\-match\-token +.IR NAME=value ] +.RI [ device " ...]" + +.IP \fBblkid\fR +.BR \-\-probe " [" \-\-offset +.IR offset ] +.RB [ \-\-output +.IR format ] +.RB [ \-\-size +.IR size ] +.RB [ \-\-match\-tag +.IR tag ] +.RB [ \-\-match\-types +.IR list ] +.RB [ \-\-usages +.IR list ] +.IR device " ..." + +.IP \fBblkid\fR +.BR \-\-info " [" \-\-output +.IR format ] +.RB [ \-\-match\-tag +.IR tag ] +.IR device " ..." + +.SH DESCRIPTION +The +.B blkid +program is the command-line interface to working with the +.BR 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 fields). +.PP +.B It is recommended to use +.BR lsblk (8) +.B command to get information about block devices, or lsblk --fs to get an overview of filesystems, or +.BR findmnt (8) +.B to search in already mounted filesystems. +.PP +.RS +.BR 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. +.B blkid +reads information directly from devices and for non-root users +it returns cached unverified information. +.B blkid +is mostly designed for system services and to test libblkid functionality. +.RE + +.PP +When +.I device +is specified, tokens from only this device are displayed. +It is possible to specify multiple +.I device +arguments on the command line. +If none is given, all devices which appear in +.I /proc/partitions +are shown, if they are recognized. +.PP +.B 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 +.B blkid +silently ignores all devices where the probing result is ambivalent (multiple +colliding filesystems are detected). The low-level probing mode (\fB-p\fR) +provides more information and extra return code in this case. +It's recommended to use +.BR wipefs (8) +to get a detailed overview and to erase obsolete stuff (magic strings) from the device. + +.SH OPTIONS +The \fIsize\fR and \fIoffset\fR 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. +.TP +\fB\-c\fR, \fB\-\-cache\-file\fR \fIcachefile\fR +Read from +.I 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 +.IR /dev/null . +.TP +\fB\-d\fR, \fB\-\-no\-encoding\fR +Don't encode non-printing characters. The non-printing characters are encoded +by ^ and M- notation by default. Note that the \fB\-\-output udev\fR output format uses +a different encoding which cannot be disabled. +.TP +\fB\-g\fR, \fB\-\-garbage\-collect\fR +Perform a garbage collection pass on the blkid cache to remove +devices which no longer exist. +.TP +\fB\-h\fR, \fB\-\-help\fR +Display a usage message and exit. +.TP +\fB\-i\fR, \fB\-\-info\fR +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 \fB\-\-probe\fR option. +.TP +\fB\-k\fR, \fB\-\-list\-filesystems\fR +List all known filesystems and RAIDs and exit. +.TP +\fB\-l\fR, \fB\-\-list\-one\fR +Look up only one device that matches the search parameter specified with the \fB\-\-match\-token\fR +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. Device types in order of +decreasing priority are: Device Mapper, EVMS, LVM, MD, and finally regular +block devices. If this option is not specified, +.B blkid +will print all of the devices that match the search parameter. +.TP +\fB\-L\fR, \fB\-\-label\fR \fIlabel\fR +Look up the device that uses this filesystem \fIlabel\fR; this is equal to +.BR "--list-one --output device --match-token LABEL=\fIlabel\fR" . +This lookup method is able to reliably use /dev/disk/by-label +udev symlinks (dependent on a setting in /etc/blkid.conf). Avoid using the +symlinks directly; it is not reliable to use the symlinks without verification. +The \fB-\-label\fR option works on systems with and without udev. + +Unfortunately, the original +.BR blkid (8) +from e2fsprogs uses the \fB-L\fR option as a +synonym for \fB-o list\fR. For better portability, use \fB-l -o device +-t LABEL=\fIlabel\fR and \fB-o list\fR in your scripts rather than the \fB-L\fR option. +.TP +\fB\-n\fR, \fB\-\-match\-types\fR \fIlist\fR +Restrict the probing functions to the specified (comma-separated) \fIlist\fR of +superblock types (names). +The list items may be prefixed with "no" to specify the types which should be ignored. +For example: +.sp + blkid --probe --match-types vfat,ext3,ext4 /dev/sda1 +.sp +probes for vfat, ext3 and ext4 filesystems, and +.sp + blkid --probe --match-types nominix /dev/sda1 +.sp +probes for all supported formats except minix filesystems. +This option is only useful together with \fB\-\-probe\fR. +.TP +\fB\-o\fR, \fB\-\-output\fR \fIformat\fR +Use the specified output format. Note that the order of variables and +devices is not fixed. See also option \fB-s\fR. The +.I format +parameter may be: +.RS +.TP +.B full +print all tags (the default) +.TP +.B value +print the value of the tags +.TP +.B list +print the devices in a user-friendly format; this output format is unsupported +for low-level probing (\fB\-\-probe\fR or \fB\-\-info\fR). + +This output format is \fBDEPRECATED\fR in favour of the +.BR lsblk (8) +command. +.TP +.B device +print the device name only; this output format is always enabled for the \fB\-\-label\fR +and \fB\-\-uuid\fR options +.TP +.B udev +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 unsafe chars. + +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 \fBDEPRECATED\fR. +.TP +.B export +print key=value pairs for easy import into the environment; this output format +is automatically enabled when I/O Limits (\fB\-\-info\fR option) are requested. + +The non-printing characters are encoded by ^ and M- notation and all +potentially unsafe characters are escaped. +.RE +.TP +\fB\-O\fR, \fB\-\-offset\fR \fIoffset\fR +Probe at the given \fIoffset\fR (only useful with \fB\-\-probe\fR). This option can be +used together with the \fB\-\-info\fR option. +.TP +\fB\-p\fR, \fB\-\-probe\fR +Switch to low-level superblock probing mode (bypassing the cache). + +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 \fB\-\-probe\fR (for example PART_ENTRY_UUID= vs +PARTUUID=). +.TP +\fB\-s\fR, \fB\-\-match\-tag\fR \fItag\fR +For each (specified) device, show only the tags that match +.IR tag . +It is possible to specify multiple +.B \-\-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 +.B "\-\-match\-tag none" +with no other options. +.TP +\fB\-S\fR, \fB\-\-size\fR \fIsize\fR +Override the size of device/file (only useful with \fB\-\-probe\fR). +.TP +\fB\-t\fR, \fB\-\-match\-token\fR \fINAME=value\fR +Search for block devices with tokens named +.I NAME +that have the value +.IR value , +and display any devices which are found. +Common values for +.I NAME +include +.BR TYPE , +.BR LABEL , +and +.BR UUID . +If there are no devices specified on the command line, all block devices +will be searched; otherwise only the specified devices are searched. +.TP +\fB\-u\fR, \fB\-\-usages\fR \fIlist\fR +Restrict the probing functions to the specified (comma-separated) \fIlist\fR 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 example: +.sp + blkid --probe --usages filesystem,other /dev/sda1 +.sp +probes for all filesystem and other (e.g. swap) formats, and +.sp + blkid --probe --usages noraid /dev/sda1 +.sp +probes for all supported formats except RAIDs. +This option is only useful together with \fB\-\-probe\fR. +.TP +\fB\-U\fR, \fB\-\-uuid\fR \fIuuid\fR +Look up the device that uses this filesystem \fIuuid\fR. For more details see the +\fB\-\-label\fR option. +.TP +\fB\-V\fR, \fB\-\-version\fR +Display version number and exit. +.SH "RETURN CODE" +If the specified device or device addressed by specified token (option +\fB\-\-match\-token\fR) was found and it's possible to gather any information about the +device, an exit code 0 is returned. Note the option \fB\-\-match\-tag\fR filters output +tags, but it does not affect return code. + +If the specified token was not found, or no (specified) devices could be +identified, an exit code of 2 is returned. + +For usage or other errors, an exit code of 4 is returned. + +If an ambivalent probing result was detected by low-level probing mode (\fB\-p\fR), an exit code of 8 is +returned. +.SH CONFIGURATION FILE +The standard location of the +.I /etc/blkid.conf +config file can be overridden by the environment variable BLKID_CONF. +The following options control the libblkid library: +.TP +.I SEND_UEVENT= +Sends uevent when +.I /dev/disk/by-{label,uuid,partuuid,partlabel}/ +symlink does not match with LABEL, UUID, PARTUUID or PARTLABEL on the device. Default is "yes". +.TP +.I CACHE_FILE= +Overrides the standard location of the cache file. This setting can be +overridden by the environment variable BLKID_FILE. Default is +.IR /run/blkid/blkid.tab , +or +.I /etc/blkid.tab +on systems without a /run directory. +.TP +.I EVALUATE= +Defines LABEL and UUID evaluation method(s). Currently, the libblkid library +supports the "udev" and "scan" methods. More than one method may be specified in +a comma-separated list. Default is "udev,scan". The "udev" method uses udev +.I /dev/disk/by-* +symlinks and the "scan" method scans all block devices from the +.I /proc/partitions +file. +.SH AUTHOR +.B blkid +was written by Andreas Dilger for libblkid and improved by Theodore Ts'o +and Karel Zak. +.SH ENVIRONMENT +.IP "Setting LIBBLKID_DEBUG=all enables debug output." +.SH SEE ALSO +.BR libblkid (3), +.BR findfs (8), +.BR lsblk (8), +.BR wipefs (8) +.SH AVAILABILITY +The blkid command is part of the util-linux package and is available from +https://www.kernel.org/pub/linux/utils/util-linux/. diff --git a/misc-utils/blkid.c b/misc-utils/blkid.c new file mode 100644 index 0000000..3dcb9e5 --- /dev/null +++ b/misc-utils/blkid.c @@ -0,0 +1,947 @@ +/* + * blkid.c - User command-line interface for libblkid + * + * Copyright (C) 2001 Andreas Dilger + * + * %Begin-Header% + * This file may be redistributed under the terms of the + * GNU Lesser General Public License. + * %End-Header% + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define OUTPUT_FULL (1 << 0) +#define OUTPUT_VALUE_ONLY (1 << 1) +#define OUTPUT_DEVICE_ONLY (1 << 2) +#define OUTPUT_PRETTY_LIST (1 << 3) /* deprecated */ +#define OUTPUT_UDEV_LIST (1 << 4) /* deprecated */ +#define OUTPUT_EXPORT_LIST (1 << 5) + +#define BLKID_EXIT_NOTFOUND 2 /* token or device not found */ +#define BLKID_EXIT_OTHER 4 /* bad usage or other error */ +#define BLKID_EXIT_AMBIVAL 8 /* ambivalent low-level probing detected */ + +#include + +#include "ismounted.h" + +#include "strutils.h" +#define OPTUTILS_EXIT_CODE BLKID_EXIT_OTHER /* exclusive_option() */ +#include "optutils.h" +#define CLOSE_EXIT_CODE BLKID_EXIT_OTHER /* close_stdout() */ +#include "closestream.h" + +#include "nls.h" +#include "ttyutils.h" + +#define XALLOC_EXIT_CODE BLKID_EXIT_OTHER /* x.*alloc(), xstrndup() */ +#include "xalloc.h" + +struct blkid_control { + int output; + uintmax_t offset; + uintmax_t size; + char *show[128]; + unsigned int + eval:1, + gc:1, + lookup:1, + lowprobe:1, + lowprobe_superblocks:1, + lowprobe_topology:1, + raw_chars:1; +}; + +static void print_version(FILE *out) +{ + fprintf(out, _("%s from %s (libblkid %s, %s)\n"), + program_invocation_short_name, PACKAGE_STRING, + LIBBLKID_VERSION, LIBBLKID_DATE); +} + +static void __attribute__((__noreturn__)) usage(void) +{ + FILE *out = stdout; + + fputs(USAGE_HEADER, out); + fprintf(out, _( " %s --label