Za usuwanie plików odpowiada system operacyjny a nie urządzenie (zresztą sprzęt nie wie nawet jaki został zastosowany system plików)
Pojemność podana jest przy pomocy liczby całkowitej o skończonej liczbie bitów (nie może wydawać się nieskończona).
Po obrazku (który stał się już dość popularny w internecie, zdążył już obrosnąć w coś w rodzaju miejskiej legendy) wnioskuję, że był to klasyczny 500GB pendrive któremu fizycznie brakowało "kilku" kostek pamięci,
(zapisywać można było całość a czytać tylko początek - reszta przy odczycie dawała zera albo jakieś losowe dane, ale to początek a nie jak napisano koniec dawał się czytać - gdyby nadpisywał cyklicznie tą samą pamięć tak jak jest to zasugerowane nadpisał by tablicę partycji i sam system plików tak, że stał by się nieczytelny).
Widze ze kolega nie ogarnia tematu. Otoz pamieci flash dzialaja na kompletnie innej zasadzie niz dyski twarde. Sektory pamieci sa dostosowane do transmisji strumieniowej ze wzgledu na krotki czas dostepu ale bardzo dlugi czas seekowania. Oznacza to ze wystarczy jedynie podrobic oprobramowanie mikrokontrolera odpowiedzialnego za seekowanie (co nie jest problemem) i stworzyc nowa regole ktora bedzie polegala na nadpisywaniu bitow o odpowiednich numerach. Z racji tego ze pendrivy posiadaja do tego 1 mikrokontroler a nie jak w przypadku dyskow twardych wiele sprzezonych a do tego modul strujacy oddzielnymi glowicami (bardzo skomplikowany uklad) modyfikacja zasady nadpisywania jest bardzo prosta. Przez taki stan rzeczy wlasnie ostatnie klatki filmu beda mozliwe do odtworzenia ale z taka roznica ze moga byc "przedzielone" na pol i w pewnym momencie moze nastapic skok w przeszlosc w filmie.
PS jezeli system plikow wykazywal 500GB to nie ma problemu. Za usuwanie plikow (nadpisywanie) odpowiada sysetm ale on jedynie zglasza blad albo go nie zglasza. Jesli w tablicy sie wszystko zgadza to zostanie przekazane polecenie do mikrokontrolera.
Radzilbym sie pseudospecjalistom doksztalcic bo pieprzyc glupoty potrafi kazdy ale widze ze niektorzy nie odrozniaja technologii flash od typowego dysku twardego...
To nie system wykazywał 500GB, tylko na obudowie było napisane 500GB.
Haha, kiedy pracowałem w serwisie, wpadł mi w ręce dysk o nominalnej pojemności chyba 250 GB, a system widział na nim 2 TB. Nie dawał się sformatować ani w żaden sposób naprawić -- wydaje mi się, że elektronika mogła być uszkodzona. Zrobiłem nawet screen na pamiątkę :)
A do mnie kiedyś trafił dysk o nietypowej pojemności 30 GB. Okazało się, że właściciel komputera (informatyk z wykształcenia) tworząc partycje niechcący zostawił 10 GB odłogiem, a potem upierał się, że to taki "napęd z krótkiej serii". :D
@analista kontroler nie wie czym są dane które zapisuje, nie ma szans się dowiedzieć czy zapisany sektor był częścią struktury systemu plików czy danych z pliku, dlatego nie może nadpisywać jednych sektorów innymi bo nadpisał by system plików.
Jeśli chce oszukać może najwyżej udawać ze zapisuje te nadprogramowe sektory fizycznie nic nie zapisując.
W momencie podłączenia do magistrali usb, urządzenie musi się przedstawić czym jest, jeśli powie że jest urządzeniem typu mass-storage musi podać informację o wielkości sektorów i ich ilości - obie wartości są to 32 bitowe liczby typu integer (bez znaku), nie ma więc możliwości przekazania wartości nieskończoność.
Przeczytaj jeszcze raz co napisałem poprzednio, być może masz problemy z czytaniem ale jak przeczytasz 2 razy na spokojnie powinieneś wszytko zrozumieć nawet w sytuacji gdy nie masz pojęcia jak działają urządzenia tego typu (bo widzę że i o tym pojęcia nie masz - dla pamięci flasz seek-time jest zerowy).
Jeśli elektronika dysku raportuje niewłaściwą pojemność to nie jest to wielki problem. Wystarczy przy pomocy badblocks sprawdzić ile rzeczywiście sektorów da się poprawnie zapisać i odczytać a potem założyć partycje o takiej wielkości aby zajmowały tylko czynny obszar (pozostawiając część urojoną odłogiem).
To normalne, że nowoczesnych dysków nie da się samodzielnie sformatować, zostały już sformatowane w fabryce i więcej nie potrzeba tego robić, zresztą sam zauważyłeś, że to problem elektroniki a nie nośnika, nie ma więc co majstrować przy wyznaczaniu nowych ścieżek na nośniku.
Niesamowite. Co ty sie uparles z tym nadpisywaniem systemu plikow. Wystarczy ze kontroler bedzie dzialal na zasadzie adres+przesuniecie tak jak KAZDY kontroler. Wtedy jako przesuniecie dajemy powiedzmy 512 kB i juz masz pewnosc ze tablica plikow nie zostanie nadpisana. Wspomnialem o tym w swojej poprzedniej wypowiedzi ale nie zrozumiales o czym mowie z powodu braku wiedzy. Napisalem ze nie wiesz jak dziala pamiec flash i udowodniles to pisza nastepny post.
No i nie trafiłeś z tymi 512 kilobajtami, próbuj dalej, ale podpowiem w zależności od, wielkości partycji oraz rodzaju systemu struktura systemu plików ląduje w różnych miejscach np przy 128MB i ext2 wygląda to tak:
Rozmiar bloku=1024 (log=0)
Rozmiar fragmentu=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
32768 i-węzłów, 131072 bloków
6553 bloków (5.00%) zarezerwowanych dla superużytkownika
Pierwszy blok danych=1
Maksymalna liczba bloków systemu plików=67371008
16 grup bloków
8192 bloków w grupie, 8192 fragmentów w grupie
2048 i-węzłów w grupie
Kopie zapasowe superbloku zapisane w blokach:
8193, 24577, 40961, 57345, 73729
Zapis tablicy i-węzłów: zakończono
Zapis superbloków i podsumowania systemu plików: wykonano
Ale np przy XFS wygląda to zupełnie inaczej, jeszcze inaczej wygląda to przy winowsowym NTFS (i to nawet inaczej w wersji z windowsa 2000 i inaczej w wersji z windows 7), jako twórca podrobionego nośnika nigdy nie będziesz wiedział jaki zostanie tam założony system plików, żadne stałe przesunięcie nie uchroni systemu plików przed zniszczeniem podczas nadpisywania - jedyna możliwość aby wszytko nie rozsypało się przy pierwszym zapisie danych to symulowanie zapisu bez fizycznego zapisu.
skoro 512kB starczy na kazdy typ partycji to tak jak mowie nie trzeba ustalac tej wielkosci co do bajta poniewaz odczyt i zapis pierwszych 512 kB odbywa sie normalnie. Jest na to piekny i prosty wzor:
offset=(blok_zapisu/ilosc_blokow_pendrivea>=1)?512kB:0
Tym oto prymitywnym i prostym wzorem nigdy nie otrzymamy bledu nadpisania tablicy systemu plikow. Do tego mozemy ja odczytywac i nadpisywac tylko w wypadku gdy zwracamy sie o dane z rpzedzialu pierwszych 512kB. Jesli nasz licznik strumienia przekroczy 512kB to nie istnieje mozliwosc ze te dane zostana odczytane badz nadpisane. Tamten wzor mozna bez najmniejszego problemu zrealizowac przez modyfikacje mikrokontrolera niezaleznie od tego czy pendrive byl formatowany, posiada jakakolwiek pamiec badz czy jest sprawny. W mocy kontrolera lezy jedynie wyznaczenie offsetu i dodanie go do adresu.
Moze cos tam lyknales softu i moze linuksa zainstalowales ale widze ze nadal jeszcze sporo ci brakuje jesli chodzi o uklady fizyczne/logiczne badz scalone. W systemie bylby na prawde problem stworzenie czegos takiego ale elektronika bez zajakniecia ci to wszystko przerobi...


© 1998-2026 Dziennik Internautów Sp. z o.o.