[cross] Jaka karta microSD do raspberry?

Użytkownik "sirapacz" napisał w wiadomości grup dyskusyjnych:qqjq6q$18gqp$ snipped-for-privacy@portraits.wsisiz.edu.pl... W dniu 2019-11-14 o 09:30, Adam Lubszczyk pisze:

Dlaczego nie ? To w koncu elektrony zgromadzone gdzies, i to w niewielkiej ilosci.

Przy czym wydaje sie, ze:

-dane na dysku, ktore sie zmieniaja rzadko, jest sens przepisac do takich zuzytych blokow, bo prawdopodobnie beda rzadko zmieniane. A w zamian odzyskamy troche "swiezych" blokow.

-przy okazji przepisywania mozna sprawdzic czy dane sa czytalne, a moze nawet odtworzyc dzieki kodom korekcyjnym, poki stopa bledow mala.

Wiec moze jednak wsadzac do czytnika i pozwolic dzialac ?

J.

Reply to
J.F.
Loading thread data ...

Nie, ponieważ pendrive nie śledzi czasu. Nie wie ile go upłynęło wiec nie wie czy jest sens robić update. Czy robi okresowe przeglądanie - wątpie. Sterowniki (w sensie uC) w pendrive są dużo bardziej prymitywne niż te w kartach sd.

Karta SD robi wear leveling podczas czytania i zapisywania danych. Samo podpięcie jej do zasilania nic nie robi, ale jesli wyłączysz zasilanie w

*starych* kartach w trakcie *odczytu*, możesz uszkodzić dane bo akurat karta relokuje ten blok, ten cas to ponoć milisekundy po operacji, kiedy cośtam jeszcze sobie relokuje w wolnym czasie. Ludzie to powtarzali nie na Pi tylko podpinając do prymitywnych uC, czytali bloki w pętli i wyłaczali zasilanie w trakcie. Co ileśtam razy uszkadzało inne bloki, nie mające z czytanym wiele wspólnego. Ponoć w nowszych kartach to jest jakoś rozwiazane. Mi karta w Pi, stara 4GB, padała kilka razy uszkadzając pliki systemowe, nowsze kilka sztuk 16GB od 3 lat stabilne jak skała.
Reply to
heby

Ale moze czytac dane.

A nie powinny byc bardzo podobne ? w koncu to prawie ta sama funkcjonalnosc.

A jak wylaczali zasilanie ? Bo w trakcie transmisji to rozne bity moze przeklamac ... ale zeby wyszedl z tego rozkaz zapisu, to nie wiem czy tak latwo ..

A mnie calkiem nowe karty 16GB Intenso. No ale system takze czasem cos zapisywal.

J.

Reply to
J.F.

No ale co mu to da? wear-leveling robiony jest na zapisie i *czasami* na odczycie, choć dlaczego na odczycie i co z tym dalej karta robi, np. jak ocenia czy należy coś przeallokować nie jest jasne. Kilka osób badało karty SD od czasu kiedy zauważono że niszczą dane i konkluzja jest taka że nie trzeba operacji zapisu aby wyzwolić błąd relokacji bloku wypinając zasilanie. Wystarczy czytać.

Natomiast pendrive są projektowane pod kątem nagłego wypięcia zasilania. Nawet najgorsze jakosciowo i najstarsze modele nie niszczyły danych podczas wypinania poprzez nadpisanie przypadkowego bloku.

Karta SD pracuje w urządzeniach z baterią. 99.9% wypadków. Nikt o tym nie pomyslał że zasilanie może zostać wyłączone bez wydania komenty "stop".

Pendrive można wyjąć "energicznie" z gniazda. Swoją drogą niektóre bardzo stare pandrive miały malutki, ale jednak, kondensator. Nie wiem do czego bo wear-leveling raczej wtedy nie był w użyciu, może musiały dokończyć operację zapisu bloku bo coś się psuło?

Tranzystorem. Od kilku godzin staram się sobie przypomnieć gdzie ja tego bloga widziałem i nie potrafie znaleźć, być może już go nie ma. To będzie minimum kilka lat jak czytałem o tych problemach i ktoś to w końcu solidnie przetestował in vitro.

Tu chodzi o to że wydajesz rozkaz *odczytu* i mikrosekundy potem wypinasz zasilanie. I dup, wywala się przypadkowy blok w zupełnie innym miejscu, zmieniając zawartość.

Niektóre karty nie są polecane. Być może są nieodporne na wypinanie zasilania bez zatrzymania. Obecnie nie mam pod ręką ani jednej "złej" wiec nie mogę pobawić się, ale jak miałem moją 4GB to co 10 wyłaczenie PI poprzez nagłe wypięcie z USB powodowało uszkodzenie, tylko to uszkodzenie było widoczne dopiero wtedy kiedy czytało się plik systemowy, albo fs napotykał jakiś błąd. Bardzo możliwe że skoro to co

10 raz było widoczne to karta psuła coś za każdym razem tylko nie zawsze psuła coś istotnego.

Z bloga wynikało że wystarczy coś zapisać raz a następnie czytać i podczas czytania wypinać zasilanie. Uszkadzało to bloki. Konkluzja była taka że dodanie kondensatora na zasilaniu karty dawało jej czas na wykrycie spadku napięcia, dokończenia co ma do roboty i wyłaczenia się. Sam tą metodę stosowałem w PI, ale ciezko stwierdzić czy to pomagało bo mniej więcej wtedy zmieniłem kartę i okazało się że to rozwiązało wszelkie problemy a stara karta poszła na przemiał.

Reply to
heby

No wlasnie ... czyli karta cos kombinuje przy czytaniu. Widac ma potrzebe. A pendrive nie ma potrzeby ?

