Sprawdź rzeczywisty rozmiar pamięci USB

28

Niedawno czytałem dużo o fałszywej karcie MicroSD i napędach USB, które twierdzą, że mają dużo miejsca (nawet jeśli poprosisz komputer), a fizycznie oferują znacznie mniej. Niedawno kupiłem dysk SanDisk USB (twierdzono 128 GB) i chcę przetestować jego rozmiar. Nie jest kupowany przez eBay ani coś takiego, ale naprawdę chcę przetestować rzeczywisty rozmiar przed użyciem go produktywnie.

Mógłbym po prostu skopiować na nim rzeczy, skopiować z powrotem i sprawdzić, czy pliki są w porządku. Mógłbym również zautomatyzować to za pomocą Hashes i innych rzeczy. Mam jednak nadzieję, że istnieje bardziej dokładne rozwiązanie. Przeczytałem, że w Windowsie H2testw robi to samo. Czy jest łatwy sposób przetestować to na Ubuntu / Linux? Może specjalistyczne, dobrze działające narzędzie?

Aktualizacja: Żeby było jasne, chodzi o sprawdzenie, czy rozmiar, o którym system Linux mówi kontrolerowi, jest prawidłowy ( aby żadne dane nie zostały utracone ). To nie tak, że chcę sprawdzić, czy otrzymam 128 GB zamiast 127,3 GB. Chcę przetestować, czy wszystkie dane, które piszę, będą ponownie czytelne. Niestety mogę znaleźć tylko kilka informacji na ten temat na angielskich stronach technicznych. Istnieją jednak dobre źródła niemieckie. Właściwie szukam takiej aplikacji, ale dla Ubuntu / Linux: https://www.raymond.cc/blog/test-and-detect-fake-or-counterfeit-usb-flash-drives-bought-from -ebay-with-h2testw /

Aktualizacja 2: Próbowałem zebrać niektóre źródła w języku angielskim. Nie przeczytałem ich wszystkich ze względu na brak czasu.

Aktualizacja 3: Objaśnienia

Z powodu dziwnych krytyków poniżej, niektóre wyjaśnienia.

Na czym polega problem i dlaczego sam dd go nie rozwiązuje?

To jest reakcja na

„Wyraźnie zrozum, na czym polega problem, który próbujesz rozwiązać, i jaka jest definicja„ fałszywego dysku ”.”

Wydaje się, że niektórzy ludzie nie rozumieją problemu. Staram się więc wyjaśnić to tak krótko, jak tylko mogę szczegółowo, choć myślę, że to w dużej mierze do mojego pytania.

Pojemność urządzeń USB udostępnianych przez system operacyjny lub narzędzia unix może być błędna. Jest to fatalne, ponieważ twój system operacyjny określa, do ilu danych możesz je wysłać. Wyślij więcej danych, niż jest w stanie pomieścić, spowoduje to utratę danych. To jest problem. Dlaczego tak się dzieje?

Nie musisz dobrze znać protokołu USB, aby zrozumieć problem. Interfejsy szeregowe mają wspólną właściwość, że urządzenie klienckie (dysk USB) będzie musiało określić swoją pojemność za pośrednictwem tego interfejsu szeregowego. Oznacza to, że urządzenie klienckie potrzebuje własnego kontrolera z pewną wiedzą na temat celu urządzenia, aw tym przypadku jego pojemności. Decyduje również, co należy zrobić, gdy otrzyma polecenie zapisania czegoś. Jeśli kontroler jest zaprogramowany w ten sposób, może po prostu zignorować polecenie lub zastąpić coś danymi.

Co to znaczy? Cokolwiek mówią narzędzia unix na temat pojemności dysku: to, o co pytają dyski, nic więcej. Do tego właśnie została opracowana metoda h2testw: Testuje rzeczywisty rozmiar metodą opisaną później i porównuje go z tym, co mówi dysk. Jeśli to nie to samo, możesz utracić dane, ponieważ wszystkie typowe operacje przechowywania danych polegają na informacjach systemu operacyjnego, o które prosi kontroler. Dlaczego po prostu pytasz? Testowanie wymaga czasu i zastępuje wszystkie dane na dysku. To naturalne, że system operacyjny musi polegać na tych informacjach.

