見えないSDカードキャッシュにどこからアクセスしましたか?

見えないSDカードキャッシュにどこからアクセスしましたか?

USBドングルを介して接続されているSDカードを消去しようとしています。

これが私がしたことです:

# dd if=/dev/zero of=/dev/sdb bs=$((1024*4))
dd: error writing '/dev/sdb': No space left on device
1002267+0 records in
1002266+0 records out
4105281536 bytes (4.1 GB, 3.8 GiB) copied, 2.10549 s, 1.9 GB/s

私が見た奇妙なことは、これがSD HC Iカードなので、転送速度が決して1.9 GB / sに達しないことです。カードは16GBですdmesg

いいですね。どのように書かれたかを見てみましょう。

# head -c 4105281536 /dev/zero | sha1sum 
a1750724bfbf0ada57d986f16b26e789a6c61a1d  -
(reverse-i-search)`': ^C
# head -c 4105281536 /dev/sdb | sha1sum
a1750724bfbf0ada57d986f16b26e789a6c61a1d  -

大丈夫そうです。しかし、プラグを抜いて再接続すると、魔法のように以前と同じファイルシステムを持つようになります。インストールしてファイルを変更すると、修正がsha1sumまだゼロとしてマークされていても修正は保持されます。

このデバイスは確かに次のようになります/dev/sdb

[ 9895.437518] scsi 4:0:0:0: Direct-Access     Mass     Storage Device        PQ: 0 ANSI: 0 CCS
[ 9895.439248] sd 4:0:0:0: [sdb] 30318592 512-byte logical blocks: (15.5 GB/14.5 GiB)
[ 9895.439398] sd 4:0:0:0: [sdb] Write Protect is off
[ 9895.439404] sd 4:0:0:0: [sdb] Mode Sense: 03 00 00 00
[ 9895.439557] sd 4:0:0:0: [sdb] No Caching mode page found
[ 9895.439564] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 9895.441922]  sdb: sdb1 sdb2
[ 9895.443517] sd 4:0:0:0: [sdb] Attached SCSI removable disk

ここで何が起こっているのでしょうか?

カーネルで実行します4.20.3

ベストアンサー1

ddドライブが14.5GiBのときは、3.8GiBのみコピーしたことがわかりました。したがって、あなたが書いているのはおそらくSDカードではありません。 SDカードを取り外して確認してくださいls -lh /dev/sdb

誤っ/dev/dev/sdb。 RAMディスクなので/dev2GBpsで書き込める理由を説明します。

dd命令を完了した後はsync、万が一を備えて覚えておいてください。これはカーネルが持っているすべてのキャッシュをフラッシュするように指示します。

おすすめ記事