wer hat Ahnung von dd bzw. wie kann man Fake Datenträger sicher identifizieren (linux)

  • ok, das sind zwei Fragen, die können hier gerne getrennt oder zusammen diskutiert werden.


    Hintergrund:

    für eine neue Kamera, habe ich mir eine passende SD-Card gekauft. Diese ist von SanDisk, die Extreme Pro 64Gb.

    Diese und auch andere Karten werden ja gern mal als Fake in den Handel gebracht. Die haben dann entweder nicht die versprochene Kapazität oder sind wesentlich langsamer als angegeben. Dies wollte ich jetzt nach dem Kauf ergründen. Dazu habe ich die SD-Card in einen USB3 Cardreader mit 5Gps gegeben und ausgelesen.

    Als erstes habe ich mit f3 (Fight Flash Fraud) mal alle Zellen beschrieben, ausgelesen und verifiziert. Das war dann schon mal OK - alle 64Gb sind vollständig vorhanden. Dabei ist mir jedoch aufgefallen, das der Schreibtest unter f3 mit ca. 3,5 Mb/sek recht langsam verlief.

    Mit hdparm habe ich dann mal einen schnellen Test gemacht.


    Code
    1. root@Desktop1:/home/fdm62# hdparm -tT /dev/sde
    2. /dev/sde:
    3. Timing cached reads: 9352 MB in 2.00 seconds = 4678.64 MB/sec
    4. Timing buffered disk reads: 128 MB in 3.02 seconds = 42.38 MB/sec


    hdparm ist sicher nicht das Maß der Dinge mit drei Sekunden Messzeit. Danach habe ich dann mal 10 Gb vdr Filme auf die SD-Card kopiert und dabei die Zeit gemessen. Bei mehreren Versuchen kam ich so auf 38 - 45 Mb/sek.

    Gerne wird ja unter Linux dd zum zum beschreiben und zeitmessen genommen. Mit folgenden Befehl hab ich 1000 x 1Megabyte Blöcke in eine Datei auf die Karte geschrieben:


    Code
    1. root@Desktop1:/home/fdm62# dd count=1k bs=1M if=/dev/zero of=/media/fdm62/3330-3632/test.img
    2. 1024+0 Datensätze ein
    3. 1024+0 Datensätze aus
    4. 1073741824 bytes (1,1 GB, 1,0 GiB) copied, 3,19153 s, 336 MB/s


    336Mb wären fantastisch, aber eher unglaubwürdig. Ich habe dann das File auf 10Gb vergrößert und nochmals versucht.

    Code
    1. root@Desktop1:/home/fdm62# dd count=10k bs=1M if=/dev/zero of=/media/fdm62/3330-3632/test.img
    2. 10240+0 Datensätze ein
    3. 10240+0 Datensätze aus
    4. 10737418240 bytes (11 GB, 10 GiB) copied, 224,553 s, 47,8 MB/s


    das sah schon realistischer aus. Daraufhin habe ich das nochmal mit 30Gb probiert


    Code
    1. root@Desktop1:/home/fdm62# dd count=30k bs=1M if=/dev/zero of=/media/fdm62/3330-3632/test.img
    2. 30720+0 Datensätze ein
    3. 30720+0 Datensätze aus
    4. 32212254720 bytes (32 GB, 30 GiB) copied, 705,36 s, 45,7 MB/s


    Kann es sein, das dd bei kleineren Datenmengen das im System cached oder cached das die SD-Card vielleicht selbst?

    Und womit testet Ihr solche Dinge?

    Über hdparm und auch smartctl ließen sich auch keine Speicherinfos abrufen, da entweder der USB Controller nicht von smartctl unterstützt wird bzw. auch wohl keine Infos auf der SD-Card vorhanden sind. Unter Windows gibt es da wohl einige Programme zum Auslesen der Karteninfos, aber das würde mir hier nichts nutzen. Nach den jetzigen Versuchen würde ich meinen, das die Karte mit U3 Schreibrate wohl soweit OK ist.

  • danke,


    dsync, sync und direct scheinen hier keinen Einfluss auf das Ergebnis zu haben



  • bezüglich einiger Messergebnisse muss ich mich korrigieren.

    Ich habe jetzt festgestellt, das die verwendete USB3 Verlängerung Schrott ist. Das Kabel am Reader ist rel. kurz , ca 0,5m (sicher auch gut so) , macht sich aber im Handling schlecht, da USB3 nur hinten am Desktop vorhanden ist. Da habe ich eine 3m Verlängerung verwendet. Laut lsusb arbeitet das Gerät mit USB3 Speed ( - Device can operate at SuperSpeed (5Gbps)), liefert aber nur mäßige Ergebnisse, siehe oben bei 10 bzw. 30 GB. Jetzt habe ich die Verlängerung heraus geworfen und den Reader direkt am Port verwendet.

    Hier das aktuelle Ergebnis:

    Code
    1. root@Desktop1:/home/fdm62# dd count=10k bs=1M oflag=nocache if=/dev/zero of=/media/fdm62/3330-3632/test1.img
    2. 10240+0 Datensätze ein
    3. 10240+0 Datensätze aus
    4. 10737418240 bytes (11 GB, 10 GiB) copied, 109,128 s, 98,4 MB/s

    weiterhin besteht aber die Diskrepanz bei kleinen Daten:


    Code
    1. root@Desktop1:/home/fdm62# dd count=100 bs=1M oflag=nocache if=/dev/zero of=/media/fdm62/3330-3632/test.img
    2. 100+0 Datensätze ein
    3. 100+0 Datensätze aus
    4. 104857600 bytes (105 MB, 100 MiB) copied, 0,10253 s, 1,0 GB/s
    5. root@Desktop1:/home/fdm62# dd count=500 bs=1M oflag=nocache if=/dev/zero of=/media/fdm62/3330-3632/test.img
    6. 500+0 Datensätze ein
    7. 500+0 Datensätze aus
    8. 524288000 bytes (524 MB, 500 MiB) copied, 0,4951 s, 1,1 GB/s