我需要构建一个 SDHC 卡(FAT32),其中包含一个我独立选择短文件名和长文件名的目录。例如短文件名MYDIR
但长名称i am a cool name. yeah. check out the awesomeness.
根据维基百科,这两个名称之间没有强制关联,所以我的目标应该是可能的:
从 LFN 创建 8.3 名称没有强制算法
我可以使用任何必要的系统来执行此操作(windows、mac、linux、十六进制编辑器),但越简单越好。谢谢!
我需要构建一个 SDHC 卡(FAT32),其中包含一个我独立选择短文件名和长文件名的目录。例如短文件名MYDIR
但长名称i am a cool name. yeah. check out the awesomeness.
根据维基百科,这两个名称之间没有强制关联,所以我的目标应该是可能的:
从 LFN 创建 8.3 名称没有强制算法
我可以使用任何必要的系统来执行此操作(windows、mac、linux、十六进制编辑器),但越简单越好。谢谢!
短文件名是使用您提到的算法从 LFN 自动和强制构造的。(在 FAT32规范中也有详细说明)。这是由文件系统驱动程序完成的(至少在 Windows 和 Linux 上)。你真的无法改变它,除非你修改了不建议的驱动程序。如果您只想为一个目录执行此操作,那么您可以通过在十六进制编辑器中修改磁盘映像来实现此目的,但要小心不要创建具有相同名称的重复条目。
这是我在 Linux 上尝试过的:
#dd if=/dev/zero of=fatImage bs=1048576 count=256
#mkfs.vfat -F 32 fatImage
#mount -o loop fatImage /mnt
#cd /mnt
#mkdir ThisIsALongDirectoryName
fat 驱动程序为目录生成一个短名称:THISIS~1。您可以使用这两个名称来访问它。
#cd /mnt/ThisIsALongDirectoryName
#cd /mnt/THISIS~1
然后在卸载分区后,我在十六进制编辑器(KDE 上的 Okteta)中打开图像,搜索 SFN 条目THISIS~1,并将其替换为MYNEWDIR。此外,每个 32 字节的 LFN 子条目在偏移量 13 处存储 SFN 的校验和。所以我必须计算并用 MYNEWDIR 的校验和(即 0x6A)替换所有 THISIS~1(即 0xA6)的校验和。 LFN 子条目。保存修改后,我重新安装了映像,并且能够使用旧的 LFN 和新的 SFN 访问目录。
#cd /mnt/ThisIsALongDirectoryName
#cd /mnt/MYNEWDIR
我不会依赖维基百科作为技术参考。最好查阅微软的文档。阅读此内容,我认为这两个文件之间可能存在关系,因此我不建议摆弄这些文件。使用短名称可能会更好。