Gpt

“parted”如何知道 GPT 分區的文件系統類型?

  • August 31, 2015

parted實用程序以某種方式檢測到我的 GPT 磁碟分區上的文件系統:

GPT 磁碟

我猜它不會根據分區類型程式碼(在gdisk輸出中看到)來執行此操作,因為對於分區 1、5、6、7 和例如 /dev/sda2 的 ef(EFI) 將是 27(隱藏 NTFS Win)但是在parted輸出中列出了明顯不同的文件系統。

它查看分區上的數據,類似於file -s /dev/partition。如果你strace是它,你應該看到這樣的事情:

lseek(3, 1048576, SEEK_SET) = 1048576
read(3, "\353<\220mkfs.fat\0\2\10..., 512) = 512

尋找位置1048576(1 MiB 或 2048 個扇區)在分區表之外(它是第一個分區的開始),它從那裡讀取,因此它查看的不僅僅是分區表本身。

它還查看/proc/mounts,因此它也可以從那裡收集資訊。我看不到它在做什麼blkid

顯示的文件系統資訊parted不是很準確,上面的範例顯示為 FAT 文件系統,但它實際上被用作 MD-RAID / LUKS / LVM。MD-RAID 的元數據從一開始就是 4k,因此第一個 4k 中的舊 FAT 標頭可能會保留下來,並會混淆啟發式算法,如fileor parted

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