Он просматривает данные в разделе, аналогично тому, что делает file -s / dev / partition
. Если вы strace
, вы должны увидеть следующее:
lseek(3, 1048576, SEEK_SET) = 1048576
read(3, "\353<\220mkfs.fat\0\2\10..., 512) = 512
Поиск позиции 1048576
(1 МБ или 2048 секторов) находится вне таблицы разделов (это начало первого partition), и он читает оттуда, поэтому он смотрит не только на саму таблицу разделов.
Он также просматривает / proc / mounts
, так что он также может собирать информацию оттуда. Чего я не вижу, так это того, что делает blkid
.
Информация о файловой системе, отображаемая параметром parted
, не очень точна, в приведенном выше примере показана файловая система FAT, но на самом деле она используется как MD-RAID / LUKS / LVM. Метаданные MD-RAID с самого начала имеют размер 4 КБ, поэтому старый заголовок FAT в первом 4 КБ может уцелеть и сбить с толку эвристики, такие как файл
или parted
...