web-dev-qa-db-ja.com

USBサムドライブの実際のサイズを確認する

私は最近、偽物のMicroSDカードとUSBサムドライブについて多くの記事を読みました。最近、SanDisk USBドライブ(128 GBを請求)を購入し、そのサイズをテストしたいと思います。それはebayなどを介しては購入されませんが、実際に使用する前に実際のサイズをテストしたいです。

その上にあるものをコピーして、コピーして、ファイルに問題がないかどうかを確認できます。ハッシュなどで自動化することもできます。しかし、より正確な解決策があることを望みました。私は、Windowsの場合、H2testwがそのトリックを行うと読みました。 Ubuntu/Linuxでこれをテストする簡単な方法はありますか?特殊な、うまく機能するツールでしょうか?

更新:明確にするために、アイデアは、コントローラーがLinuxシステムに通知するサイズが正しいことを確認することです(データが失われない)。 127.3 GBではなく128 GBを取得するかどうかを確認したいわけではありません。 書き込んだすべてのデータが再び読み取り可能になるかどうかをテストしたい。残念ながら、英語の技術サイトでこれに関する情報を見つけることができない。しかし、良いドイツの情報源があります。私は実際にそのようなアプリケーションを探していますが、Ubuntu/Linuxの場合: https://www.raymond.cc/blog/test-and-detect-fake-or-counterfeit-usb-flash-drives -bought-from-ebay-with-h2testw /

Update2:いくつかのソースを英語で集めようとしました。時間がないため、すべてを詳しく読んでいませんでした。

Update3:説明

以下の奇妙な批評家のために、いくつかの説明。

問題は何で、ddだけでは解決できないのはなぜですか?

これはへの反応です

「解決しようとしている問題と「偽ドライブ」の定義を明確に把握してください。」

一部の人々は問題を理解していないようです。それで、私はできる限り短くそれを詳細に説明しようとしますが、これは私の質問の範囲を超えていると思います。

オペレーティングシステムまたはUNIXツールが提供するusbデバイスの容量が間違っている可能性があります。 OSは送信可能なデータ量を規制するため、これは致命的です。実際に保持できる以上のデータを送信すると、データが失われます。これは問題だ。では、なぜこれが起こるのでしょうか?

問題を理解するためにUSBプロトコルをよく知る必要はありません。シリアルインターフェイスには、クライアントデバイス(USBドライブ)がこのシリアルインターフェイスを介して独自の容量を伝える必要があるという共通の特性があります。これは、クライアントデバイスが、デバイスの目的に関するある程度の知識を備えた独自のコントローラーを必要としていることを意味します。この場合、容量です。また、何かを保存するコマンドを受け取ったときに何を行うかを決定します。コントローラがそのようにプログラムされている場合、コマンドを無視するか、データで何かを上書きできます。

これは何を意味するのでしょうか?あなたのUNIXツールがドライブの容量について教えてくれるものは何でも:それはツールがドライブに求めたものであり、それ以上のものではありません。これがh2testwが発明したものです。これは、後で説明する方法で実際のサイズをテストし、ドライブが言うことと比較します。これが同じではない場合、データを保存するためのすべての一般的な操作は、オペレーティングシステムの情報に依存しているため、データが失われる可能性があります。なぜ尋ねるのですか?テストには時間がかかり、ドライブ上のすべてのデータが上書きされます。したがって、オペレーティングシステムがこの情報に依存する必要があるのは当然です。

H2testwのような実容量を確認するには、実際にddを使用してドライブにデータを書き込み、再度読み取り、書き込みと同じかどうかを確認します。完全に合法。ハードウェアとドライブの性質により、より複雑になります。たとえば、書き込みキャッシュを検討してください。キャッシュから読み取らないようにする必要があります。これは、見た目ほど簡単ではない理由のほんの一例です。また、ゼロを書き込むだけで情報のエントロピーが低くなり、読み取り時に再構築できると考えてください。簡単ではありません。もちろん、手動で行うこともできます。

しかし、なぜ物事を自動化できるのですか?なぜ仕事に?以下の私の回答で提案されているf3は、多くの貢献者の多くの考えを実装し(拡張h2testwの一種と考えてください)、さまざまなトレードオフを持ついくつかのメソッドも実装します。開発者は、手元にある偽装ドライブ(別名偽造ドライブ)のトリックを見つけました。だから、私は理論と問題を理解しているが(問題はドイツのハイテクメディアではよく説明されているが、英語を話すメディアでは説明されていないようだ)、私はすべてを理解するふりをしていないので、私はそれを上で言及した。それは私が理解している単なる理論であり、私はソフトウェアの男です。しかし、情報学の学生として、私は問題を見るのに十分それをよく理解しています。

