fakeなmicroSDカードにwishbone ash、アルゴス

いやー、はまりにハマった一週間であったが、よもやfakeなmicroSDカードが原因だったと今朝になるまで気付けなかった。

f:id:hoshiyama-jun:20210112162201j:plain
fakeな仲間たち

exfatでフォーマットできるが、ext4やntsfなどでフォーマットできない

fdiskで、pするとそれなりにマトモな感じに見えるがdもnもwできないんだワ。これが。

大量データを保存してみるとなぜかデータの取りこぼしや不整合がそれなりに出る。メゲずに壊れたファイルをようやくリストアしたかと思い翌日ファイルにアクセスするとロードできない、昨日のフル作業が灰燼と帰す。

マシーン環境やデバイス、転送プログラムなど見直しもしやと思いググるとこの話題。ザクザクあります。そしてまず、H2testwにたどり着く。早速試してみるが8時間程度経っても延々と続くH2testwはあきらめ、もう一つたどり着いたf3probeで覚醒。

sudo ./f3probe --destructive --time-ops /dev/mmcblk0sudo ./f3probe --destructive --time-ops /dev/mmcblk0

とすると。

F3 probe 8.0
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.
Bad news: The device `/dev/mmcblk0' is damaged
Device geometry: *Usable* size: 0.00 Byte (0 blocks)
Announced size: 999.02 GB (2095104000 blocks)
Module: 1.00 TB (2^40 Bytes)
Approximate cache size: 31.00 MB (63488 blocks), need-reset=no
Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 7'36" Operation: total time / count = avg time
Read: 13.44s / 131289 = 102us Write: 7'22" / 190721 = 2.3ms
Reset: 2us / 2 = 1us

7分半で結果が得られる。が、

「Bad news: The device `/dev/mmcblk0' is damaged Device geometry: Usable size: 0.00 Byte (0 blocks)」 ってところから、アダプタとかマシーン側ハードウェアの不調かもと思いUSB刺しでも試してみたが変わらず。まぎれもないfakeでした。 しかし、使える領域があるんじゃないかと、あきらめ悪く続けてみる。

fdiskの状況はこんな感じ。

sudo fdisk /dev/mmcblk0

fdisk (util-linux 2.34) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。


コマンド (m でヘルプ): p
ディスク /dev/mmcblk0: 999.2 GiB, 1072693248000 バイト, 2095104000 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x00000000

デバイス       起動 開始位置   最後から     セクタ サイズ Id タイプ
/dev/mmcblk0p1            32 2095103999 2095103968   999G  7 HPFS/NTFS/exFATsudo fdisk /dev/mmcblk0

fdisk (util-linux 2.34) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。


コマンド (m でヘルプ): p
ディスク /dev/mmcblk0: 999.2 GiB, 1072693248000 バイト, 2095104000 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x00000000

デバイス       起動 開始位置   最後から     セクタ サイズ Id タイプ
/dev/mmcblk0p1            32 2095103999 2095103968   999G  7 HPFS/NTFS/exFAT

そんじゃパーテーションをいじってみるか。って事で、アダプタもfakeかもと頭をよぎりmicroSDをUSB刺ししてlsblk。

sdb
└─sdb1 exfat 688C-5C75

で、再びfdisk。

ディスク /dev/sdb1: 999.2 GiB, 1072693231616 バイト, 2095103968 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x00000000

デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ
/dev/sdb1p1 4294967295 8589934589 4294967295 2T ff BBT
/dev/sdb1p2 4294967295 8589934589 4294967295 2T ff BBT
/dev/sdb1p3 4294967295 8589934589 4294967295 2T ff BBT
/dev/sdb1p4 4294967295 5035196669 740229375 353G ff BBT

笑ってしまう4つのパーテーション。まっさらにすっか。って事で手始めに一個削除。

sudo fdisk /dev/sdb
fdisk (util-linux 2.34) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。 書き込みコマンドを使用する際は、注意して実行してください。

コマンド (m でヘルプ): d パーティション 1 を選択
パーティション 1 を削除しました。
コマンド (m でヘルプ): w
パーティション情報が変更されました。
ioctl() を呼び出してパーティション情報を再読み込みします。
/dev/sdb: デバイスのクローズに失敗しました: 入力/出力エラーです

というありさま。しかし、500Gあたり500円程度のコストなんだが販売業者的にペイできているのか?を考えた時、何故かふとArgusを思い出してしまった。

以下、正常なモノでは。

mmcblk0
└─mmcblk0p1 exfat          0123-4567

sudo fdisk /dev/mmcblk0

fdisk (util-linux 2.34) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。


コマンド (m でヘルプ): p
ディスク /dev/mmcblk0: 116.37 GiB, 124939927552 バイト, 244023296 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x00000000

デバイス       起動 開始位置  最後から    セクタ サイズ Id タイプ
/dev/mmcblk0p1         32768 244023295 243990528 116.4G  7 HPFS/NTFS/exFAT

コマンド (m でヘルプ): i
パーティション 1 を選択
         Device: /dev/mmcblk0p1
          Start: 32768
            End: 244023295
        Sectors: 243990528
      Cylinders: 15188
           Size: 116.4G
             Id: 7
           Type: HPFS/NTFS/exFAT
    Start-C/H/S: 2/10/9
      End-C/H/S: 1023/254/63


sudo ./f3probe --destructive --time-ops /dev/mmcblk0
F3 probe 8.0
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: 116.36 GB (244023296 blocks)
                Announced size: 116.36 GB (244023296 blocks)
                        Module: 128.00 GB (2^37 Bytes)
        Approximate cache size: 0.00 Byte (0 blocks), need-reset=no
           Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 2'38"
 Operation: total time / count = avg time
      Read: 707.7ms / 4817 = 146us
     Write: 2'29" / 4192321 = 35us
     Reset: 2us / 1 = 2us

さて。失った時間を取り戻さねば。Blowin' Free。