Hallo,
Arno Steffens schrieb:
Ich möchte den Inhalt eines Flash-Speichers
(/dev/mmcblk0) regelmäßig
komplett lesen, so ähnlich wie es dd if=/dev/mmcblk0 of=/dev/zero
tut. Allerdings soll das im System als Last nicht negative bemerkbar
machen. Warum? Der Controller findet potentielle Datenverluste / ECC
Fehler nur, wenn die Daten gelesen wird. Und es gibt ja auch Bereiche
im Flash die selten gelesen werden, daher so soll alles abgescannt
werden. Zeit spielt keine Rolle, das kann ruhig dauern. Die
Fehlerbehebung selbst geschieht dann intern, das ist kein Thema.
Das könnte man jetzt einfach mit einem open/fopen und read/fread
machen. Wenn nebenbei darauf geschrieben würde wäre das kein Problem,
da ja der gelesene Inhalt egal ist. Aber wie mache ich das sozusagen
im Hintergrund, ohne Last?
Am Ende soll das entweder ein Script oder ein Binary sein, dass von
einem Chronjob aufgerufen wird. Schätze mal die Prio niedrig zu
halten geht nur mit einem Binary?
Ich hatte mal so eine ähnliche Situation und hab das mit dem GNU
ddrescue gemacht, das kann sowas wie max read rate:
ddrescue --force -v -v --max-read-rate=1M /dev/sdb /dev/null
Das bleibt auch recht zuverlässig auf dem Wert.
Gruß,
Thomas