Linux

lsblk + 文件系統類型未從 lsblk 中出現

  • March 29, 2021

我們有磁碟為 sdb sdc sdd 等的 VM 機器

我們在 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 等之後,我們沒有得到文件系統類型 - ext4

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),因此資訊將始終正確/最新。

引用自:https://unix.stackexchange.com/questions/642598