30

我知道 FAT32 以及 FAT16/12 既不支持符号链接也不支持硬链接。但是我想出了这个主意:

FAT 规范描述了每个文件都与一个目录条目相关联。据我了解,可以说目录中的文件条目以某种方式或其他方式指向文件的内容。

那么,如何定义两个指向相同文件内容的目录条目?或者,什么可以阻止我这样做?

用例:我的车载收音机有一个 USB 大容量存储设备,我想使用目录作为播放列表,因为收音机软件不支持播放列表。因此,对我而言,Windows 在执行此操作时的行为并不重要。

4

3 回答 3

7

这应该适用于简单的问题。即它作为一种黑客/解决方法工作,我不知道如果你重命名/移动/删除文件会发生什么。所以,你不应该在你的主硬盘上这样做。

我使用十六进制编辑器手动编辑了目录条目。我修改了集群以及文件大小并成功伪造了硬链接。我的车载收音机甚至 Windows(7、64 位)在播放我使用的原始和“硬链接”mp3 文件时都没有问题。

当我在十六进制编辑器中再次打开设备时,我的任何修改都没有变回(请参阅答案#1中的 chkdsk 问题 - 但据我所知,无论如何 chkdsk 必须手动启动。

于 2010-12-28T15:06:40.890 回答
5

您在说什么(“指向相同文件内容的两个目录条目”)是硬链接。chkdsk 会将它们报告为交叉链接并破坏它们,“修复”文件(实际上是制作副本)。

于 2010-12-28T11:27:08.393 回答
3

MichaelPh 在 SuperUser 上发布了说明:

https://superuser.com/a/486829/51237

可以使用磁盘探测器(仅在 XP 上,我还没有让它在 Win7 上写入更改)来修改 FAT 目录引用的集群。此方法可用于重定向 DCIM 文件夹(或子文件夹)以指向不同扫描设备使用的文件夹。

这是否是一个好主意是另一回事,您使用它需要您自担风险。

  1. 将 Eye-Fi 卡插入 USB 读卡器或直接插入 SSD 插槽,并记下其安装的驱动器号(为简单起见,假设为 F:\)
  2. 确保卡和子目录的所有 Windows 资源管理器窗口都已关闭。
  3. 运行磁盘探测器
  4. 选择驱动器->逻辑卷
  5. 在打开逻辑卷对话框中,双击逻辑卷列表中的 F:\
  6. 单击已选为句柄 F: 的 Set Active 按钮。您现在可以将句柄保留为只读。
  7. 选择工具->搜索部门...
  8. 勾选Exhaustive Search,在Enter characters to search and Search中输入DCIM
  9. 您应该找到匹配项(我的是 8192)。在“找到匹配项...”对话框中选择否以取消其余的搜索。
  10. 选择 Sectors->Read 并将 Number of Sectors 增加到至少两个,以便包括整个目录表。
  11. 在 Disk Probe 屏幕右侧的 ASCII 中找到 DCIM,这是目录 FAT 条目的开始。记下记录第 27 字节的十六进制值(每个条目为 32 字节),这是目录簇引用。如果需要,需要此值才能将 DCIM 目录恢复为正常使用。
  12. 找到您要将 DCIM 重定向到的目录条目,并再次记下记录中的第 27 个字节。
  13. 返回到 DCIM 记录的第 27 个字节,并将其更改为步骤 11 中记录的值。
  14. 选择 Sectors->Write,然后在 Write Sector 对话框中单击 Write it。如果您以只读方式打开扇区,则会出现警告。如果您愿意进行更改,可以覆盖。

在 Windows 资源管理器中打开 DCIM 目录现在将显示目标目录的内容。

于 2013-01-02T11:19:45.270 回答