linux - 如何列出特定類型的分區?
我正在尋找一種方法來列出 Linux 上特定類型的所有分區。(具體來說:所有 EFI 系統分區)。
我知道
blkid
可以過濾文件系統類型:該命令blkid -t TYPE=vfat
返回正確的結果,但不是很健壯:可能有其他不是 ESP 的 vfat 文件系統,或者可能有使用不同文件系統格式化的 ESP。那麼,是否有一個等效的命令可以列出設備但過濾分區類型?
編輯
我需要所有 EFI 系統分區(或 ESP)的列表。這些分區
EF00
在 gdisk 中具有分區類型或ef
在 fdisk 中具有分區類型。它們最常被格式化為 vfat。現在,我可以使用blkid
列出所有使用 vfat 格式化的分區,但這會留下兩個問題:a)可能存在未使用 vfat 格式化(或根本未格式化)的 EFI 分區,這些分區將從列表中失去,並且
b)可能存在格式為 vfat 的正常文件系統,這些文件系統會錯誤地包含在列表中。因此,匹配文件系統類型不是可行的方法。這就是為什麼我正在尋找可以匹配分區類型的東西,所以
EF00
或ef
。如果這樣的命令不存在,我可能需要執行以下操作來獲取我想要的資訊:
列出所有磁碟
對於每個磁碟,找出上面是否有 MBR 或 GPT 分區表
列出分區表
過濾結果以僅列印 ESP 分區
這既麻煩又容易出錯,所以如果
blkid
存在能夠匹配分區類型的等價物,我想使用它。
lsblk -o +PARTTYPE
在列表中包含分區類型 UUID。EFI 系統分區類型 UUID 是C12A7328-F81F-11D2-BA4B-00A0C93EC93B
,因此對此進行 grepping(小寫,或使用-i
帶有 grep 的標誌)列出了您的 ESP。
**1)**對於特定類型的列表分區:
:~# lsblk -ln -o NAME,TYPE ... sda disk sda1 part sda1_crypt crypt vg0xa-system lvm vg0xa-swap lvm vg0xa-tmp lvm vg0xa-var lvm vg0xa-usr lvm ...
也可以看看:
lsblk -ln -o NAME,PARTTYPE
**2)**或更具體地說:
:~# lsblk -ln -o NAME,TYPE | grep sda1_crypt sda1_crypt crypt