文件系统信息如何存储在内存中?

时间:2010-09-22 18:17:20

标签: assembly filesystems microcontroller

计算机识别不同的文件系统。我的问题是,这些信息到底存储在存储设备中的具体位置(如果有的话)。或者它不会被存储在任何地方和而是操作系统针对一组已知的文件系统(如ext3,ntfs等)测试系统(内存设备)?

参考上面的内容,如果我将每个位(从第一个到最后一个)从一个存储设备复制到另一个,相同的存储器大小(比如两个类似的闪存驱动器),后者是一个完整的克隆?克隆的设备会自动继承文件系统吗?

如果无法通过逐位复制获得克隆还需要什么?

我相信这个问题应该是SE中的其他地方,但我不确定那个地方。


编辑: 我在这里使用8085微处理器,所以不是真的在寻找克隆软件。

3 个答案:

答案 0 :(得分:1)

每次出现新的块设备时,操作系统通常都会测试一堆文件系统驱动程序,当其中一个匹配时,启动它并将其连接到它需要工作的任何内部系统用户。通常,如果您从一个原始设备逐块复制到另一个原始设备,它将是原始设备的精确克隆。

答案 1 :(得分:1)

HDD包括分区表(在此术语上进行谷歌搜索)。闪存卡和闪存USB磁盘通常没有分区表,如果是这种情况,操作系统只询问每个文件系统驱动程序“它是你的文件系统吗?”。

至于克隆 - 如果您将设备复制到相同的设备,您将获得克隆。如果HDD具有不同的配置(不同数量的气缸,磁头等),那么克隆并不是那么容易,但也是可能的。闪存卡通常是逐块复制的,克隆是微不足道的。存在执行此类克隆的Acronis Disk Director或Norton Ghost等应用程序。你可以试一试并玩它。

答案 2 :(得分:-1)

还有一些你不想知道的细节:

我知道的每个分区表都存储有关分区类型的一些信息:

  • “MBR”(IBM / PC)每个分区都有一个“分区类型”。 0x00是可用空间,其余的是由首先到达那里的人“分配”(我认为存在一些冲突)。 Linux对其所有文件系统使用单一分区类型(0x83),可能是为了减少冲突,并且只询问所有文件系统驱动程序。 Microsoft为每种文件系统类型使用不同的类型(IIRC有两种不同的FAT16或FAT32;我不记得了。)
  • “APM”(Apple_partition_map,a.k.a。“Classic”Mac)存储分区类型字符串(最多31个字符左右)。
  • “GUID”(EFI的“GUID分区映射”,在Intel Mac上使用)存储分区类型GUID。有效保证GUID是唯一的。

逐字节复制通常有效,前提是两个器件具有相同的扇区大小(因为在扇区而不是字节中指定了许多偏移/大小)。几乎每个硬盘和闪存驱动器都使用512字节的扇区大小,但也有一些例外:

  • 有些iPod Shuffle似乎使用2048字节。显然,你有时可以从一张CD刻录CD(CD-ROM通常有2048字节的扇区)。
  • 一些较新的硬盘有4096字节的扇区(兼容跳线假装有512字节的扇区)。
  • 一些“企业级”硬盘支持略大的扇区(例如Barracuda ES.2有512,512 + 8,512 + 12,512 + 16)。额外的字节大概对加密磁盘有用。