代码之家  ›  专栏  ›  技术社区  ›  loxxy

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

  •  0
  • loxxy  · 技术社区  · 14 年前

    计算机识别不同的文件系统。我的问题是,这些信息准确地存储在存储设备中的什么地方(如果有特定的位置)。或者它不是存储在任何地方,而是操作系统根据已知的一组文件系统(如ext3、ntfs等)测试系统(内存设备)?

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

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

    我相信这个问题应该在东南部其他地方,但我不确定那个地方。


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

    3 回复  |  直到 14 年前
        1
  •  1
  •   Carl Norum    14 年前

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

        2
  •  1
  •   Eugene Mayevski 'Callback    14 年前

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

    至于克隆-如果您将设备复制到相同的设备,您将拥有一个克隆。如果HDD具有不同的配置(不同的柱面、磁头等数量),那么克隆就不是那么容易了,而且也是可能的。闪存卡通常是逐块复制的,而克隆则是微不足道的。存在诸如Acronis磁盘控制器或Norton Ghost这样的应用程序来进行克隆。你可以试用一下。

        3
  •  -1
  •   tc.    14 年前

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

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

    • “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随机播放似乎使用2048字节。显然,有时您可以从一个启动CD映像(CD-ROM通常有2048字节的扇区)。
    • 一些较新的硬盘驱动器有4096字节的扇区(带有一个兼容性跳线,假装有512字节的扇区)。
    • 一些“企业”硬盘支持稍大的扇区(例如梭鱼2号有512、512+8、512+12、512+16)。额外的字节可能对加密磁盘有用。