blkid does not 在 CentOS 上打印设备名称

blkid does not 在 CentOS 上打印设备名称

我正在 CentOS 上运行一个容器:

docker run -it centos bash

我首先检查其标签或 UUID:

[root@3271c071fe0a /]# cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-5.3.0-1032-aws root=LABEL=cloudimg-rootfs ro console=tty1 console=ttyS0 nvme_core.io_timeout=4294967295

然后我尝试使用标签(cloudimg-rootfs)并将其转换为设备名称,因此我使用了blkid但它不打印任何内容:

[root@3271c071fe0a /]# blkid -L="cloudimg-rootfs"
[root@3271c071fe0a /]#

我期待得到,/dev/xvda1因为我检查过lsblk

[root@3271c071fe0a /]# lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop1     7:1    0 96.6M  1 loop
loop2     7:2    0 28.1M  1 loop
loop3     7:3    0 97.1M  1 loop
xvda    202:0    0    8G  0 disk
`-xvda1 202:1    0    8G  0 part /etc/hosts

为什么不打印出来呢?
我尝试过=
在此输入图像描述

并且没有: 在此输入图像描述

答案1

您不应该用于blkid此任务,因为它不可靠。如果你检查man blkid“描述”部分,你会发现这段话(强调我的):

建议使用 lsblk(8) 命令获取有关块设备的信息,或使用 lsblk --fs 获取文件系统的概述,或使用 findmnt(8) 搜索已安装的文件系统。

lsblk(8) 提供更多信息,更好地控制输出格式,易于在脚本中使用,并且不需要 root 权限即可获取实际信息。 blkid 直接从设备读取信息,对于非 root 用户,它返回缓存的未经验证的信息。 blkid 主要是为系统服务和测试 libblkid 功能而设计的。

相关内容