Limboタイプの偽のUSBまたはSDカードでは、ドライブ内の特定の場所から始まるすべてのセクターは使用できません(ゼロまたは1つ、または読み取れないセクターのみが応答します)。
フラッシュドライブの公称容量は256 GBですが、実際には16 GBしかありません。 16GBのしきい値以上で記録された内容はすべてデジタルブラックホールに入ります。リンボ)。このデータにアクセスしようとすると、次のいずれかの状況が発生する可能性があります。
- デバイスは空のセクタを返します。00000000(0x00)バイトのみ可能です。
- デバイス返品部門11111111(0xFF)バイトのみ可能です。
- このデバイスは、セクタが損傷していることをコンピュータに通知します。
- デバイスは無期限に停止し、読み取り要求を返しません。
- デバイスがランダムなデータを返します(非常にまれなタイプ)
私が所有している悪意のあるフラッシュドライブの最初のケースはまさにこのようなケースでした。それは戻ってくる00 00 00 00
...すべてのセクタ内のすべての512バイトセクタでリンボ実際のデータ容量を超える領域です。
使用mkfs
またはgparted
テスト目的で偽のUSBにファイルシステムを作成すると、無期限に停止します。
WindowsとAndroidは両方ともSDカードをフル課金容量でフォーマットしました。30分もかかりません。これは、実際の容量を超えてファイルシステムフッターに触れていない場合にのみ可能です。タイトルだけを修正してください。
GPartedとmkfsは無期限に停止し(ドライブがPCから削除されるまで)、次のガイドラインに従ってファイルシステムを残します。未知GPartedと入力してください。
ファイルシステムヘッダーのみを作成しながら、GPartedで悪意のあるフラッシュドライブをフル充電容量にフォーマットする方法は?
これにより、GPartedが無期限の停止を引き起こす周辺領域に到達するのを防ぎます(不良ドライブにリストされている4番目のセクタ戻りタイプと混同しないでください。これはGPartedの反応です)。
私が達成したいもの:
- Linux反応テスト交換偽のフラッシュドライブに挿入します。 StackExchangeではこれがあまりにもマイナーなので、自分で試してみることにしました。
- Android携帯(ext2、ext3、ext4、FAT16、FAT32、exFAT、f2fs、xfs、zfs、ntfs)でさまざまなファイルシステムをテストします。Android携帯の実際の容量よりも多くのビデオを録画し、どのように反応するかを確認したいと思います。
答え1
私はこれがうまくいくかどうか少し懐疑的です。ただし、要件を満たすための強力な方法があります。これがうまくいかない場合は、mkfs
より良い操作を実行する他のオプションはありません。
- デバイスと同じサイズの(スパース)ファイルをデフォルトのファイルシステムに作成します。例えば
truncate --reference=/dev/sdX disk.img
- ファイルを分割します(これをしたいとします。そうでない場合はスキップして
/dev/loopN
代わりに使用してください/dev/loopNp1
)。を実行しfdisk disk.img
たり、dd if=/dev/sdX of=disk.img conv=notrunc bs=1M count=1
デバイスのすべてのパーティションをコピーしたりできます。 losetup -f disk.img
- これによりループデバイスが作成され、その名前が印刷されます。mkfs.FOO /dev/loopNp1
- ファイルシステムの作成dd if=/dev/loopN of=/dev/sdX bs=1k count=16M conv=sparse
- ディスクイメージの最初の15G(16 * 1024 * 1024 * 1024)をデバイスにコピーします。必要に応じて調整できます。conv=sparse
すべてゼロを含む書き込みブロックはスキップされます。