mkdosfs 格式化行车记录仪 SD 卡 FAT32,簇大小为 32kb

mkdosfs 格式化行车记录仪 SD 卡 FAT32,簇大小为 32kb

我正在尝试编写一个脚本来重新格式化行车记录仪 SD 卡,按照制造商的建议。我可以在 Windows 系统上使用一个简单的 python 脚本来完成此操作,这里是一个片段:

...
fm = windll.LoadLibrary('fmifs.dll')
FMT_CB_FUNC = WINFUNCTYPE(c_int, c_int, c_int, c_void_p)
FMIFS_UNKNOWN = 0
clustersize = c_int(32768) # 32K cluster size
fm.FormatEx(c_wchar_p(Drive), FMIFS_UNKNOWN, c_wchar_p(Format),
            c_wchar_p(Title), True, clustersize, FMT_CB_FUNC(myFmtCallback))
...

所以,这是使用一些 Windows DLL 和格式,并且它可以工作。完整的脚本可以找到这里

现在我想在 Ubuntu 系统上做同样的事情。我正在尝试使用 mkdosfs,并且使用系统调用,这里是命令行:

mkdosfs -f 2 -F 32 -s 64 -S 512 /dev/sdb1

这会格式化 SD 卡,但是当从我的笔记本电脑上拔下相机并打开它开始录制时,它似乎崩溃了,大概是因为 SD 卡上的预期文件系统不太正确。

我当然应该提到,在 MS windows 和 ubuntu 的情况下,我确实添加了一些预期的目录(“/DCIM/100MEDIA”),并且还添加了一个带有时间戳的文件“time.txt”相机在启动时读取数据以重置作为时间戳添加到视频中的内部时钟。

我使用的相机是“Roadhawk Bullet Ride”,规格仅说明使用簇大小为 32k 的 FAT32 文件系统。我比较了从 dosfdsk 获得的输出,在 Windows 和 ubuntu 上格式化卡后,我看不出有什么显着差异,我得到每个扇区 512 个字节,每个簇 32768 字节,2 个 FAT,32 位我不确定数字(例如“保留扇区”和 dosfdsk 提供的所有其他信息)有多重要。

感谢您提供的任何帮助或提示。

相关内容