質問: FlashAirがサーバになってファイルを配信するだけならリードオンリーでいいので問題はでないと思うんですが、クライアントとしてダウンロードしている時に、電源が切られたらどーなるのかなと。 ファイル・システムが破損するのは想像がつくのですが、FATの構造について詳しくないので、どこまでの事態になるのかがわかりません。 ダウンロード中のファイルが壊れるのはいいとして、\DCIM, \SD_WLAN等のFlashairのシステムファイルまで破損して、次回動作が不能になるという事態まで想定する必要があるのでしょうか? Linuxの電源断耐性のあるファイルシステムでフォーマットしておけば・・・とも思ったのですが、FlashairはFATでしか動かないっぽいので断念。 対策としては、大型のコンデンサをつんでおくとか、物理的に電源をOFFにできないようにしておくとかしかないんですかね?
回答: FlashAir といっても非対応機器からみればただの SD(HC) Card でしかないわけで、 普通にフォーマットしちゃうことも可能なわけです。 それだけで FlashAir として使えなくなるのはアレなので、 では、フォーマットすると `/Volumes/CARD_NAME/SD_WLAN` は勝手に復元しちゃったよ ということでした。つまり、 電源断でデータは失われても FlashAir でないただの SD Card になっちゃうことは無いようです。 その意味で心配は要らないです。 以下は参考ということで `FAT` ファイルシステムの実装面からいうと - FAT ファイルアロケーションテーブル - ルートディレクトリエントリ - ルート以外のディレクトリエントリ - ファイル の4つから構成されています。 破壊パターン1:ディレクトリエントリが破損して FAT は健在 このとき、ファイル名やタイムスタンプが失われますがファイルの中身は取り出せます。 `chkdsk` によって `FILE****.CHK` 形式のファイルが得られるのはこのパターン (ファイル末尾にゴミがくっつくので切捨てが必要) 破壊パターン2: FAT が破損した(ディレクトリは健在) このとき「メディア上、不連続に配置されているファイル」を回収するのは困難(不可能)です。 「メディア上、連続に配置されているファイル」は回収可能なことがあります。 そのため MS-DOS の時代 FAT フォーマットなフロッピーディスクやハードディスクを `defrag` することには「クラッシュしたときに回収を容易にする」意味もありました。 - この状態になったハードディスクを手でサルベージした経験があります - めんどっちすぎて気が狂うかと思った。 破壊パターン3:ファイル部分が破損した 当該1個のファイルが壊れるだけで他はアクセス可能 破壊パターン4: FAT に論理エラーがあって複数のファイルが同じクラスタを指している `chkdsk` が「クロスリンク」と報告するのがこれ。 ファイルにアクセスできるけど中身がぐちゃぐちゃになっている性質の悪い壊れ方です。 当該ファイルを削除するくらいしか回復手段が無いです。 おかしくなっても `chkdsk` でそこそこ回復できると思いますよ。