オフラインのマシンへのデータのコピーや、Linuxのインストールに使っていたUSBメモリが壊れてしまったようだ。 書いたファイルを読んでみたところ、ファイルの中身がヌルの連続になっていた。

まずは、これが本当に壊れてるかチェックした。

sudo apt install e2fsprogs
sudo badblocks -svw /dev/sdx

-wオプションをつけると、USBメモリの中身を破壊しながらチェックするので注意。

大量の壊れたブロックが検出された。このUSBメモリは駄目のようだ。

代わりに、激安のUSBメモリを買ってきた。 同じように壊れてないか調べたついでに、 容量がフェイクでないかを調べた。

容量がフェイクのディスクの場合、別々のブロックが同じアドレスに割りあてられるようなので、 同じデータを全域に書いてチェックするbadblocksコマンドでは、検出できない。 この場合でもフェイクUSBディスクをチェックできるツールを探したところF3というプログラムを発見した。

sudo apt install f3
f3write /path/to/mount/point/of/disk
f3read /path/to/mount/point/of/disk

f3writeコマンドはRNGを使って、中身が同じ値の連続でないデータをファイルに書き込む。 f3readはそのデータを読み込み書き込んだものと変わってないかチェックする。

今回買ったUSBメモリはフェイクの容量ではないようだ。