
g_mass_storageガジェットを使用しているときに奇妙な問題が発生しましたが、PCから削除されたファイルが「実際に」削除されないため、インデックス作成時に追加の問題が発生しました。
手順は次のとおりです。
- Linux デバイスのパーティションをマウントします。
$ mount /dev/mmcblk1p3 /mnt/data
- g_mass_storageガジェットを起動します。
$ modprobe g_mass_storage file=/dev/mmcblk1p3 removable=y
- Linuxデバイスのマウントされたパーティションにファイルを書き込みます。
$ echo "hello world" > /mnt/data/hello.txt
- USB OTGを接続してください - > PC
- コンピュータにインストールされているファイルを開き、テキストを確認してください。
- コンピュータからhello.txtを削除する(Shift - 削除)
- PCからUSBを抜きます。
- USBストレージが再利用できるまでお待ちください。
(私のターゲットでは、/sys/class/udc/ci_hdrc.0/stateでステータスを見ることができます)
- ファイルシステムにhello.txtファイルが含まれていないことを確認してください。
$ ls /mnt/data/
- 統計ファイル
$ stat hello.txt
File: hello.txt
Size: 12 Blocks: 8 IO Block: 4096 regular file
Device: b303h/45827d Inode: 58 Links: 1
Access: (0755/-rwxr-xr-x) Uid: (0/root) Gid: (0/root)
Access: 2022-08-21 05:57:00.000000000
Modify: 2022-08-21 05:57:00.000000000
Change: 2022-08-21 05:57:00.000000000
- 猫「見えないファイル」
$ cat hello.txt
hello world
どうなりますか?見えないファイルを編集しようとすると機能します。一度これにより、ファイルシステムが読み取り専用になります。回避策は、ファイルシステムを再マウントすることです。
PCホストにファイルを永久に削除させる方法は?
編集する:
デフォルトでは、ファイルシステムが同期していないことがわかりました。私の考えでは、これは愚かなことです。 PCホストからのみアクセスできる場合、大容量記憶装置はどういう意味ですか?ただUSBサムドライブを使用してください...
USB接続に基づいて何かをハッキングし、ターゲットのファイルシステムをマウント解除/マウントすることができましたが、今後はユーザーがUSB接続を有効にするようにロジックを更新する予定です。
答え1
/dev/mmcblk1p3
同時に2つの異なる方法で使用したいと思います。一方では、カーネルバッファマウントを使用し、他方ではg_mass_storage
バッファが同期されない場合、問題を引き起こす可能性のあるバッファを使用して使用したいと思います。 「ファイルを削除しないでください」は一般的に氷山の一角です。最後に、ブロックを書き換える人が勝つため、状態が一貫しなくなり、あるシステムの変更が他のシステムの変更と同じように表示されるかどうかが決まります。現在のバッファの状態によって異なります。
だからしないでください。マウントまたはで使用しますg_mass_storage
が、同時に両方を使用することはできません。 2台のコンピュータ間でファイルを共有するには、ネットワークファイルシステムなどの他のものを使用します。