我们有虚拟机,磁盘为 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
仅打印文件系统类型值)。blkid
with-p
选项实际上读取设备的元数据区域(这就是它需要的原因sudo
),因此信息将始终是正确/最新的。