Aby sprawdzić rzeczywistą pojemność, taką jak h2testw, rzeczywiście możesz użyć dddo zapisywania danych na dysku, przeczytaj je ponownie i sprawdź, czy to to samo, co napisałeś. Całkowicie legalne. Charakter sprzętu i napędu czyni go bardziej skomplikowanym. Weźmy na przykład pamięć podręczną zapisu. Musisz upewnić się, że nie czytasz z pamięci podręcznej. To tylko jeden przykład, dlaczego nie jest to tak proste, jak się wydaje. Pomyśl też, że samo pisanie zer oznacza niską entropię informacji, którą można odtworzyć podczas czytania. Po prostu nie jest to takie łatwe w szczegółach. Oczywiście nadal możesz to zrobić ręcznie.

Ale dlaczego, kiedy można zautomatyzować? Dlaczego do pracy f3, jak zaproponowano w mojej odpowiedzi poniżej, implementuje mnóstwo myśli wielu autorów (weź pod uwagę, że jest to rodzaj rozszerzonego testu h2testw), a także implementuje kilka metod z różnymi kompromisami. Deweloper wymyślił sztuczki różnych fałszywych dysków (zwanych również podrobionymi dyskami), które mieli pod ręką . Tak więc, chociaż rozumiem teorię i problem (pozornie, ponieważ problemy są dobrze wyjaśnione w niemieckich mediach technicznych, ale nie w mediach anglojęzycznych), nie udaję, że rozumiem wszystko, dlatego wspomniałem o tym powyżej. To tylko teoria, którą rozumiem i jestem raczej facetem od oprogramowania. Ale jako student informatyki rozumiem to wystarczająco dobrze, aby dostrzec problem.

„Spróbuj zrozumieć podstawowe narzędzia uniksowe”

Właściwie już na to odpowiedziałem, ale dla jasności: narzędzia uniksowe po prostu używają protokołu USB (oczywiście tylko dla urządzeń USB) do zbierania informacji. Nie ma sensu robić więcej niż to.

Czy pomaga kupować tylko od zaufanych dostawców?

tl; dr: Nie.

„Jeśli chodzi o kupowanie towarów, tak jak w przypadku wszelkich form bezpieczeństwa, rozważ znalezienie zaufanego sprzedawcy i kupuj dyski tylko od nich”.

Bezpieczeństwo (i bezpieczeństwo) NIE polega na zaufaniu! Chodzi o weryfikację i walidację! Przepraszam, ale jest to tak źle na wiele sposobów.

Załóżmy, że kupujesz za pośrednictwem zaufanego sprzedawcy. Kilka pytań:

  1. Czy dostawca przetestował sprzęt pod kątem braku utraty danych? Czy rozpoznaje, kiedy kupuje fałszywe dyski i je sprzedaje? Niekoniecznie.

  2. Czy to możliwe, że kupuje rzeczy, które nie są fałszywe? Całkowicie spójrz na najnowsze podróbki Ryzen: https://www.pcgamer.com/beware-of-fake-ryzen-processors-selling-on-amazon/ , https://www.heise.de/newsticker/meldung/ Direkt-von-Amazon-Faelschungen-von-AMDs-Ryzen-Prozessoren-im-Umlauf-3772757.html

  3. Jeśli stracę prezentację na dysku i spieprzę prezentację, czy mój zaufany dostawca cofnie się w czasie i uratuje mnie? Prawdopodobnie zastąpi napęd, ponieważ ostatni podróżujący DeLorean został zniszczony w 1885 roku.

Inne rzeczy

„To pytanie wydaje się bardziej przypominać„ promocję ”dotyczącą tego, co lubi OP, i wydaje się, że OP jest znacznie mniej zainteresowany testowaniem dysków”.

To jest niedorzeczne. Szukałem specjalnie narzędzia podobnego do h2testw, które również działa na systemie Linux. I tak, to właśnie „lubię”, pomocna odpowiedź, przepraszam. Nie miałem pojęcia, że ​​anglojęzyczna prasa nie zdaje sobie sprawy z takich problemów i miałem szczęście znaleźć coś takiego później. To nie jest promocja, ale tak naprawdę wydaje się, że możesz ją wykorzystać.

