Forum: PC Hard- und Software SD-Karte testen


von Uhu U. (uhu)


Lesenswert?

Ich wollte ein 8GB Image unter Linux mit dd auf eine 8 GB SD-Karte 
kopieren, aber dd brachte am Ende folgende Meldungen:
1
dd: error writing ‘/dev/sdb’: No space left on device
2
7498+0 records in
3
7497+0 records out
4
7861174272 bytes (7,9 GB) copied, 1113,55 s, 7,1 MB/s

Das Image ist nicht bootfähig, weil wohl am Ende eine Kleinigkeit fehlt 
- der letzte 1M-Block lässt sich nicht schreiben.

Offenbar sind da ein paar Sektoren tot. Wann das Problem erstmals 
aufgetreten ist, oder ob es womöglich schon von Anfang an bestand, weiß 
ich leider nicht - die Karte habe ich noch keinen Monat. Laut Aufdruck 
stammt sie von Samsung.

Nun aber zu meiner eigentlichen Frage:
Ich habe - wie üblich - dierekt nach dem Eintreffen alle Medien getestet 
- diemal nicht mit dem C't-Test, sondern mit f3 unter Linux - der Test 
lief fehlerfrei und tut es auch jetzt noch, wenn ich die Karte 
formatiere.

Gibt es eine Möglichkeit, die Anzahl der vorhandenen Sektoren auf dem 
Medium zu testen?

von Hubert M. (hm-electric)


Lesenswert?

Uhu Uhuhu schrieb:
> dd: error writing ‘/dev/sdb’: No space left on device

Steht doch schon da: No Spce left on device. Also kein Speicherplatz 
mehr frei.
Wieso denkst du, das da die Karte ein fehler hat?

Und die Aufgedruckten 8 GB sind in Wahrheit nie 8 GB.

von Uhu U. (uhu)


Lesenswert?

Hubert Mueller schrieb:
> Steht doch schon da: No Spce left on device.

Hab ich was anderes behauptet? Offenbar hast du das Problem nicht 
verstanden.

> Wieso denkst du, das da die Karte ein fehler hat?

Na was macht wohl der Kartencontroller, wenn er einen defekten Block 
findet? Richtig, er hängt einen Reserveblockt ein, wenn welche dafür 
vorgesehen sind; wenn nicht, dann hat die Karte eben einen Block 
weniger.

Wenn ich eine 8GB-Karte kaufe, dann kann ich erwarten, dass da auch noch 
8 GB verfügbar sind - nur merkt der f3-Test nicht, wenn es weniger sind.

Es wird also ein Test benötigt, um solche faulen Eier zu finden 
damit man das Teil als defekt zurückgeben kann.

Danach habe ich gefragt.

> Und die Aufgedruckten 8 GB sind in Wahrheit nie 8 GB.

Wenn das wahr wäre, wäre das Verteilen von Kartenimages sinnlos.

: Bearbeitet durch User
von Jim M. (turboj)


Lesenswert?

Der o.g. Fehler kommt nur, wenn das Block device zu klein ist.

Mach also mal
1
sudo /sbin/blockdev --getsize64 /dev/sdb
und vergleiche das mit der Größe der Imagedatei. Ich vermute stark, dass 
die Karte einfach ein paar 512 Byte Blöcke kleiner ist. Und ja, die 
genaue Größe einer 8GB Karte ist nicht im Standard festgelegt.

von Uhu U. (uhu)


Lesenswert?

Jim Meba schrieb:
> sudo /sbin/blockdev --getsize64 /dev/sdb

Das funktioniert - danke für den Tipp.

Für die Karte wird 7861174272 = 7497 MB angezeigt

Eine andere, die bis jetzt keine Probleme gemacht hat, hat
7969177600 = 7600 MB

Ein 8GB USB-Stick hat nur 7636 MB
Ein 64GB USB-Stick (Billigheimer) hat nur 60500 MB

> Und ja, die genaue Größe einer 8GB Karte ist nicht im Standard festgelegt.

Wo ist das festgelegt?

: Bearbeitet durch User
von Helge A. (besupreme)


Lesenswert?

Die bad blocks von SD-Karten und USB-Sticks werden wie bei Festplatten 
auch beim low-level-Formatieren blockiert. Die guten werden unter 
Markennamen teuer verkauft, bei den billigen no-name muß man Glück haben 
mit der Kapazität.

von Uhu U. (uhu)


Lesenswert?

Helge A. schrieb:
> Die bad blocks von SD-Karten und USB-Sticks werden wie bei Festplatten
> auch beim low-level-Formatieren blockiert.

Bei den Flash-Devices ist das noch neutlich komplizierter. Die 
Speicherzellen haben keine sonderlich große Lebensdauer und damit nicht 
nach 100000 Änderungen in einem Verzeichnis das ganze Medium reif für 
die Tonne ist, wechselt der Controller die Zuordnung zwischen 
Blockadresse und physikalischem Block bei jedem Schreibvorgang. Bei der 
Gelegenheit werden "weiche" Blocks ausgesondert und gegen einen 
Reserveblock ausgetauscht.

