lsblk + 文件系统类型未从 lsblk 中出现

lsblk + 文件系统类型未从 lsblk 中出现

我们有虚拟机,磁盘为 sdb sdc sdd 等

我们在sdb磁盘上创建ext4文件系统,如下所示

 mkfs.ext4  -j -m 0 /dev/sdb -F
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 1048576 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1073741824
32 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

现在我们要检查文件系统类型,如下所示

lsblk -o NAME,FSTYPE | grep sdb
sdb

但我们应该得到以下预期结果

 lsblk -o NAME,FSTYPE | grep sdb
sdb              ext4

我们不明白为什么在磁盘上创建 ext4 文件系统(如 sdb 或 sdc 等)后我们无法获得文件系统类型 -外部4

答案1

lsblk使用 UDev 数据库获取有关文件系统的信息,因此如果它不显示文件系统类型,则 UDev 可能有问题。要检查 UDev 对设备的了解,请使用udevadm info /dev/sdb并查找ID_FS_TYPE密钥。

也有可能 UDev 在您的设备上太慢,并且该值尚未在数据库中更新,因此lsblk会打印“旧”值,即“无文件系统”。你可以udevadm settle在跑步前尝试跑步lsblk

或者,您可以使用sudo blkid -p /dev/sdb(或sudo blkid -p /dev/sdb -s TYPE -o value仅打印文件系统类型值)。blkidwith-p选项实际上读取设备的元数据区域(这就是它需要的原因sudo),因此信息将始终是正确/最新的。

相关内容