「基本的なUnixユーティリティを理解してください」

実際、私はすでにこれに答えましたが、それを明確にするために:Unixツールは、USBプロトコル(もちろん、USBデバイスのみ)を使用して情報を収集します。それ以上のことをしても意味がありません。

信託サプライヤーからのみ購入するのに役立ちますか?

tl; dr:ありません。

「商品の購入に関しては、あらゆる形態のセキュリティと同じように、信頼できる売り手を見つけて、そこからのみドライブを購入することを検討してください。」

セキュリティ(および安全性)は信頼に関するものではありません!検証と検証についてです!申し訳ありませんが、これは非常に多くの点で間違っています。

信頼できる販売者から購入すると仮定します。いくつかの質問:

  1. サプライヤーは、データ損失がないことを確認するためにハードウェアをテストしましたか?彼が偽のドライブを購入して販売することを再認識していますか?必ずしも。

  2. 彼が偽物だと知らないものを買う可能性はありますか?完全に、最近のryzenの偽物を見てください: https://www.pcgamer.com/beware-of-fake-ryzen-processors-selling-on-Amazon/https:/ /www.heise.de/newsticker/meldung/Direkt-von-Amazon-Faelschungen-von-AMDs-Ryzen-Prozessoren-im-Umlauf-3772757.html

  3. ドライブでプレゼンテーションを失い、プレゼンテーションを台無しにした場合、信頼できるサプライヤーは時間をさかのぼって助けてくれますか?最後の時間旅行デロリアンが1885年に破壊されたので、おそらくドライブを交換します。

他のもの

「この質問は、OPが気に入っている点で「プロモーション」に似ているようで、OPが実際にドライブをテストすることにあまり興味がないようです。」

ばかげてる。 Linuxでも動作するh2testwと同様のツールを特に探していました。そして、はい、それは私が「好き」にしたいことです、役に立つ答え、とても申し訳ありません。私は英語を話すマスコミがそのような問題にそれほど気づいていないことを知りませんでした。これはプロモーションではありませんが、実際には使用できるようです。

22
verpfeilt

f3-フラ​​ッシュ詐欺との戦い

私が見つけた選択肢は1つだけですが、これはMS Windows用の元のh2testwツールよりも優れたものだと思います。幸いなことに、コマンドラインからでも簡単に使用できます。ただし、利用可能なGUIがあります。ツールのWebサイトには、実装と偽ドライブに関する問題に関する多くの情報もあります。

f3には2つの方法があります。

  • f3probeメソッド:はるかに高速
  • h2testwメソッド:遅い。また、R/Wパフォーマンスをテストします。おそらくより信頼性が高い。

F3probeメソッド(推奨)

f3probeはドライブをテストする1つの方法であり、ドライブ全体に書き込むわけではないため、それほど正確ではありませんが高速です。詳細については、ツールのWebサイトをご覧ください。 100%確実にしたい場合は、h2testwメソッドを使用することをお勧めします。開発者がウェブサイトで説明しているように:

f3probeは、偽のドライブとその実際のサイズを識別するための最速の方法です。

そして:

最後に、f3probeはフリーソフトウェアであり、f3probeが戦闘で証明されると、f3probeをスマートフォン、カメラ、MP3プレーヤー、およびその他のデバイスに組み込み、偽のフラッシュが急増するのを止めることができます。

Webサイトには使用例もあります。

警告:これは、ディスクに以前に保存されたデータを破壊します!

$ Sudo f3probe --destructive --time-ops /dev/sdb
[Sudo] password for michel: 
F3 probe 6.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

WARNING: Probing may **demolish data,** so it is more suitable for flash drives out of the box, without files being stored yet. The process normally takes from a few seconds to 15 minutes, but
         it can take longer. Please be patient. 

