我试图找出驱动器中是否存在从未真正使用过的区域(最好是独立于文件系统的区域)。
为了说明清楚,我将演示我的用例场景。我正在编写一个工具来简化和自动化我的可移动媒体的清点(我以前只是简单地这样做dir > …
)。我已经用标记对我的闪存驱动器和存储卡进行了物理编号,并且我还想对它们进行数字编号,以便该工具可以使用该编号作为 ID。
问题在于,将 ID 放在文件或卷标中并不理想,原因如下:
- 它修改了驱动器
- 它使用驱动器资源(空间/目录条目/卷标/等)
- 它很显眼,太暴露了(并不是我想隐藏它,而是我不想让它扰乱实际数据)
我认为一种选择可能是简单地写入驱动器的未使用部分。由于数据非常小(本质上只是一个整数),因此似乎在 FAT* 甚至 NTFS 卷开头的大量未使用区域中有足够的地方可以存储一个小数字。
当然,这样做的安全性值得关注。使用未记录或保留的功能和区域总是有风险的,但我希望找到某种信息(统计数据、案例研究等),可以表明什么是安全的。美东时间使用区域。当然,这不是一个通用的解决方案,因为如果多个程序都这样做,那么可能会发生冲突,但对于个人使用来说,这肯定是可能的。
答案1
几乎所有文件系统在创建时都已设置了唯一 ID(FAT 为 32 位,NTFS 为 64 位,许多 Unix 文件系统为 128 位)。制作库存数据库映射文件系统 UUID ↔ 目录 ID 应该不难。