外部硬盘中存储的文件系统格式的信息在哪里

外部硬盘中存储的文件系统格式的信息在哪里

我正在阅读有关在操作系统中安装的信息,并有以下相关问题:
当​​我们插入外部硬盘时,它会自动安装在我们的文件系统中,即我们的操作系统正在使用的文件系统中。但是操作系统如何知道哪个文件硬盘使用的系统格式,如 NTFS 或 FAT32?
换句话说,当我们将硬盘插入系统时,它如何知道要挂载哪种类型的文件系统?

答案1

几乎每个文件系统都以一些开头魔法值,因此您可以通过读取前几个字节并将其值与驱动程序提供的支持值列表进行比较来确定文件系统类型。

某些类型的分区格式提供有关分区上的文件系统的信息。然而,这些信息并不完整,而且并不总是可靠,因此 Linux 很大程度上(如果不是完全)忽略了它。

答案2

我相信操作系统会获取它所知道的文件系统列表(FAT、EXT2、EXT3 等),并按照定义的顺序(可能基于它们的受欢迎程度)与磁盘分区匹配每个文件系统,直到找到匹配项。

该命令blkid可用于确定分区的文件系统类型。它有一个参数-n来限制它探测的文件系统列表。例如:

blkid -p -n vfat,ext3,ext4 /dev/sda1
# this will only probe for vfat, ext3 and ext4 filesystems on /dev/sda1
# -p     Switch to low-level superblock probing mode (bypass cache)

相关内容