Ja bym sprawdzal, czy sumy kontrolne sie zgadzaja, i ewentualnie zapisal ponownie, moze do innego bloku ...

Cos w tym moze i jest, ale przeciez karty sie podobnie latwo wyciaga ..

No - dawniej to byl mniejszy procent. Moze nawet 1%. Ale byc moze w toku rozwoju wpadli na taki pomysl.

Przy czym bateria ma to do siebie, ze sie rozladowuje, i to nawet czesto. Ale moze na dokonczenie operacji starcza ...

No wlasnie - moze o to chodzi, ze bylo na niego miejsce ?

Raczej zdecydowanie - komputer zapisuje jeden sektor, a w pamieci trzeba zapisac znacznie wiekszy blok. Byc moze przepisujac pozostale sektory.

Bo dochodzi kwestia gwaltownosci tego wylaczenia ...

No i duzo rzeczy sie moze zdarzyc w czasie obnizania napiecia zasilania ... ale raczej watpie, zeby z przypadkowych bitow udalo sie zlozyc jakas komende zapisu ...

Wielce prawdopodobne. A jak karta duza, to moglo trafic w puste miejsce :-)

Ale moj cos tam zapisywal, to niestety nie moge potwierdzic, ze samo czytanie wystarczy. Ale padaly szybko.

Akurat RPi ma chyba sporo kondensatorow na pokladzie ... no chyba, ze pradu bierze tez duzo, i dla karty wychodzi za krótkie podtrzymanie ...

J.

Reply to
J.F.

Czasu nie zna, ale musi gdzieś zapisywać liczniki odczytu/zapisu dla każdego bloku.

Pewnie chodzi o read disturb:

formatting link

Reply to
Olaf Frikiov Skiorvensen

Wcale nie przypadkiem, dnia Thu, 14 Nov 2019 19:29:23 +0100 doszła do mnie wiadomość <5dcd9db3$0$17364$ snipped-for-privacy@news.neostrada.pl> od "J.F." <jfox snipped-for-privacy@poczta.onet.pl> :

Masz dynamic i static wear leveling:

formatting link
konsumenckich kartach to raczej będzie tylko dynamic.

Reply to
Olaf Frikiov Skiorvensen

A pendrive'y jakieś sensowne ktoś poleci? Szukam teraz na różne programy narzędziowe i bootowalne systemy Linux/BSD do testów.

Widzę u GoodRam-a duży wybór -

formatting link
i nawet gwarancję dożywotnią dają, ale ktoś tu już kiedyś pisał, że z tą gwarancją to ściema, bo trzeba zwracać im produkt przez sklep, w którym się produkt kupiło. Jeśli sklep zniknie to i gwarancji nie da się wyegzekwować.

Nawet jakiś klon Kingstone'a DataTraveler widzę, ale generalnie transfery u nich marne -

formatting link

Opinie też nie napawają optymizmem -

formatting link

K.

Reply to
Krystek

To jest pi 3. Startuje z uSD. Nie wiem czy da się obejść tak, żeby startowało skąd inąd :)

Da się oczywiście zrobić partycję bootowalną na karcie uSD, a rootfs czytać skądkolwiek, ale wydaje mi się, że bez uSD się nie da.

Czy może jednak się da?

Reply to
Queequeg

Bo trzeba mieć osobny serwer na logi :)

Reply to
Queequeg

Tak właśnie było. Była 32 GB. Teraz wrzuciłem 8 GB Adaty (zakładam, może naiwnie, że jeśli karta ma ten sam rozmiar fizyczny, ale mieści mniej danych, to może jest np. pSLC zamiast MLC). Tylko teraz przekonfigurowałem już wszystko i karta jest zamontowana w ro (wcześniej trochę na nią pisało, mało ale zawsze coś -- widocznie wystarczyło, żeby padła).

Reply to
Queequeg

Teoretycznie... :) Ciekawe co zostanie z ładunku na takich kartach np. po

10, 20 latach.

heby :)

Reply to
Queequeg

formatting link
Przyznam że po kilkukrotnym przeczyta niu tego tekstu dalej nie wiem czy ma czy nie ma boot z USB ;)

A całkiem serio to wsadziłem kiedyś najmniejszą kartę jaką miałem, z minimalistycznym linuxem odpalającym innego linuxa przez kexec z usb.

Nie polecam. Wolałbym dostać w PI coś na kształt BIOSu. Ale z jakiejś przyczyny świat uznał że uboot, najlepiej oberżnięty do granic możliwosci i niefunkcjonlany, jest wszystkim czego potrzebuje ludzkość.

Reply to
heby

Wygląda na to, że ma. Można włączyć, ale tylko raz (i już nie wyłączysz, to OTP).

formatting link
Ewentualnie można mu ustawić tak, żeby wybierać przez GPIO, skąd ma się bootować:

formatting link

Reply to
Queequeg

Wydaje się, że się da:

formatting link
enable the USB boot bit, the Raspberry Pi 3 needs to be booted from an SD card with a config option to enable USB boot mode. Once this bit has been set, the SD card is no longer required.

Ale achtung! to modyfikuje OTP a OTP to one-time programmable) memory i [..] "any change you make to the OTP is permanent and cannot be undone."

Reply to
Marcin Debowski

Na pewno tam jest uboot więc może wystartować z czegokolwiek co uboot wspiera i a hardware ma to fizycznie.

Reply to
Marek

Podpięty przez USB + odpowiednie flagi bootowania w OTP?

Czyli SanDisk. Nie są złe...

Reply to
Queequeg
Reply to
Grzegorz Niemirowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.