6.75. Util-linux-2.34

Util-linux 软件包其它实用程序。包括处理文件系统、控制台、分区以及消息等工具。

大致构建用时: 1.2 SBU
所需磁盘空间: 283 MB

6.75.1. FHS 兼容性注意事项

FHS 推荐使用 /var/lib/hwclock 目录而不是通常的 /etc 目录作为 adjtime 文件的位置。首先新建目录用于存储 hwclock 程序:

mkdir -pv /var/lib/hwclock

6.75.2. 安装 Util-linux

删除早前创建的符号链接:

rm -vf /usr/include/{blkid,libmount,uuid}

准备编译 Util-linux:

./configure ADJTIME_PATH=/var/lib/hwclock/adjtime   \
            --docdir=/usr/share/doc/util-linux-2.34 \
            --disable-chfn-chsh  \
            --disable-login      \
            --disable-nologin    \
            --disable-su         \
            --disable-setpriv    \
            --disable-runuser    \
            --disable-pylibmount \
            --disable-static     \
            --without-python

--disable 和 --without 选项用于防止出现关于 LFS 中缺少构建组件需要的软件包或和其它软件包安装的程序不一致的警告。

编译软件包:

make

如果需要的话,以非 root 用户运行测试套件:

[警告]

警告

以 root 用户运行测试套件会对系统有害。为了运行测试套件,必须保证当前运行的系统中用于内核的 CONFIG_SCSI_DEBUG 选项可用,且是以一个模块的方式编译。把它构建到内核中将阻止启动。为了全面覆盖,还必须安装其它的 BLFS 软件包。如果需要的话,可以在重启进入完整的 LFS 系统后用以下命令运行该测试:

bash tests/run.sh --srcdir=$PWD --builddir=$PWD
chown -Rv nobody .
su nobody -s /bin/bash -c "PATH=$PATH make -k check"

安装软件包:

make install

6.75.3. Util-linux 软件包内容

安装的程序: addpart, agetty, blkdiscard, blkid, blkzone, blockdev, cal, cfdisk, chcpu, chmem, choom, chrt, col, colcrt, colrm, column, ctrlaltdel, delpart, dmesg, eject, fallocate, fdformat, fdisk, fincore, findfs, findmnt, flock, fsck, fsck.cramfs, fsck.minix, fsfreeze, fstrim, getopt, hexdump, hwclock, i386, ionice, ipcmk, ipcrm, ipcs, isosize, kill, last, lastb (link to last), ldattach, linux32, linux64, logger, look, losetup, lsblk, lscpu, lsipc, lslocks, lslogins, lsmem, lsns, mcookie, mesg, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, more, mount, mountpoint, namei, nsenter, partx, pivot_root, prlimit, raw, readprofile, rename, renice, resizepart, rev, rfkill, rtcwake, script, scriptreplay, setarch, setsid, setterm, sfdisk, sulogin, swaplabel, swapoff (link to swapon), swapon, switch_root, taskset, ul, umount, uname26, unshare, utmpdump, uuidd, uuidgen, uuidparse, wall, wdctl, whereis, wipefs, x86_64, 和 zramctl
安装的库: libblkid.so, libfdisk.so, libmount.so, libsmartcols.so, 和 libuuid.so
安装的库: /usr/include/blkid, /usr/include/libfdisk, /usr/include/libmount, /usr/include/libsmartcols, /usr/include/uuid, /usr/share/doc/util-linux-2.34, 和 /var/lib/hwclock

简要介绍

addpart

通知 Linux 内核有新的分区

agetty

打开一个 tty 端口,提示输入登录名,然后调用 login 程序

blkdiscard

丢弃设备上的扇区

blkid

用于定位和打印块设备属性的命令行工具

blkzone

在给定的块设备上运行区域命令

blockdev

允许用户在命令行中调用块设备的 ioctls

cal

显示一个简单的日历

cfdisk

管理指定设备的分区表

chcpu

更改 CPU 的状态

chmem

配置内存

choom

显示和调整 OOM-killer 分数

chrt

管理进程的的实时属性

col

过滤掉反向换行符

colcrt

为终端过滤缺少某些功能,例如加粗和半行的 nroff 输出

colrm

过滤掉指定的列

column

格式化指定文件为多列

ctrlaltdel

设置 Ctrl+Alt+Del 组合键的功能为硬或软复位

delpart

请求 Linux 内核移除一个分区

dmesg

转储内核启动信息

eject

弹出可移除媒体

fallocate

为文件预分配空间

fdformat

低级别格式化软盘

fdisk

管理指定设备的分区表

fincore

计算核心中文件内容的页数

findfs

通过标签或通用唯一标识符(UUID)查找文件系统

findmnt

libmount 库中用于和 mountinfo、fstab 和 mtab 文件工作的命令行接口

flock

请求一个文件锁,然后用所持有的锁执行命令

fsck

用于检查或者修复文件系统

fsck.cramfs

在指定设备的 Cramfs 文件系统上进行一致性检查

fsck.minix

