近年はフラッシュストレージの偽物が多く出回っています。速度を偽るものや容量を偽るものなどがあり、速度はともかく容量を偽られるとデータが壊れてしまい困ります。
このようなストレージのテストにWindowsでは H2testw
というツールが定番のようですが、Linuxでは無いだろうかと探すとそのままH2testw代替というf3(Fight Flash Fraud)を見つけたので少し試してみました。
Debian sid amd64環境では f3
というパッケージでした。
$ apt show f3 Package: f3 Version: 7.2-1 Priority: optional Section: utils Maintainer: Antoine Beaupré <anarcat@debian.org> Installed-Size: 183 kB Depends: libc6 (>= 2.28), libparted2 (>= 3.1), libudev1 (>= 183) Homepage: http://oss.digirati.com.br/f3 Download-Size: 47.3 kB APT-Manual-Installed: yes APT-Sources: http://ftp.jp.debian.org/debian sid/main amd64 Packages Description: test real flash memory capacity F3 (Fight Flash Fraud or Fight Fake Flash) tests the full capacity of a flash card (flash drive, flash disk, pendrive). . F3 writes to the card and then checks if can read it. It will assure you have not been bought a card with a smaller capacity than stated. Note that the main goal of F3 is not to fix your removable media. However, there are resources to mark the invalid areas. . This package provides these executables: f3write, f3read, f3brew, f3fix and f3probe. $ sudo apt install f3 $ dpkg -L f3| grep \/bin\/ /usr/bin/f3brew /usr/bin/f3fix /usr/bin/f3probe /usr/bin/f3read /usr/bin/f3write
先ずは書き込みテストコマンドの f3write
を試します。これは該当ストレージをマウントした状態で、マウントポイントを指定します。
$ time f3write /media/matoken/A2BA-98E0 F3 write 7.2 Copyright (C) 2010 Digirati Internet LTDA. This is free software; see the source for copying conditions. Free space: 29.80 GB Creating file 1.h2w ... OK! Creating file 2.h2w ... OK! Creating file 3.h2w ... OK! Creating file 4.h2w ... OK! Creating file 5.h2w ... OK! Creating file 6.h2w ... OK! Creating file 7.h2w ... OK! Creating file 8.h2w ... OK! Creating file 9.h2w ... OK! Creating file 10.h2w ... OK! Creating file 11.h2w ... OK! Creating file 12.h2w ... OK! Creating file 13.h2w ... OK! Creating file 14.h2w ... OK! Creating file 15.h2w ... OK! Creating file 16.h2w ... OK! Creating file 17.h2w ... OK! Creating file 18.h2w ... OK! Creating file 19.h2w ... OK! Creating file 20.h2w ... OK! Creating file 21.h2w ... OK! Creating file 22.h2w ... OK! Creating file 23.h2w ... OK! Creating file 24.h2w ... OK! Creating file 25.h2w ... OK! Creating file 26.h2w ... OK! Creating file 27.h2w ... OK! Creating file 28.h2w ... OK! Creating file 29.h2w ... OK! Creating file 30.h2w ... OK! Free space: 0.00 Byte Average writing speed: 7.43 MB/s real 68m29.007s user 0m7.454s sys 0m51.266s
次に読み込みテストコマンドの f3read
を試します。
$ time f3read /media/matoken/A2BA-98E0 F3 read 7.2 Copyright (C) 2010 Digirati Internet LTDA. This is free software; see the source for copying conditions. SECTORS ok/corrupted/changed/overwritten Validating file 1.h2w ... 2097152/ 0/ 0/ 0 Validating file 2.h2w ... 2097152/ 0/ 0/ 0 Validating file 3.h2w ... 2097152/ 0/ 0/ 0 Validating file 4.h2w ... 2097152/ 0/ 0/ 0 Validating file 5.h2w ... 2097152/ 0/ 0/ 0 Validating file 6.h2w ... 2097152/ 0/ 0/ 0 Validating file 7.h2w ... 2097152/ 0/ 0/ 0 Validating file 8.h2w ... 2097152/ 0/ 0/ 0 Validating file 9.h2w ... 2097152/ 0/ 0/ 0 Validating file 10.h2w ... 2097152/ 0/ 0/ 0 Validating file 11.h2w ... 2097152/ 0/ 0/ 0 Validating file 12.h2w ... 2097152/ 0/ 0/ 0 Validating file 13.h2w ... 2097152/ 0/ 0/ 0 Validating file 14.h2w ... 2097152/ 0/ 0/ 0 Validating file 15.h2w ... 2097152/ 0/ 0/ 0 Validating file 16.h2w ... 2097152/ 0/ 0/ 0 Validating file 17.h2w ... 2097152/ 0/ 0/ 0 Validating file 18.h2w ... 2097152/ 0/ 0/ 0 Validating file 19.h2w ... 2097152/ 0/ 0/ 0 Validating file 20.h2w ... 2097152/ 0/ 0/ 0 Validating file 21.h2w ... 2097152/ 0/ 0/ 0 Validating file 22.h2w ... 2097152/ 0/ 0/ 0 Validating file 23.h2w ... 2097152/ 0/ 0/ 0 Validating file 24.h2w ... 2097152/ 0/ 0/ 0 Validating file 25.h2w ... 2097152/ 0/ 0/ 0 Validating file 26.h2w ... 2097152/ 0/ 0/ 0 Validating file 27.h2w ... 2097152/ 0/ 0/ 0 Validating file 28.h2w ... 2097152/ 0/ 0/ 0 Validating file 29.h2w ... 2097152/ 0/ 0/ 0 Validating file 30.h2w ... 1671296/ 0/ 0/ 0 Data OK: 29.80 GB (62488704 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: 19.53 MB/s real 26m7.658s user 0m15.443s sys 0m16.790s
そして本命の f3probe
で全領域にデータを書き込んでベリファイして実際に表示される容量が利用できるかを確認します。実行にはroot権限が必要でアンマウントした状態で該当デバイスを指定します。 ※ストレージ内のデータは破壊されます。
$ time sudo f3probe /dev/mmcblk0 F3 probe 7.2 Copyright (C) 2010 Digirati Internet LTDA. This is free software; see the source for copying conditions. WARNING: Probing normally takes from a few seconds to 15 minutes, but it can take longer. Please be patient. Probe finished, recovering blocks... Done Good news: The device `/dev/mmcblk0' is the real thing Device geometry: *Usable* size: 29.81 GB (62521344 blocks) Announced size: 29.81 GB (62521344 blocks) Module: 32.00 GB (2^35 Bytes) Approximate cache size: 0.00 Byte (0 blocks), need-reset=no Physical block size: 512.00 Byte (2^9 Bytes) Probe time: 4'01" real 9m4.350s user 0m0.887s sys 0m1.602s
こちらはクイックテスト。通常テストが9分ちょっと掛かったのに対しこちらは2分ちょっとで終わっています。
$ time sudo f3probe --destructive --time-ops /dev/mmcblk0 F3 probe 7.2 Copyright (C) 2010 Digirati Internet LTDA. This is free software; see the source for copying conditions. WARNING: Probing normally takes from a few seconds to 15 minutes, but it can take longer. Please be patient. Good news: The device `/dev/mmcblk0' is the real thing Device geometry: *Usable* size: 29.81 GB (62521344 blocks) Announced size: 29.81 GB (62521344 blocks) Module: 32.00 GB (2^35 Bytes) Approximate cache size: 0.00 Byte (0 blocks), need-reset=no Physical block size: 512.00 Byte (2^9 Bytes) Probe time: 2'16" Operation: total time / count = avg time Read: 393.4ms / 4815 = 81us Write: 2'15" / 4192321 = 32us Reset: 0us / 1 = 0us real 2m16.479s user 0m0.612s sys 0m0.320s
もし、容量を偽ったストレージを利用したい場合、f3probe
コマンドの結果から f3fix
コマンドで実際の容量までしか利用しないよう設定することが可能らしいです。(未確認)
$ sudo f3fix --last-sec=16477878 /dev/mmcblk0
add)
その後優先度を上げてみるとどうだろうとsudo nice -20 ionice -c1 -n0
を付けて試してみましたがほとんど速度は変わらず誤差レベルな感じでした。
て事で今回のカードはSamsung の高耐久モデルのMB-MJ32GA/EC だったのですが,容量は問題なし.ただ速度が読み込み最大100MB/sに対して20.03MB/s,書き込み30MB/sに対して10.11MB/sとかなり遅そうです.更にRaspberry Pi との相性が悪いらしく,Raspberry Pi Zero/ZeroW/A+ で起動に失敗します.Amazonで買ったので返品しようかと…….
おまけ。
f3-qt というGUIの皮もあるようです。これも少し試してみました。
パッケージが見当たらないのでbuildしました。
$ sudo apt install libudev1 libudev-dev libparted-dev $ git clone https://github.com/zwpwjwtz/f3-qt $ cd f3-qt $ qmake $ make
$ dpkg-query -W f3 libudev1 libudev-dev libparted-dev f3 7.2-1 libparted-dev:amd64 3.3-1 libudev-dev:amd64 243-7 libudev1:amd64 243-7 libudev1:i386 243-7 $ lsb_release -dr Description: Debian GNU/Linux bullseye/sid Release: unstable $ uname -m x86_64
I’m not sure where to start.