verpfeilt
źródło
2
Nie ma sensu testować tego, przejdź przez to, co komputer mówi, że jest dostępny, lub df --block-size=M. Limit 4 GB sugerowałby, że to tylko limit rozmiaru pliku FAT32, a nie pojemność dysku. Nigdy nie uzyskasz pełnej deklarowanej pojemności, jest to tylko średnia klasyfikacja.
Sir_Scofferoff
6
To, co mówi komputer, jest dostępne, to tylko to, co mówi mu kontroler napędu USB. Fałszywe dyski kłamią. Jeśli ma pojemność 4 GB, ale twierdzi, że ma 512 GB, reszta, którą piszę, zostanie wyrzucona lub stare miejsce zostanie zastąpione, w zależności od kontrolera. Więc rzeczywiście jest sens testowania tego.
verpfeilt
to jest interesujące. nigdy nawet nie przyszło mi do głowy, aby podrobić rozmiar dysku SSD, ale podoba mi się pomysł, w jaki sposób zapisują dane i odczytują je bajt po bajcie, aby sprawdzić spójność. widzę, jak może to być problem, a takie narzędzie może być przydatne.
1
FakeFlashCheck ma również szybki skan. Czy jest na to jakiś OSALT?
neverMind9
PS: Znalazłem już sondę f3. Zobacz mój komentarz poniżej.
neverMind9

Odpowiedzi:

33

f3 - Zwalczanie oszustw typu Flash

Znalazłem tylko jedną alternatywę, ale myślę, że jest to nawet lepsze niż oryginalne h2testwnarzędzie dla MS Windows. Na szczęście jest naprawdę łatwy w użyciu, nawet z wiersza poleceń. Dostępne są jednak GUI. Na stronie narzędzi znajduje się również wiele informacji na temat implementacji i problemu z fałszywymi dyskami.

f3 oferują dwie metody:

  • Metoda f3probe: znacznie szybciej
  • Metoda h2testw: Wolniej. Przetestuj również wydajność R / W. Prawdopodobnie bardziej niezawodny.

Metoda f3probe (zalecana)

f3probeto jeden ze sposobów testowania dysków, nie tak dokładny, ale szybszy, ponieważ nie zapisuje na całym dysku. Możesz przeczytać więcej na ten temat na stronie narzędzi. Jeśli chcesz mieć 100% pewności, lepiej skorzystaj z metody h2testw. Jak opisuje programista na stronie:

f3probe to najszybszy sposób na identyfikację fałszywych dysków i ich rzeczywistych rozmiarów.

I:

Wreszcie, dzięki temu, że f3probe jest wolnym oprogramowaniem, a gdy f3probe zostanie sprawdzone w bitwie, f3probe może zostać osadzony w smartfonach, aparatach, odtwarzaczach MP3 i innych urządzeniach, aby zatrzymać się raz na zawsze i rozprzestrzeniać fałszywą pamięć flash.

Na stronie znajduje się również przykład użycia:

Ostrzeżenie : spowoduje to zniszczenie wcześniej zapisanych danych na dysku!

$ sudo f3probe --destructive --time-ops /dev/sdb
[sudo] password for michel: 
F3 probe 6.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

WARNING: Probing may **demolish data,** so it is more suitable for flash drives out of the box, without files being stored yet. The process normally takes from a few seconds to 15 minutes, but
         it can take longer. Please be patient. 

