From 30ff6afe596eddafacf22b1a5b2d1a3d6254ea15 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 15:14:44 +0200 Subject: Adding upstream version 2.36.1. Signed-off-by: Daniel Baumann --- misc-utils/Makemodule.am | 232 +++++ misc-utils/blkid.8 | 343 +++++++ misc-utils/blkid.c | 963 ++++++++++++++++++ misc-utils/cal.1 | 233 +++++ misc-utils/cal.c | 1314 ++++++++++++++++++++++++ misc-utils/fincore.1 | 62 ++ misc-utils/fincore.c | 412 ++++++++ misc-utils/findfs.8 | 79 ++ misc-utils/findfs.c | 79 ++ misc-utils/findmnt-verify.c | 527 ++++++++++ misc-utils/findmnt.8 | 308 ++++++ misc-utils/findmnt.c | 1732 ++++++++++++++++++++++++++++++++ misc-utils/findmnt.h | 41 + misc-utils/getopt-parse.bash | 75 ++ misc-utils/getopt-parse.tcsh | 77 ++ misc-utils/getopt.1 | 460 +++++++++ misc-utils/getopt.1.in | 460 +++++++++ misc-utils/getopt.c | 472 +++++++++ misc-utils/hardlink.1 | 69 ++ misc-utils/hardlink.c | 531 ++++++++++ misc-utils/kill.1 | 240 +++++ misc-utils/kill.c | 513 ++++++++++ misc-utils/logger.1 | 383 +++++++ misc-utils/logger.c | 1316 ++++++++++++++++++++++++ misc-utils/look.1 | 123 +++ misc-utils/look.c | 375 +++++++ misc-utils/lsblk-devtree.c | 472 +++++++++ misc-utils/lsblk-mnt.c | 127 +++ misc-utils/lsblk-properties.c | 381 +++++++ misc-utils/lsblk.8 | 215 ++++ misc-utils/lsblk.c | 2202 +++++++++++++++++++++++++++++++++++++++++ misc-utils/lsblk.h | 237 +++++ misc-utils/lslocks.8 | 108 ++ misc-utils/lslocks.c | 662 +++++++++++++ misc-utils/mcookie.1 | 69 ++ misc-utils/mcookie.c | 200 ++++ misc-utils/namei.1 | 80 ++ misc-utils/namei.c | 450 +++++++++ misc-utils/rename.1 | 122 +++ misc-utils/rename.c | 322 ++++++ misc-utils/test_uuidd.c | 348 +++++++ misc-utils/uuidd.8 | 94 ++ misc-utils/uuidd.8.in | 94 ++ misc-utils/uuidd.c | 714 +++++++++++++ misc-utils/uuidd.rc.in | 62 ++ misc-utils/uuidd.service.in | 24 + 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 | 170 ++++ misc-utils/whereis.c | 656 ++++++++++++ misc-utils/wipefs.8 | 148 +++ misc-utils/wipefs.c | 851 ++++++++++++++++ 55 files changed, 20973 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.1.in create mode 100644 misc-utils/getopt.c create mode 100644 misc-utils/hardlink.1 create mode 100644 misc-utils/hardlink.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-devtree.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..56f9a41 --- /dev/null +++ b/misc-utils/Makemodule.am @@ -0,0 +1,232 @@ +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-devtree.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 \ + lib/ismounted.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 +PATHFILES += 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 + +if BUILD_HARDLINK +usrbin_exec_PROGRAMS += hardlink +hardlink_SOURCES = misc-utils/hardlink.c +hardlink_LDADD = $(LDADD) libcommon.la +hardlink_CFLAGS = $(AM_CFLAGS) +if HAVE_PCRE +hardlink_LDADD += $(PCRE_LIBS) +hardlink_CFLAGS += $(PCRE_CFLAGS) +endif +dist_man_MANS += misc-utils/hardlink.1 +endif diff --git a/misc-utils/blkid.8 b/misc-utils/blkid.8 new file mode 100644 index 0000000..57a3b75 --- /dev/null +++ b/misc-utils/blkid.8 @@ -0,0 +1,343 @@ +.\" 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 ] +.RB [ \-\-no\-part\-details ] +.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 partitions or unpartitioned 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 exit status 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\-D\fR, \fB\-\-no\-part\-details\fR +Don't print information (PART_ENTRY_* tags) from partition table in low-level probing mode. +.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 (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, +.B blkid +will print all of the devices that match the search parameter. +.sp +This option forces +.B blkid +to use udev when used for LABEL or UUID tokens in \fB\-\-match\-token\fR. The +goal is to provide output consistent with other utils (like mount, etc.) +on systems where the same tag is used for multiple devices. +.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=). See also \fB\-\-no\-part\-details\fR. +.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 EXIT STATUS +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 status 0 is returned. Note the option \fB\-\-match\-tag\fR filters output +tags, but it does not affect exit status. + +If the specified token was not found, or no (specified) devices could be +identified, or it is impossible to gather any information about the device +identifiers or device content an exit status of 2 is returned. + +For usage or other errors, an exit status of 4 is returned. + +If an ambivalent probing result was detected by low-level probing mode (\fB\-p\fR), an exit status 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 ENVIRONMENT +.IP "Setting LIBBLKID_DEBUG=all enables debug output." +.SH AUTHORS +.B blkid +was written by Andreas Dilger for libblkid and improved by Theodore Ts'o +and Karel Zak. +.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..dba3bb7 --- /dev/null +++ b/misc-utils/blkid.c @@ -0,0 +1,963 @@ +/* + * 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, + no_part_details:1, + raw_chars:1; +}; + +static void __attribute__((__noreturn__)) usage(void) +{ + FILE *out = stdout; + + fputs(USAGE_HEADER, out); + fprintf(out, _( " %s --label