Kritisch wirds, wenn es keine Reserve mehr gibt.

von Anja Zoe C. (zoe)


Lesenswert?

Es gibt doch vom Heise eine Test-SW für USB Sticks, SD-Karten etc. Hab 
ich selber mal gut brauchen können als eine 16 oder 32 G Sandisk Karte 
nur eine 4G war.

von Konrad S. (maybee)


Lesenswert?

Da hat der Ersteller des Images einfach die Größe seiner SD-Karte als 
Wahrheit genommen und nicht weiter drüber nachgedacht. Kann man unter 
"Anfängerfehler" verbuchen.

Die einfachste Lösung: Schreib das Image auf eine 16-GB-Karte.
Das Umarbeiten eines bootfähiges Images für eine kleinere Karte kann 
richtig in Arbeit ausarten.

von Vlad T. (vlad_tepesch)


Lesenswert?

Konrad S. schrieb:
> Die einfachste Lösung: Schreib das Image auf eine 16-GB-Karte.
> Das Umarbeiten eines bootfähiges Images für eine kleinere Karte kann
> richtig in Arbeit ausarten.

oder:
kopier von

Uhu Uhuhu schrieb:
> Eine andere, die bis jetzt keine Probleme gemacht hat, hat
> 7969177600 = 7600 MB

auf

Uhu Uhuhu schrieb:
> Für die Karte wird 7861174272 = 7497 MB angezeigt

und benutze erstere für das image

von Uhu U. (uhu)


Lesenswert?

Konrad S. schrieb:
> Die einfachste Lösung: Schreib das Image auf eine 16-GB-Karte.
> Das Umarbeiten eines bootfähiges Images für eine kleinere Karte kann
> richtig in Arbeit ausarten.

Ich habs versucht und bin damit auf die Schnauze gefallen: gparted 
startet vor dem Resize fsck und das beschwert sich dann, das Medium, in 
dem Fall also das Loop-Device, über das das Image gemountet ist, müsste 
entweder beschreibbar sein, oder die ganze Chose muss mit root-Rechten 
gemacht werden.

Die Image-Datei ist beschreibbar und das Ganze lief unter root. Warum 
dieses verfluchte fsck für ext3 auch von der Kommandozeile aus direkt 
aufgerufen nicht will, weiß der Teufel.

: Bearbeitet durch User
von Jim M. (turboj)


Lesenswert?

1
cat /proc/mounts

Moderne Distris mounten SD Karten gerne mal automatisch irgendwohin, 
damit Luser auch was damit anfangen kann. Dann muss natürlich vorher 
umount ran.

: Bearbeitet durch User
von Uhu U. (uhu)


Lesenswert?

Jim Meba schrieb:
> cat /proc/mounts

Und was ist der Unterschied zum klassischen mount ohne Parameter?

> Dann muss natürlich vorher umount ran.

Das hat auch nichts geholfen. Weiß der Henker warum.

: Bearbeitet durch User
von Swissbit (Gast)


Lesenswert?

Ein 8GB Flash-Speichermedium hat grundsätzlich auch 8GB an 
Flash-Speicher verbaut.

Ein Teil des Speichers wird jedoch für die Firmware bzw. die 
Verwaltungsdaten der Karte gebraucht (allerdings nur ein paar KB), der 
grösste Teil ist die sogenannte User-Area (den Teil auf den der Host 
Zugriff hat, wo man Daten speichern kann).

Daneben wird noch ein Teil für die Reserveblöcke verwendet (Spare 
Blocks). Geht ein Flash Block "kaputt" (Bad Block), tauscht ihn die 
Karte intern (der User merkt davon nichts)mit einem Spare Block dem 
Reservebereich aus.

Der User-Bereich bleibt also immer gleich gross! Hier unterscheiden sich 
Flash-Speicherprodukte von traditionellen HDDs.

Allerdings ist dieser Bereich nicht bei allen Herstellern gleich gross, 
da sich die Anzahl an Spare-Blöcken und somit die Grösse des 
"Reservebereichs" je nach Hersteller unterscheiden kann. Wie viel Spare 
gebraucht wird um eine möglichst lange Lebenszeit des Produktes zu 
erreichen hängt von den eingesetzten Speichertypen ab. Somit haben 
unterschiedliche Modell auch unterschiedlich viel "Speicherplatz". Zwei 
Modelle der gleichen Serie sollten sich jedoch nicht Unterscheiden.

von Uhu U. (uhu)


Lesenswert?

Swissbit schrieb:
> Somit haben
> unterschiedliche Modell auch unterschiedlich viel "Speicherplatz". Zwei
> Modelle der gleichen Serie sollten sich jedoch nicht Unterscheiden.

Nach meinen bisherigen Tests liegt verfügbare Speicherplatz zwischen 5 
und 10% unter der angegebenenen Größe.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.