![]() |
1
2
根据硬件类型,有几种方法。 硬盘有一个 主引导记录 其次是 分区表 . 这个 PT 包含此驱动器上分区的列表。该列表中的每个条目(除其他外)都包含一个数字 System ID 指定分区文件系统的字段。 软盘和大多数U盘没有pt。在这里,您必须查看分区本身。 第一个分区扇区(称为 Boot Sector )通常包含系统ID 格式与pt中的系统ID完全不同。 此外,不同的文件系统在扇区内ID的位置也可能不同。 |
![]() |
2
4
如果在Windows上使用win32 API,则可以调用getvolumeInformation( http://msdn.microsoft.com/en-us/library/aa364993.aspx )确定给定装入卷上存在的文件系统类型。 例如,如果您试图检测D:上的文件系统,则可以调用:
但是,只有在文件系统被正在运行的操作系统“识别”和“可安装”的情况下,这才有效。 |
![]() |
3
2
关于每个文件系统都有一些头信息,称为“超级块”。超级块包含幻数或有关文件系统类型的其他信息。 MBR分区表还存储表示分区类型的8位值。 |
![]() |
4
1
首先,分区表中有一个指定分区类型的字节。其次,每个分区都有不同的头和结构,因此,通过一些分析,可以非常精确地确定分区。 |
![]() |
5
1
|
![]() |
6
1
处理设置文件系统或安装文件系统的操作系统工具将使用各种试探法来尝试检测文件系统,例如查找它们拥有的功能。例如,如果没有告诉“mount”工具它要装载的分区的文件系统类型,那么它将执行“man”页中描述的操作:
blkid库和“disktype”工具将,如果您给它一个磁盘块设备(如/dev/sda)或一个分区块设备(如/dev/sda1),使用启发式方法和有根据的猜测来确定该设备上存在的内容。非常有用的工具,特别是在没有磁盘,只有虚拟分区的Xen环境中,因此您不能只查询主引导记录。 当建立一个新的基于Linux的系统(如Ubuntu)时,类似的工具被用来检测文件系统。 |
![]() |
7
0
在Linux上安装文件系统时,可以传递-t ext3/ext3等-如果您在/etc/fstab(或等效文件)中查找,则每个驱动器可能都列出了其fs类型。 然后,对于自动执行此操作,有superblock/equivalent(认为Windows类型将其称为其他类型的东西)。 看到这个: 超级块
取自: http://www.cyberciti.biz/tips/understanding-unixlinux-filesystem-superblock.html |
![]() |
Malay Joshi · C++如何创建文件夹 3 年前 |
![]() |
tashanzhishi061 · NFS装载显示有时会混淆 3 年前 |
![]() |
cryogene · mknod的可移植性[重复] 3 年前 |
![]() |
surajsbsm · 创建文件oustside默认目录php 6 年前 |
![]() |
Bob Kimani · 将存储库文件夹链接到另一个非repo文件夹 7 年前 |
![]() |
user3732361 · 读取大文件时如何选择块大小? 7 年前 |
|
YO LO · 在iPad上保存文本文件的位置 7 年前 |
![]() |
hhwwww · 无法在mac上显示扩展文件属性 7 年前 |