mkdosfsはドライブレコーダーSDカードをFAT32としてフォーマットし、クラスターサイズは32kbです。

mkdosfsはドライブレコーダーSDカードをFAT32としてフォーマットし、クラスターサイズは32kbです。

製造元の推奨事項に従って、ブラックボックスSDカードを再フォーマットするスクリプトを作成しようとしています。簡単なPythonスクリプトを使用してWindowsシステムでこれを実行できます。以下はコードスニペットです。

...
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ファイルシステムのみを使用していることが示されています。 WindowsとUbuntuでカードをフォーマットした後、dosfdskから得られた出力を比較しましたが、大きな違いは見られませんでした。セクタあたり512バイト、クラスタあたり32768バイト、2 FAT、32ビットを得たかどうかはわかりません。 「予約されたセクタ」などの数字とdosfdskが提供する他のすべての情報が重要です。

提供できるヘルプやヒントに感謝します。

関連情報