文脈上、私はカーネル6.1を使用しているので、5.7以降のツリー内のexFATカーネルドライバを使用しています。
現在exFATでフォーマットされているフラッシュドライブを接続してここに書き込むと、RAMキャッシュに書き込まれ、ゆっくりフラッシュにフラッシュされます。ユーザースペースアプリケーション(したがってユーザー)は、ドライブ(またはより正確にはパーティション)をアンマウントしようとするか、中断されるまで書き込みが完了したように見えるため、これはお勧めできませumount
んudisksctl
。さらに悪いことに、ユーザーがこの動作を認識せず、プラグを抜く前に削除しない悪い習慣を持っている場合、音なしでデータが破損するだけです。
だから私はこのキャッシュ動作を無効にしたいと思います。読みながらman mount
exFATがまったく言及されていないことは驚くべきことです。 「FATインストールオプション」セクションの下にオプションがありますflush
。しかし、私が正しく理解した場合、exFATexfat
はドライバがvfat
FAT16やFAT32などを処理する方法とは異なるため、このセクションはexFATには適用されません。
実際、flush
このオプションを使用してexFATパーティションをマウントしようとするとエラーが発生します。
# sda1 is my exFAT partition
$ udisksctl mount -b /dev/sda1 -o flush
Error mounting /dev/sda1: GDBus.Error:org.freedesktop.UDisks2.Error.OptionNotPermitted: Mount option `flush' is not allowed
exfat
もしそうなら、現在のドライバは書き込みキャッシュの無効化をサポートしていませんか?そうでない場合、回避策はありますか?