Problem z zapisem i odczytem pendrive


(Mervilleux) #1

Witam, spotkałem się z takim problemem, że pendrive poprawnie odczytuje pierwszy plik (katalog), niezależnie od tego ile jest na niego wrzucone. Nie zależnie od tego, czy będzie to film, czy inny plik. Pierwszy da się odczytać. Takich pendrive jest kilka i tylko z tymi jest problem. I za każdym razem można na nich zapisać mniej, niż jest miejsca.


(pocolog) #2

Tanie pendrive noname z portalu aukcyjnego?


(adamserce) #3

Chińska podróba, która nie ma tyle miejsca ile pokazuje.
Sprawdź go programem "Chip Genius"
http://www.instalki.pl/programy/download/Windows/narzedzia_dyskowe/ChipGenius.html
będziesz wiedział wszystko.


(Mervilleux) #4

Nie znam pochodzenia tego sprzętu. Interesuje mnie co sprawia, że plik który odtwarzasz - film, przeniesiony z komputera na komputer za pomocą tego pendrive jest nie do odtworzenia. Logicznie biorąc nośnik nie powinien psuć pliku. Zaś gdyby plik nie chciał się skopiować w całości wówczas pojawiłby się odpowiedni komunikat.


(Mervilleux) #5

Nie wiem czemu ma służyć Chip Genius, bo niewiele informacji pokazuje. Nie pokazuje zaś miejsca. Jeżeli dobrze rozumiem, tu gdzie powinno być miejsce jest: nieznane.


(Seba228215) #6

A sformatuj go bez zaznaczonej opcji szybkiego formatowania i ustaw fat 32, domyślny rozmiar lokacji i nie wpisuj nazwy woluminu. Następnie wgraj jakieś pliki potestuj. :slight_smile:


(pocolog) #7

Pobierz którykolwiek z tych programów https://www.raymond.cc/blog/test-and-detect-fake-or-counterfeit-usb-flash-drives-bought-from-ebay-with-h2testw/ i przeprowadź test, bo moim zdaniem firmware pendrive jest oszukany i tylko pokazuje duża pojemność pamięci, a w rzeczywistości mają 1-2GB. To częsta praktyka przy chińskich tanich i dużych pendrive za niskie pieniądze (chociaż na szczęście już coraz mniej takich sprzedawców).


(krystian3w) #8

https://www.dobreprogramy.pl/Kupiles-karte-SD-na-wakacyjny-wypad-Sprawdz-czy-nie-ma-znacznie-nizszej-pojemnosci,Wideo,56987.html


(Domker) #9

Siostra raz się skusiła i kupiła takiego pendrive na allegro.
Pod Linux wystarczy prosty test tego typu jakby ktoś był zainteresowany (oczywiście są też programy przeznaczone do tego, ale pokażę jak to zobić z wykorzystaniem dd):

Przyjmijmy tutaj, że pendraka mamy pod /dev/sdb (tylko na potrzeby tutoriala)

Sprawdzamy ilość sektorów:

sudo fdisk -l /dev/sdb
Przykładowo:

Dysk /dev/sdb: 499,9 MiB, bajtów: 524156928, sektorów: 1023744
Jednostki: sektorów, czyli 1 * 512 = 512 bajtów
(…)

(dla starego pendrive testowego)

Pomińmy sobie z 4MB (4194304 Bajtów) od końca pendrive.
4194304 Bajtów / 512 Bajtów = 8192 sektory do odjęcia od końca, czyli:
1023744 sektorów - 8192 sektorów = 1015552 (czyli wiemy ile pominąć od początku)

Teraz generujemy sobie losową sygnaturę do wgrania na pendrive i będzie miała ona 512 Bajtów (wielkość 1 sektora), a następnie wyliczamy z niej sumę kontrolną sha256:

dd if=/dev/urandom of=sygnatura.bin bs=512 count=1 && sha256sum sygnatura.bin > sygnatura.sha256

Usuwamy wszystkie systemy plików i partycje z pena:

sudo wipefs -a /dev/sdb

Wgrywamy sygnaturę na pendraka z uwzględnieniem ilości sektorów do pominięcia:

sudo dd if=sygnatura.bin of=/dev/sdb seek=1015552 bs=512 count=1

Usuwamy sygnatura.bin z lokalnego dysku i zgrywamy sygnaturę z pendrive na dysk lokalny:

rm sygnatura.bin
sudo dd if=/dev/sdb of=sygnatura.bin skip=1015552 bs=512 count=1

Finalnie weryfikacja sumy kontrolnej zgranej sygnatury:

sha256sum -c sygnatura.sha256

Jeżeli wyświetli się:

sygnatura.bin: DOBRZE

To pendrive jest OK.

Jeżeli:

sygnatora.bin: NIEPOWODZENIE
sha256sum: UWAGA: 1 policzona suma się NIE zgadza

… no cóż - “taki mamy klimat” i lepiej dziwnie tanich “fake” pendrive nie kupować :wink:


(Mervilleux) #10

akurat pendrive nie są moje, a poproszono mnie o zrobienie czegoś z nimi. Zainteresowałem się tym z czystej ciekawości. Nie znam ich pochodzenia. Ale dzięki za wskazówki, pobawię się.