在指定设备的 Minix 文件系统上进行一致性检查

fsfreeze

FIFREEZE/FITHAW ioctl 内核驱动操作的简单封装

fstrim

丢弃已挂载的文件系统中未使用的块

getopt

解析给定命令行中的选项

hexdump

以十六进制或其它指定格式转储给定文件

hwclock

读取或设置系统硬件时钟,也称为实时时钟(RTC)或基本输入输出系统(BIOS)时钟

i386

到 setarch 的符号链接

ionice

为某个程序获取或设置 io 调度类和优先级

ipcmk

创建多种 IPC(进程间通信) 资源

ipcrm

移除指定的进程间通信(IPC)资源

ipcs

提供 IPC 状态信息

isosize

报告 iso9660 文件系统的大小

kill

向进程发送信号

last

通过反向查找 /var/log/wtmp 文件显示上次登录(注销)的用户;同时还显示系统启动、关闭以及运行时级别更改

lastb

根据 /var/log/btmp 中的日志显示失败的登录尝试

ldattach

向行中添加行规则

linux32

到 setarch 的符号链接

linux64

到 setarch 的符号链接

logger

输入给定的信息到系统日志

look

显示以指定字符串开头的行

losetup

设置和控制环路设备

lsblk

以类似树的形式列出所有或指定块设备的信息

lscpu

打印 CPU 架构信息

lsipc

打印目前使用的 IPC 设备的信息

lslocks

打印 CPU 架构信息

lslogins

列出关于用户、组和系统账号的信息

lsmem

列出可用内存的范围和在线状态

lsns

列出命名空间

mcookie

xauth 生成 magic cookies(128位随机十六进制数)

mesg

控制其它用户是否可以向当前用户终端发送信息

mkfs

在设备上构建文件系统(通常是一个硬盘分区)

mkfs.bfs

创建 Santa Cruz Operations(SCO) bfs 文件系统

mkfs.cramfs

创建 cramfs 文件系统

mkfs.minix

创建 Minix 文件系统

mkswap

初始化指定设备或文件作为交换空间使用

more

用于每次显示文本一页的过滤器

mount

在文件系统树中挂载文件系统到给定设备的指定目录

mountpoint

检查目录是否是一个挂载点

namei

显示给定路径名称的符号链接

nsenter

在其他进程的命名空间中运行程序

partx

告诉内核磁盘上存在的分区和编号

pivot_root

使指定文件系统作为当前进程的新的根文件系统

prlimit

获取或设置进程资源限制

raw

绑定 Linux 原始字符设备到一个块设备

readprofile

读取内核分析信息

rename

重命名指定文件,用另一个字符串替换指定字符串

renice

更改运行中进程的优先级

resizepart

请求 Linux 内核重新设置分区大小

rev

反转指定文件的行

rkfill

用于启用和禁用无线设备的工具

rtcwake

用于进入系统睡眠状态知道指定的唤醒时间

script

生成终端会话的打字稿

scriptreplay

用定时信息播放打字稿

setarch

在新程序环境中更改报告架构并设置个性标签

setsid

在新会话中运行指定程序

setterm

设置终端属性

sfdisk

磁盘分区表管理器

sulogin

允许 root 登录;通常当系统进入单用户模式时由 init 调用

swaplabel

允许更改交换空间 UUID 和标签

swapoff

停用设备和文件的分页和交换机制

swapon

启用设备和文件的分页和交换机制并列出当前使用的设备和文件

switch_root

切换到另一个文件系统并把当前路径作为挂载树的根

tailf

跟踪日志文件的的增长;显示日志文件的最后 10 行然后继续显示日志文件中 添加的任何新条目

taskset

获取或设置一个进程的 CPU 亲和力

ul

将强调转换为转义序列以表示强调正在使用的终端的过滤器

umount

断开文件系统到系统文件树的连接

uname26

一个到 setarch 的符号链接

unshare

用一些父进程非共享的名字空间运行程序

utmpdump

以更友好的格式显示指定登录文件的内容

uuidd

UUID 库用于生成基于时间的安全和保证唯一的 UUID 的守护进程

uuidgen

创建新的 UUID。在所有创建的 UUID 中,在本地系统或其它系统,在之前和以后,每个新的 UUID 都可以被认为是唯一的

uuidparse

解析唯一标识符的实用程序

wall

在终端上显示所有当前登录用户的文件内容,或者默认的标准输出

wdctl

显示硬件看门狗状态

whereis

报告指定命令的二进制文件、源代码或者 man 手册的位置

wipefs

从设备中擦除文件系统签名

x86_64

到 setarch 的符号链接

zramctl

用于设置和控制 zram(压缩后的 ram 磁盘)的程序

libblkid

包含用于设备识别和标记提取的例程

libfdisk

包含操作分区表的例程

libmount

包含用于块设备挂载和卸载的例程

libsmartcols

包含以表格形式进行屏幕输出的例程

libuuid

包含用于生成在本地系统之上可访问对象的唯一标识符的例程