Cześć.
Taka sytuacja: jest PC w postaci tabletu z pamięcią flash emmc na bazie
windowsa.
Pamięć chciałbym sobie zarchiwizować zanim zacznę instalacje czegoś
innego bądź testy.
Tablet, jak to tablet, ma bios pisany przez imbecyli. Sprowadza się do
tego że da się uruchmić tylko system operacyjny z 32 bitowym efi. Na
szczęscie kilka linuxów jak Debian 9 takowe ma jeszcze łaskawie
dodawane. W razie czego jest też grub super disc.
Tak czy inaczej bootuje konsolowego linuxa i dostaje dostęp do /dev/mmcblk1
To jest dokładnie 16GB danych które dumpuje do pliku.
Robie to kilka razy i okazuje się że mam pojedyncze błedy odczytu.
Konkretnie co kilkanascie MB przestawiany jest bit numer 3 w bajcie. Nie
ma znaczenia w którą stronę, wydaje się też że nie ma znaczenia też
jakie wartości mają sąsiednie bity. Jest bit flip raz na jakiś czas.
Zrzuciłem kilka takich plików i rozkład tych zmian rokuje nadzieje że
mógłbym podejśc do sprawy statystycznie: jeśli danym bit w każdym z
dumpów ma 1 za wyjątkiem jednego, "to ma 1". Itd.
Ufff...
Teraz pytanie: jest jakaś apliakcja która zautomatyzuje mi takie
porównanie kilku raw dumpów? Mogę ją wyrzeźbić w pythonie, ale specyfika
problemu powoduje że to nie jest takie super trywialne z powodu
wydajności czytania wielu plików. Zanim odpale pythona zapytam czy ktoś
zna gotowca? Przydało by się na zaś. ddrescue wydaje mi się nie potrafi
robić tego w locie.
Druga sprawa: być może te bitflipy pochodzą ze sterownika mmcblk linuxa.
Aby to sprawdzić chciałbym odpalić inny OS, pewnie windwos i w nim
zrzucić *raw* całośc pamięci emmc. To oznacza że musze mieć bootowalny
windows + jakiś soft. Z gory informuje że ze względu na kiepską
kompatybilnośc z PC BartsPE nie działa a Gandalf's odpala się do połowy
i chyba mu brakuje pamięci. Mam jeszcze jakąs opcję? Jest mi to
potrzebne aby wykluczyć uszkodzenie samej pamięci flash.
|