(pocolog) #11

To głupie. Wystarczy zapętlić np. 1 kb w DD z licznikiem i czekać na błąd, żeby dostać ilość faktycznej pojemności. Ew zakończyć pętle na maksie pojemności flash i czytać każdy sektor czy jest ok :wink:
Z resztą są też programy konsolowe pod Linuksa które to robią same :wink:


(Domker) #12

Nie takie głupie jak chcesz sobie oszczędzić czekania.
Weź sobie np. pendrive 128GB zapełnij - trochę sobie poczekasz, a tak tylko zapisujesz 512 B i wiesz z czym masz do czynienia.
W podanym przez Ciebie sposobie nawet nie trzeba licznika - dd dojdzie do końca i wywali błąd z liczbą zapisanych danych.
Można również użyć fallocate do zrobienia pliku o wielkości całego pendrive. Na końcu pliku hexedytorem zmienić jeden Bajt i zapisać plik z użyciem dd.
A następnie ponownie używając dd zrobić obraz i zweryfikować ostatni Bajt, tylko pytanie poco skoro można zapisać dużo mniej danych i uzyskać ten sam efekt niemal natychmiast.


(Mervilleux) #13

Nawiązaliście do miejsca na pendrive, co tu jest akurat najmniej ważne - nie pojemność jest tu ważna. Mnie ciekawi to, że masz na przykład dwa filmy i wrzucasz je na pendrive. Kopiujesz je potem nawet na ten sam komputer z pendrive i pierwszy film odtworzysz okej, zaś drugi nie. Oba mają tyle samo ile miały przed zapisaniem, po skopiowaniu tyle samo. Przed skopiowaniem oba pliki są do odczytania. Po skopiowaniu daje się odczytać tylko pierwszy nagrany plik.
Tak samo rzecz ma się z innym plikiem, może to być program, niezależnie od tego ile ma plik. Zaś jeżeli idzie o miejsce, to w czasie kopiowania system daje info, że masz za mało miejsca i nie można skopiować pliku.


(pocolog) #14

Wykonałeś już test, o którym ci pisaliśmy, czy jesteś tutaj tylko żeby sobie podyskutować? :thinking:


(Mervilleux) #15

W czasie próby formatowania pierwszego: “System windows nie był w stanie dokończyć formatowania”.


(Seba228215) #16

Spróbuj sformatować go całkowicie tym :


Z tym, że jest podchwytliwa opcja poniżej (wipe coś tam only) - tego nie zaznaczaj, bo ciebie interesuje całkowity format niskopoziomowy ( nic nie zostanie). Następnie po ukończeniu z poziomu Windows sformatuj pendrive ustalając mu jakiś system plików i rozmiar alokacji.


(Mervilleux) #17

Zrobiłem lepiej (nie lubię testować nieznanych programów), uruchomiłem Linuxa i zrobiłem formaty wszystkich trzech pendrive. Każdy z nich wyświetla 32GB. Jednak po formacie na NTFS (bo taki ma być ostateczny format) wyświetla się ostrzeżenie i komunikat:
ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65534: Invalid argument
ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65534: Invalid argument
ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65534: Invalid argument
ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65534: Invalid argument
$MFTMirr error: Invalid mft record for ‘$MFT’.
Failed to mount ‘/dev/sdb1’: Input/output error
NTFS is inconsistent. Run chkdsk /f on Windows then reboot it TWICE!
The usage of the /f parameter is very IMPORTANT! No modification was
made to NTFS by this software.

Czyli możemy brać pod uwagę, iż wcześniejsze próby naprawienia ich przez właściciela, przy pomocy nieodpowiednich programów pobranych z internetu, coś na nich zablokowały.


(Mervilleux) #18

Już wiem co jest grane, ale nie wiem dlaczego. Film skopiowany na te pendrive, pierwszy jest okej, a pozostałe, nie ważne ile ich jest, czy jest dwa, pięć, czy dziesięć, choć miejsce jest pokazane poprawnie, pojawia się info na dole okna: “klasyfikacja” i obok pięć pustych gwiazdek - taka informacja (miałem tak wcześniej) sprawia, że nie otwiera się plik. Pendrive nie zapisuje jakiś danych przy kolejnych plikach, co sprawia, że nie można ich otworzyć.


(Seba228215) #19

Podałem link do zaufanego programu i co możesz zrobić. Tutaj by się przydało usunięcie niskopoziomowe wszystkich danych. Program jest portable i na windows.


(Mervilleux) #20

Po konsultacji z właścicielem sprzętu postanowiłem sobie odpuścić, gdyż jak się okazało wiele osób, które nabyły te same pendrive rozpisały się w komentarzach po zakupie, czyli wszyscy otrzymali takie same buble. Nie bardzo rozumiem, co znaczy niskopoziomowe usuwanie danych na elektronicznym nośniku. Na nośniku fizycznym - dysk magnetyczny - można mówić o niskopoziomowym skanowaniu, gdzie działanie dotyczy rozmagnesowania sektorów, a nie elektronicznej kości, gdzie zapis wygląda inaczej.