Bad news: The device `/dev/sdb' is a counterfeit of type limbo

You can "fix" this device using the following command:
f3fix --last-sec=16477878 /dev/sdb

Device geometry:
             *Usable* size: 7.86 GB (16477879 blocks)
            Announced size: 15.33 GB (32155648 blocks)
                    Module: 16.00 GB (2^34 Bytes)
    Approximate cache size: 0.00 Byte (0 blocks), need-reset=yes
       Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 1'13"
 Operation: total time / count = avg time
      Read: 472.1ms / 4198 = 112us
     Write: 55.48s / 2158 = 25.7ms
     Reset: 17.88s / 14 = 1.27s

f3fixを使用して、ドライブを実際のサイズで使用できるようにするコマンドも返すことに注意してください。

F3fixツール

f3fixは、偽ドライブの実際のサイズに合うパーティションを作成します。 f3probeの出力を使用して、i3fixのパラメーターを決定します

Sudo f3fix --last-sec=16477878 /dev/sdb

H2testwメソッド/ f3read/f3writeを使用したパフォーマンスのテスト

F3は、偽のフラッシュドライブを扱うツールのコレクションです。それらの2つは一緒にh2testw- Methodを実装します:

f3write [--start-at=NUM] [--end-at=NUM] <PATH>
f3read  [--start-at=NUM] [--end-at=NUM] <PATH>

f3writeは、要求されたデバイスのサイズを要求し、サイズがそれぞれ1 GBの生成されたファイルでそれを埋めます。 f3readはすべてのファイルを読み取り、それらが完全で壊れていないことを確認します。例として、〜128gbのサムドライブをテストするために使用したコマンド:

$ f3write /media/username/1EB8021AB801F0D7/
Free space: 117.94 GB
Creating file 1.h2w ... OK!                           
...
Creating file 118.h2w ... OK!                         
Free space: 0.00 Byte
Average writing speed: 11.67 MB/s

次に、ファイルが正しく保存されているかどうかをテストします。

$ f3read /media/username/1EB8021AB801F0D7/
                  SECTORS      ok/corrupted/changed/overwritten
Validating file 1.h2w ... 2097152/        0/      0/      0
...
Validating file 118.h2w ... 1979488/        0/      0/      0

  Data OK: 117.94 GB (247346272 sectors)
Data LOST: 0.00 Byte (0 sectors)
           Corrupted: 0.00 Byte (0 sectors)
    Slightly changed: 0.00 Byte (0 sectors)
         Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 32.38 MB/s

このサイズのドライブのテストでは、この方法で約3時間かかり、コンピューターに大きなディスク負荷がかかることがありましたが、最も正確であると言われています。

Ubuntuにインストールする

ターミナルで:

Sudo apt install f3

これにより、f3brewf3fixf3probef3readf3writeのマニュアルページが表示されます。

このツールはf3パッケージの一部であり、少なくともUbuntu 15.10で利用可能です。ウェブサイトによると、利用可能なツールがいくつかあります。それらを取得するには、ウェブサイトを見てください。
パッケージには短くても便利なマンページが付属していますが、たとえばf3read/writeとf3probeの違いに関するWebサイトからの情報を見逃しているため、この回答が少し長くなっています。

27
verpfeilt

CapacityTester(screenshot) と呼ばれるシンプルなツールを作成しました。GUIとCLIがあります。

ダウンロード可能なDebian 7用のプリコンパイル済みバイナリ があります。これは、最新のUbuntuシステムではすぐに動作する可能性が非常に高いです。

私はこの目的のためのグラフィカルツールを見つけることができなかったので、私自身の個人的な使用のためにそれを書きました。最初に空のUSBフラッシュドライブをマウントし、それを選択してテストを開始するだけです。ドライブがファイルで満たされ、ドライブ上のデータが正しいことを確認するだけなので、非常に愚かなツールです。最初のエラー(書き込みまたは読み取り/検証)でテストを中止します。正常に書き込みまたは検証できなかったチャンクのオフセットを報告しますが、これは論理オフセットであるため、ドライブ上のファイルがあるファイルシステムに依存するため、この情報は役に立たない場合があります。ただし、ドライブがデータで一杯になり、すべてを読み取って検証できる場合は、ドライブの報告された容量が正しいと想定しても安全です。補足として、テストファイルは自動的に削除されます(ドライブが不良の場合、これは機能しない場合があります)。

繰り返しますが、既存のファイルシステムの上のファイルでのみ機能するため、非常に簡単です。そのため、テストできないKB(+ 1Mバッファー)があります。そして、それは本当にファイルシステム全体を埋めるので非常に遅いです。 F3は確かにはるかに洗練されており、高速ですが、GUIはありません。 CapacityTesterが存在する唯一の理由は、コマンドラインに慣れていないユーザーや単にGUIを好むユーザーが使用できるようにGUIを備えているためです。

フィードバックを歓迎します。

3
c0xc