Bad news: The device `/dev/sdb' is a counterfeit of type limbo

You can "fix" this device using the following command:
f3fix --last-sec=16477878 /dev/sdb

Device geometry:
             *Usable* size: 7.86 GB (16477879 blocks)
            Announced size: 15.33 GB (32155648 blocks)
                    Module: 16.00 GB (2^34 Bytes)
    Approximate cache size: 0.00 Byte (0 blocks), need-reset=yes
       Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 1'13"
 Operation: total time / count = avg time
      Read: 472.1ms / 4198 = 112us
     Write: 55.48s / 2158 = 25.7ms
     Reset: 17.88s / 14 = 1.27s

Zwróć uwagę, że zwraca także polecenie, które umożliwia użycie dysku o jego rzeczywistym rozmiarze, za pomocą f3fix.

Narzędzie f3fix

f3fix tworzy partycję pasującą do rzeczywistego rozmiaru fałszywego dysku. Użyj f3probedanych wyjściowych, aby określić parametry dla i3fix

sudo f3fix --last-sec=16477878 /dev/sdb

Metoda h2testw / Testowanie wydajności za pomocą f3read / f3write

F3 to zbiór narzędzi zajmujących się fałszywymi dyskami flash. Dwa z nich wspólnie wdrażają h2testw-Method:

f3write [--start-at=NUM] [--end-at=NUM] <PATH>
f3read  [--start-at=NUM] [--end-at=NUM] <PATH>

f3writepoprosi o podanie rozmiaru urządzenia i wypełni go wygenerowanymi plikami o rozmiarze 1 GB każdy. f3readodczyta wszystkie te pliki i zobaczy, że są kompletne i nieuszkodzone. Na przykład polecenia, których użyłem do przetestowania mojego napędu dyskowego o pojemności ~ 128 GB:

$ f3write /media/username/1EB8021AB801F0D7/
Free space: 117.94 GB
Creating file 1.h2w ... OK!                           
...
Creating file 118.h2w ... OK!                         
Free space: 0.00 Byte
Average writing speed: 11.67 MB/s

Teraz, aby sprawdzić, czy pliki są poprawnie przechowywane:

$ f3read /media/username/1EB8021AB801F0D7/
                  SECTORS      ok/corrupted/changed/overwritten
Validating file 1.h2w ... 2097152/        0/      0/      0
...
Validating file 118.h2w ... 1979488/        0/      0/      0

  Data OK: 117.94 GB (247346272 sectors)
Data LOST: 0.00 Byte (0 sectors)
           Corrupted: 0.00 Byte (0 sectors)
    Slightly changed: 0.00 Byte (0 sectors)
         Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 32.38 MB/s

Test tej wielkości trwał około trzech godzin i czasami powodował duże obciążenie dysku na moim komputerze, ale według mnie jest najbardziej dokładny.

Zainstaluj w Ubuntu

Na terminalu:

sudo apt install f3

Spowoduje to: f3brew, f3fix, f3probe, f3read, f3writez ich stron podręcznika.

Te narzędzia są częścią f3pakietu, który jest przynajmniej dostępny w Ubuntu 15.10. Według strony internetowej dostępnych jest kilka innych narzędzi. Aby je zdobyć, odwiedź stronę internetową.
Pakiet zawiera krótkie, ale przydatne strony podręcznika, chociaż myślę, że brakuje w nich niektórych informacji na stronie internetowej na temat różnicy na przykład f3read / write i f3probe, dlatego ta odpowiedź jest nieco dłuższa.

verpfeilt
źródło
2
Dziękujemy za wprowadzenie tego wspaniałego narzędzia. Po prostu chcę dodać, że instalacja za pomocą apt-getzainstaluje się f3readi fwrite tylko jako f3probei f3fixsą uważane za eksperymentalne. Jeśli chcesz ich użyć, będziesz musiał zbudować je ze źródła make experimentalpo zainstalowaniu ich zależności sudo apt-get install libudev1 libudev-dev libparted0-dev. Zobacz github.com/AltraMayor/f3#the-extra-applications-for-linux
Ahmed Essam
„[f3probe] nie jest już eksperymentalny, ale jest dostępny tylko w systemie Linux”. github.com/AltraMayor/f3/issues/78#issuecomment-378599141
wer.
4

Napisałem do tego proste narzędzie o nazwie CapacityTester (zrzut ekranu) i ma GUI oraz CLI.

Tam jest skompilowany kod binarny dla Debiana 7 dostępnej do pobrania , co jest bardzo prawdopodobne do pracy po wyjęciu z pudełka na nowoczesnym systemie Ubuntu.

Napisałem go na własny użytek, ponieważ nie mogłem znaleźć narzędzia graficznego do tego celu. Musisz najpierw zamontować pusty dysk flash USB, wybrać go i rozpocząć test. To bardzo głupie narzędzie, ponieważ wystarczy wypełnić dysk plikami, a następnie sprawdzić, czy dane na dysku są prawidłowe. Przerywa test przy pierwszym błędzie (zapis lub odczyt / weryfikacja). Zgłasza przesunięcie fragmentu, którego nie można zapisać lub zweryfikować, ale jest to logiczne przesunięcie, więc informacje te mogą być bezużyteczne, ponieważ zależy to od systemu plików, w którym pliki znajdują się na dysku. Jednak gdy dysk zostanie wypełniony danymi i wszystko będzie można odczytać i zweryfikować, należy bezpiecznie założyć, że zgłoszona pojemność dysku jest poprawna. Na marginesie

Ponownie, jest to bardzo proste, ponieważ działa tylko z plikami na istniejącym systemie plików. Jest więc trochę KB (+ 1M bufor), których nie można przetestować. I jest bardzo powolny, ponieważ naprawdę wypełnia cały system plików. F3 jest z pewnością znacznie bardziej wyrafinowany i szybszy, ale nie ma GUI. Jedyny powód, dla którego istnieje CapacityTester, to fakt, że ma GUI, dzięki czemu mogą z niego korzystać użytkownicy, którzy nie znają wiersza poleceń lub po prostu wolą GUI.

Informacje zwrotne są mile widziane.

c0xc
źródło
Jak podano na stronie dla programistów, dostępne jest GUI QT i GUI dla OSX (nie próbowałem ich). Myślę jednak, że jest oparty na QT4. Dlaczego nie użyć F3 jako backendu? To nie skomplikowałoby twojego narzędzia i prawdopodobnie uczyniłoby go bardziej funkcjonalnym / efektywnym, wykorzystując wiedzę wydaną na F3.
verpfeilt
-6

Reakcja na zachowanie OP i „fałszywy dysk”

Edytuję odpowiedź, aby poprawnie odnieść się do kilku punktów, ponieważ OP jest bardzo gwałtowne (i moim zdaniem sprzeciwia się większości komentarzy i odpowiedzi z wyjątkiem ich własnych, które uważam za podejrzane). W szczególności wiele osób twierdzi, że istnieje „fałszywy dysk”, ale nie ma jasnej definicji tego, co na ziemi to właściwie oznacza. OP stwierdził:

Mógłbym po prostu skopiować na nim rzeczy, skopiować je z powrotem i sprawdzić, czy pliki są w porządku. Mógłbym również zautomatyzować to za pomocą Hashes i innych rzeczy. Mam jednak nadzieję, że istnieje bardziej dokładne rozwiązanie.

OP sam przyznał, że „może po prostu skopiować rzeczy” i zweryfikować integralność danych, ale był bardzo przeciwny wszystkim innym komentarzom i odpowiedziom, które proponują cokolwiek innego, a OP wciąż naciskał na F3 jako „prawdziwą ofertę”. Początkowo samo pytanie zaczęło się od rozmiaru dysku, ale potem OP z dowolnego wymienionego powodu hashuje, aby „sprawdzić, czy pliki są w porządku”, tak jakby były tajemnicze dyski, które twierdzą, że mają jeden rozmiar i pozwalają na zapisanie tego rozmiaru, ale dane są uszkodzone. Dlatego uważam to za bardzo podejrzane i uważam OP promujące F3 za spam i pytanie.

Gdy dysk jest faktycznie fałszywym dyskiem

W pytaniu widoczna definicja OP to

„.. dyski, które twierdzą, że mają dużo miejsca (często przenoszone za daleko, np. 128 GB), a fizycznie oferują tylko 0,5 do 4 GB.”

Innymi słowy, zgodnie z OP, kontroler twierdzi X ilość danych, ale USB może zawierać tylko około 80-90% mniej tego, co jest deklarowane.

Użytkownik sudodus zaproponował w komentarzach (podkreślenie dodane): „ Przekonałem się, że kilka pendrivów USB jest nieco mniejszych niż rozmiar nominalny. Nazywam je niewymiarowymi . Myślę, że fałszywe dyski są „ zasadniczo niewymiarowe ” (zwykle połowa rozmiaru nominalnego lub mniej ) ”. Ta definicja jest świetna, jednak jeśli weźmiemy to pod uwagę, fałszywy dysk jest definiowany na 50%. Dysk, który zajmuje 64 GB, ale może pomieścić tylko 32 GB, technicznie traci połowę swojej wartości na rzecz właściciela, a właściciel może umieścić tylko połowę tego, co zamierzał na dysku.

Proponuję prostszą definicję: podrobione urządzenie pamięci masowej to takie, które twierdzi, że ma, Claimed Sizeale ma tolerancję poniżej 15% (a tolerancja wynosi Claimed Size ± 15 %).

To ± 15 %jest bardzo rozsądne. Należy również wziąć pod uwagę, że użytkownicy zwykle są myleni między organizacjami Unix, IEEE i IEC, które używają prefiksu binarnego zamiast mocy 10 prefiksów do przechowywania danych. Różnica sięga 20% na poziomie prefiksu yotta, jednak dyski USB jeszcze tam nie są, więc przez następne 20 lat 15 procent jest rozsądne. (Patrz pytanie askubuntu „Znaczenie„ i ”w„ MiB ”” i prefiks binarny )

Testowanie napędu

W rzeczywistości użytkownik nie potrzebuje żadnych specjalnych narzędzi, poza tym, co już jest dostarczane z Ubuntu i większością systemów uniksowych zgodnych z POSIX. Podkreślmy i ponownie sformułujmy definicję:

Jeśli nie możemy zapisać ilości danych na dysku, a to, co zapisujemy, mieści się w granicach 15% tolerancji, oznacza to, że dysk jest w porządku

Najprostszym sposobem na to jest dd, wystarczy zastąpić urządzenie zerami (i oczywiście pamiętaj, aby zapisać swoje pliki, zanim to zrobisz).

sudo dd if=/dev/zero of=/dev/sdb1 iflag=nocache oflag=direct bs=1                        

Zwróć uwagę bs=1na wielkość bloku 1 bajt. ddKomenda zazwyczaj daje sprawozdanie co do ile jest napisane.

$ dd if=/dev/zero of=/dev/null bs=1 count=1024
1024+0 records in
1024+0 records out
1024 bytes (1.0 kB, 1.0 KiB) copied, 0.00261981 s, 391 kB/s

Poprosiliśmy go o zapisanie 1024 bajtów, napisało 1024 bajty.

Dokładniejsza lista kroków zgodnych z definicją to:

  • Sprawdź, ile danych zajmuje dysk (zakładając, że podejrzewasz, że dfsię pomyliłeś). W tym przykładzie załóżmy, że /dev/sdb1to plik mojego urządzenia na dysk USB:

    $ df -P /dev/sdb1 | awk 'NR==2{print $2}'
    115247656
    

    Uwaga: -Pflaga dotyczy przenośności POSIX, co oznacza, że ​​rozmiar bloku danych wyniesie 1024 bajty, a to oznacza, że ​​na tym dysku znajduje się 115247656 * 1024 bajty.

  • Dowiedz się, jaka jest 15% tolerancja poniżej tego, co twierdzi dysk (115247656), być może użyj narzędzia obsługującego obliczenia zmiennoprzecinkowe, takie jak awk:

     $ awk 'BEGIN{printf "%d\n",115247656*(1-0.15)}'
     97960507
    
  • Utwórz losowe dane na dysku twardym tego samego rozmiaru co dysk w poprzednim kroku, aby użyć go jako testu porównawczego: dd if=/dev/urandom of=./mytestfile.random bs=1024 count=97960507

  • Teraz napisz dane dd if=./mytestfile.random of=/dev/sda1. Jeśli dysk może pomieścić tyle, to jest „prawdziwy”. Można także wziąć md5sumalbo sha1sumz ./mytestfile.randomi porównać z /dev/sda1obecnie. Jeszcze lepszym ulepszeniem byłoby zapisanie punktu mytestfile.randommontowania pliku, utrzymując w ten sposób system plików na dysku i niezmienną partycjonowanie dysku, innymi słowy

    dd if=./mytestfile.random of=/mountpoint/for/usb/drive/testfile.random
    
  • Integralności Następnie można po prostu zrobić każdą kontrolę hashsum, takie jak md5sum, sha1sum, sha256sumlub innych osób. Na przykład

    md5sum ./mytestfile.random  /mountpoint/for/usb/drive/testfile.random
    

    Kluczową kwestią jest to, że jeśli ilość zapisanych danych mieści się w tolerancji i daje poprawną sumę kontrolną przed i po zapisie - dysk prawdopodobnie jest w porządku.

Wszystko to można umieścić w wygodnym skrypcie dla wygody, jeśli ktoś sobie tego życzy.

Wniosek

To pytanie wydaje się bardziej przypominać „promocję” tego, co lubi OP, i wydaje się, że OP jest znacznie mniej zainteresowany testowaniem napędów. Ponadto sam problem jest bardziej ludzki niż problem z „napędem”. W komentarzach sami OP stwierdzili, że tak naprawdę nie rozumieją zachowania USB, ale są bardzo skłonni obwiniać „kontroler”. Pozostawię to pytanie z 3 punktami:

  • Wyraźnie zrozum, na czym polega problem, który próbujesz rozwiązać, i jaka jest definicja „fałszywego dysku”.
  • Spróbuj zrozumieć podstawowe narzędzia uniksowe
  • Jeśli chodzi o kupowanie towarów, tak jak w przypadku wszelkich form bezpieczeństwa, rozważ znalezienie zaufanego sprzedawcy i kupuj dyski tylko od nich.
Sergiy Kolodyazhnyy
źródło
1
Dzięki, ale nie jestem pewien, czy dd wykryje rzeczywisty rozmiar, ponieważ kontroler sfałszuje, że ma tyle miejsca. Myślę, że musisz zapisać plik (lub więcej plików) i sprawdzić, czy możesz go całkowicie odzyskać. Sądzę, że istnieje powód, dla którego istnieją dedykowane narzędzia do testowania, niestety są to tylko okna. Chyba będę musiał użyć maszyny wirtualnej. Cóż, to było dość duże w wiadomościach w Niemczech jakiś czas temu. (Niemieckie źródło na ten temat: heise.de/ct/ausgabe/… )
verpfeilt
1
@verpfeilt Cóż, nie mówię po niemiecku, więc artykuł będzie musiał zostać przez kogoś streszczony lub przetłumaczony. Jak kontroler mógłby sfałszować, że ma taką samą ilość miejsca? ddzgłasza ilość danych zapisanych / przekazanych do urządzenia, nie widzę, jak można to sfałszować.
Sergiy Kolodyazhnyy
2
Możesz pisać wszystko, ale to nie znaczy, że klient usb je zapisze. Jeśli dobrze zrozumiałem, problem leży bezpośrednio w architekturze USB. Nie możesz po prostu przykleić do niej trochę pamięci flash, ale potrzebuje ona układu, który spełni protokół. Podobnie jak odgałęzienie ( en.wikipedia.org/wiki/Method_stub ) umożliwia to zbudowanie pamięci tylko do zapisu (dysk ma jednak niewielką ilość pamięci do przechowywania małych plików). Dlatego istnieją narzędzia takie jak h2testw. Oto coś w języku angielskim: myce.com/news/…
verpfeilt
1
@SergiyKolodyazhnyy, odkryłem, że kilka pendrivów USB jest nieco mniejszych niż rozmiar nominalny. Nazywam ich niewymiarowymi . Myślę, że fałszywe dyski są „zasadniczo niewymiarowe” (zwykle połowa rozmiaru nominalnego lub mniej). Wydaje mi się, że zapisywanie czegoś na dysku za pomocą, dda następnie sprawdzenie sumy md5 powinno sprawdzić, ile można poprawnie napisać i odczytać. (Myślę, że specjalne narzędzia w odpowiedzi @ verpfeilt wyglądają bardziej atrakcyjnie, ale ich nie testowałem. Mam wiele pendrivów USB i kart pamięci, nie sądzę, żebym jeszcze kupił fałszywy.)
sudodus
1
@SergiyKolodyazhnyy, zgadzam się z twoją zaktualizowaną definicją: „podrobione urządzenie pamięci masowej to takie, które twierdzi, że ma zgłoszony rozmiar, ale ma poniżej 15% tolerancji (a tolerancja to deklarowany rozmiar ± 15%)”. - Dzięki za świetną aktualizację twojej odpowiedzi :-)
sudodus