Rzeczywista pojemność pendrive i kart SD
Kategoria: Artykuły, etykiety: f3, flash, karta sd, pendrive
Dodany: 2014-11-23 09:10
(zmodyfikowany: 2014-11-23 21:30)
Przez: morfik
Wyświetleń: 15527
Parę dni temu, jednemu z użytkowników forum (davidoski) przytrafiła się niezbyt miła sytuacja. Rozchodzi się o to iż zakupił on kartę SD i, jak sprzedawca zapewniał, miała mieć pojemność 128GiB. Wszyscy wiemy, że sprzedawcy nieco zawyżają te numerki na opakowaniach, bo operują na potęgach o podstawie 10, a nie 2 i tak ze 100GB robi się zaraz 93GiB. Do tego oczywiście jeszcze dochodzi rezerwacja miejsca na potrzebę obsługi systemu plików. Niemniej jednak, w tym przypadku, różnica była trochę większa i tutaj mamy do czynienia z czymś co się nazywa fake flash.
Jest taka żelazna zasada, by po zakupie jakiegoś sprzętu, sprawdzić go czy aby działa jak należy i czy jest z nim wszystko w porządku i jest to wręcz obowiązek przy zakupie pamięci opartych o technologię flash, bez znaczenia z jakiego to źródła by one nie pochodziły. Jeśli chodzi o karty SD czy pendrive, pewne osobniki mogą tak zaprogramować te urządzonka by pokazywały większą pojemność niż w rzeczywistości one posiadają. Oczywiście nie musi to być świadome działanie sprzedawcy -- może on zwyczajnie nawet o tym nie wiedzieć i nie uchroni nas też kupowanie markowego sprzętu, bo opakowanie i wszystkie inne efekty wizualne można bez problemu podrobić tak by konkretne pamięci czy pendrive łudząco przypominały te oryginalne odpowiedniki. Po zakupie takiego urządzenia, człowiek używa go jak gdyby nigdy nic, do momentu aż wyjdzie poza granicę faktycznej pojemności flasha. Teoretycznie niby kopiowanie do/z pena/karty jest w porządku ale gdy chcemy np. odtworzyć film czy też podejrzeć zdjęcia, okazuje się, że część plików jest uszkodzonych -- zawiera same zera. W pewnych przypadkach, nowe dane mogą zacząć nadpisywać te upchnięte już na flashu niszcząc je przy tym zupełnie.
Jednym z zabezpieczeń jakie może nas uchronić przed podróbkami jest weryfikacja parametrów oraz numeru seryjnego kupowanego modelu -- jeśli urządzenie nie posiada numeru lub mamy przed nosem pendrive 2TiB ale ten model nigdy takiej pojemności się nie doczekał, najlepiej zostawić go w spokoju albo poprosić sprzedawcę o 95% rabat. xD Jeśli chodzi o same karty SD, to po właściwościach standardu możemy stwierdzić czy dana karta to fake. Na wiki można wyczytać, iż stowarzyszenie SD Card Association wyznacza określone standardy dla kart SD i np. jeśli chcemy kupić kartę 128G i sprzedawca reklamuje ją jako kartę SDHC, to wiemy na 100%, że to podróba, bo karty SDHC nie mogą mieć więcej niż 32G, tzn. może i mogą ale z racji ograniczeń licencyjnych, żadna firma nie produkuje takich. Oczywiście karty w dalszym ciągu mogą mieć 64G i więcej ale to reguluje standard SDXC -- różnica jednej literki. Podróbki z reguły nie zważają na standardy, temu łatwo je odróżnić, a jeśli mamy z tym problemy, to najlepiej zajrzeć na stronę producentów kart/penów i upewnić się czy taki model o takich gabarytach w ogóle jest przez nich produkowany.
Poniżej jest fotka tej trefnej karty:
Jak widać, nadruk jest sprzeczny sam ze sobą -- karta SDHC i do tego 128G, czyli już na pierwszy rzut oka wiadomo, że coś jest nie tak.
Nasuwa się zatem pytanie -- jak to się dzieje, że taka karta/pendrive może zgłaszać większą pojemność niż faktycznie posiada i skąd taki sprzęt się bierze? Ogólnie rzecz biorąc, te wszystkie fake flashe to materiał produkcyjny oryginalnych fabryk i są to głównie urządzenia o mniejszej pojemności. Reszta przypadków tyczy się uszkodzonego sprzętu, który został odrzucony w procesie produkcyjnym i cały ten złom został przy tym odsprzedany komuś, kto chciał to kupić. Potem ten ktoś przeprogramował chip kontrolera odpowiedzialnego za zarządzenie pamięcią przez wgranie nowego firmware, który zawiera inne ustawienia dla sterownika i ten myśli, że faktycznie ma do dyspozycji więcej pamięci. Potem taki pendrive/kara jest formatowany w oparciu o tę zawyżoną wartość i tak mamy widzianą w systemie kartę o większej pojemności. Do stworzenia partycji potrzebny nam jest jedynie pierwszy sektor, bo tam jest tablica partycji. System plików z kolei tworzy metadane oraz superblok i jego kopie w wydzielonym już obszarze pamięci i póki nie wychodzi on poza fizyczne ramy pamięci flash, nic się nie będzie dziać -- w skrócie wszystko gra gdy korzystamy z systemu plików fat i jest tylko jedna partycja. Nawet skanowanie powierzchni dysku w poszukiwaniu bad bloków nie wykryje oszustwa, bo te fake flashe nie zwracają błędów odczytu nawet gdy system próbuje czytać z nieistniejącego sektora.
Poniżej jest przeprowadzony test sprawdzający faktyczną ilość dostępnej pamięci flash na podesłanej mi przez użytkownika davidoski karcie SD. By taki test przeprowadzić, potrzebne nam będą dwa narzędzia -- f3write i f3read. Oba z nich znajdują się w pakiecie f3 .
Podłączamy zatem nowo zakupioną kartę/pena do naszego PC:
Nov 22 13:39:03 morfikownia kernel: [ 396.405431] usb 2-1.1: new high-speed USB device number 17 using ehci-pci
Nov 22 13:39:03 morfikownia kernel: [ 396.510459] usb 2-1.1: New USB device found, idVendor=05e3, idProduct=0723
Nov 22 13:39:03 morfikownia kernel: [ 396.510468] usb 2-1.1: New USB device strings: Mfr=3, Product=4, SerialNumber=2
Nov 22 13:39:03 morfikownia kernel: [ 396.510473] usb 2-1.1: Product: USB Storage
Nov 22 13:39:03 morfikownia kernel: [ 396.510478] usb 2-1.1: Manufacturer: Generic
Nov 22 13:39:03 morfikownia kernel: [ 396.510482] usb 2-1.1: SerialNumber: 000000009451
Nov 22 13:39:03 morfikownia kernel: [ 396.511379] usb-storage 2-1.1:1.0: USB Mass Storage device detected
Nov 22 13:39:03 morfikownia kernel: [ 396.528439] usb-storage 2-1.1:1.0: Quirks match for vid 05e3 pid 0723: 8000
Nov 22 13:39:03 morfikownia kernel: [ 396.528513] scsi5 : usb-storage 2-1.1:1.0
Nov 22 13:39:03 morfikownia mtp-probe: checking bus 2, device 17: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1"
Nov 22 13:39:03 morfikownia mtp-probe: bus: 2, device: 17 was not an MTP device
Nov 22 13:39:04 morfikownia kernel: [ 397.527000] scsi 5:0:0:0: Direct-Access Generic STORAGE DEVICE 9451 PQ: 0 ANSI: 0
Nov 22 13:39:04 morfikownia kernel: [ 397.527590] sd 5:0:0:0: Attached scsi generic sg2 type 0
Nov 22 13:39:04 morfikownia kernel: [ 398.181613] sd 5:0:0:0: [sdb] 262144000 512-byte logical blocks: (134 GB/125 GiB)
Nov 22 13:39:04 morfikownia kernel: [ 398.182981] sd 5:0:0:0: [sdb] Write Protect is off
Nov 22 13:39:04 morfikownia kernel: [ 398.182988] sd 5:0:0:0: [sdb] Mode Sense: 03 00 00 00
Nov 22 13:39:04 morfikownia kernel: [ 398.184354] sd 5:0:0:0: [sdb] No Caching mode page found
Nov 22 13:39:04 morfikownia kernel: [ 398.184360] sd 5:0:0:0: [sdb] Assuming drive cache: write through
Nov 22 13:39:04 morfikownia kernel: [ 398.192694] sdb: sdb1
Nov 22 13:39:04 morfikownia kernel: [ 398.196814] sd 5:0:0:0: [sdb] Attached SCSI removable disk
Jak widać wyżej karta została rozpoznana przez system i pojemność wykryta to 134G. Spróbujmy zmienić system plików tego urządzenia na ext4. U mnie udało się bez większego problemu ale przy próbie zamontowania zasobu dostaję taki komunikat:
Nov 22 13:43:22 morfikownia kernel: [ 655.601584] JBD2: no valid journal superblock found
Nov 22 13:43:22 morfikownia kernel: [ 655.601593] EXT4-fs (sdb1): error loading journal
Wróciłem zatem do fabrycznego fat32, po czym podmontowałem kartę w systemie i zacząłem wgrywać pliki via f3write . Narzędzie f3write zapisuje tylko wolną przestrzeń na urządzeniu, zatem przydałoby się wyczyścić kartę zanim przystąpimy do jej sprawdzania.
root:~# f3write /media/morfik/rootfs/
Free space: 124.97 GB
Creating file 1.h2w ... OK!
Creating file 2.h2w ... OK!
Creating file 3.h2w ... OK!
Creating file 4.h2w ... OK!
Creating file 5.h2w ... OK!
Creating file 6.h2w ... OK!
Creating file 7.h2w ... OK!
Creating file 8.h2w ... OK!
Creating file 9.h2w ... OK!
Creating file 10.h2w ... OK!
Creating file 11.h2w ... OK!
Creating file 12.h2w ... OK!
Creating file 13.h2w ... OK!
Creating file 14.h2w ... OK!
Creating file 15.h2w ... OK!
Creating file 16.h2w ... OK!
Creating file 17.h2w ... OK!
Creating file 18.h2w ... OK!
Creating file 19.h2w ... OK!
Creating file 20.h2w ... OK!
Creating file 21.h2w ... OK!
Creating file 22.h2w ... OK!
Creating file 23.h2w ... OK!
Creating file 24.h2w ... OK!
Creating file 25.h2w ... OK!
Creating file 26.h2w ... OK!
Creating file 27.h2w ... OK!
Creating file 28.h2w ... OK!
Creating file 29.h2w ... OK!
Creating file 30.h2w ... OK!
Creating file 31.h2w ... OK!
Creating file 32.h2w ... OK!
Creating file 33.h2w ... OK!
Creating file 34.h2w ... OK!
Creating file 35.h2w ... OK!
Creating file 36.h2w ... OK!
Creating file 37.h2w ... OK!
Creating file 38.h2w ... OK!
Creating file 39.h2w ... OK!
Creating file 40.h2w ... OK!
Creating file 41.h2w ... OK!
Creating file 42.h2w ... OK!
Creating file 43.h2w ... OK!
Creating file 44.h2w ... OK!
Creating file 45.h2w ... OK!
Creating file 46.h2w ... OK!
Creating file 47.h2w ... OK!
Creating file 48.h2w ... OK!
Creating file 49.h2w ... OK!
Creating file 50.h2w ... OK!
Creating file 51.h2w ... OK!
Creating file 52.h2w ... OK!
Creating file 53.h2w ... OK!
Creating file 54.h2w ... OK!
Creating file 55.h2w ... OK!
Creating file 56.h2w ... OK!
Creating file 57.h2w ... OK!
Creating file 58.h2w ... OK!
Creating file 59.h2w ... OK!
Creating file 60.h2w ... OK!
Creating file 61.h2w ... OK!
Creating file 62.h2w ... OK!
Creating file 63.h2w ... OK!
Creating file 64.h2w ... OK!
Creating file 65.h2w ... OK!
Creating file 66.h2w ... OK!
Creating file 67.h2w ... OK!
Creating file 68.h2w ... OK!
Creating file 69.h2w ... OK!
Creating file 70.h2w ... OK!
Creating file 71.h2w ... OK!
Creating file 72.h2w ... OK!
Creating file 73.h2w ... OK!
Creating file 74.h2w ... OK!
Creating file 75.h2w ... OK!
Creating file 76.h2w ... OK!
Creating file 77.h2w ... OK!
Creating file 78.h2w ... OK!
Creating file 79.h2w ... OK!
Creating file 80.h2w ... OK!
Creating file 81.h2w ... OK!
Creating file 82.h2w ... OK!
Creating file 83.h2w ... OK!
Creating file 84.h2w ... OK!
Creating file 85.h2w ... OK!
Creating file 86.h2w ... OK!
Creating file 87.h2w ... OK!
Creating file 88.h2w ... OK!
Creating file 89.h2w ... OK!
Creating file 90.h2w ... OK!
Creating file 91.h2w ... OK!
Creating file 92.h2w ... OK!
Creating file 93.h2w ... OK!
Creating file 94.h2w ... OK!
Creating file 95.h2w ... OK!
Creating file 96.h2w ... OK!
Creating file 97.h2w ... OK!
Creating file 98.h2w ... OK!
Creating file 99.h2w ... OK!
Creating file 100.h2w ... OK!
Creating file 101.h2w ... OK!
Creating file 102.h2w ... OK!
Creating file 103.h2w ... OK!
Creating file 104.h2w ... OK!
Creating file 105.h2w ... OK!
Creating file 106.h2w ... OK!
Creating file 107.h2w ... OK!
Creating file 108.h2w ... OK!
Creating file 109.h2w ... OK!
Creating file 110.h2w ... OK!
Creating file 111.h2w ... OK!
Creating file 112.h2w ... OK!
Creating file 113.h2w ... OK!
Creating file 114.h2w ... OK!
Creating file 115.h2w ... OK!
Creating file 116.h2w ... OK!
Creating file 117.h2w ... OK!
Creating file 118.h2w ... OK!
Creating file 119.h2w ... OK!
Creating file 120.h2w ... OK!
Creating file 121.h2w ... OK!
Creating file 122.h2w ... OK!
Creating file 123.h2w ... OK!
Creating file 124.h2w ... OK!
Creating file 125.h2w ... OK!
Free space: 0.00 Byte
Average writing speed: 8.26 MB/s
Trwało to co prawda parę godzin ale zapis całych 125GiB zakończył się powodzeniem. Po przemontowaniu karty, przy listowaniu zawartości możemy zobaczyć, że wszystkie wgrane pliki są widoczne:
root:~# ls -al /media/morfik/rootfs
total 125G
drwxr-xr-x 2 morfik morfik 32K 1970-01-01 01:00:00 ./
drwxr-xr-x 3 morfik morfik 4.0K 2014-11-22 18:28:43 ../
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:03:32 1.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:07:00 2.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:10:28 3.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:13:56 4.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:17:24 5.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:20:52 6.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:24:20 7.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:27:10 8.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:29:12 9.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:31:12 10.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:33:14 11.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:35:16 12.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:37:16 13.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:39:18 14.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:41:20 15.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:43:22 16.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:45:24 17.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:47:24 18.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:49:24 19.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:51:26 20.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:53:28 21.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:55:30 22.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:57:30 23.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 14:59:34 24.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:01:34 25.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:03:34 26.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:05:44 27.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:07:44 28.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:09:44 29.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:11:48 30.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:13:48 31.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:15:48 32.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:17:54 33.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:19:54 34.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:21:58 35.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:23:58 36.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:26:00 37.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:28:02 38.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:30:02 39.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:32:02 40.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:34:06 41.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:36:08 42.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:38:12 43.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:40:12 44.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:42:14 45.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:44:16 46.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:46:18 47.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:48:18 48.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:50:20 49.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:52:22 50.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:54:24 51.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:56:24 52.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 15:58:26 53.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:00:28 54.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:02:28 55.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:04:32 56.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:06:34 57.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:08:34 58.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:10:38 59.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:12:38 60.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:14:40 61.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:16:42 62.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:18:42 63.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:20:44 64.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:22:46 65.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:24:46 66.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:26:50 67.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:28:50 68.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:30:50 69.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:32:54 70.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:34:54 71.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:36:56 72.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:38:58 73.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:40:58 74.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:43:00 75.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:45:02 76.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:47:02 77.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:49:04 78.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:51:06 79.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:53:08 80.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:55:08 81.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:57:10 82.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 16:59:12 83.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:01:12 84.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:03:14 85.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:05:16 86.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:07:18 87.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:09:30 88.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:11:30 89.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:13:30 90.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:15:42 91.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:17:42 92.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:19:44 93.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:21:46 94.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:23:48 95.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:25:48 96.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:27:52 97.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:29:52 98.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:31:56 99.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:33:58 100.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:36:00 101.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:38:02 102.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:40:04 103.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:42:04 104.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:44:06 105.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:46:08 106.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:48:10 107.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:50:10 108.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:52:12 109.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:54:16 110.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:56:16 111.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 17:58:18 112.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 18:00:22 113.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 18:02:22 114.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 18:04:26 115.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 18:06:26 116.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 18:08:30 117.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 18:10:34 118.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 18:12:36 119.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 18:14:40 120.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 18:16:42 121.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 18:18:44 122.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 18:20:54 123.h2w
-rw-r--r-- 1 morfik morfik 1.0G 2014-11-22 18:22:54 124.h2w
-rw-r--r-- 1 morfik morfik 94M 2014-11-22 18:23:04 125.h2w
To, że system zapisał 125GiB na karcie, nic jeszcze nie oznacza. Musimy zweryfikować czy aby na pewno da radę odczytać te pliki. Odpalamy zatem f3read :
root:~# f3read /media/morfik/rootfs
SECTORS ok/corrupted/changed/overwritten
Validating file 1.h2w ... 2097152/ 0/ 0/ 0
Validating file 2.h2w ... 2097152/ 0/ 0/ 0
Validating file 3.h2w ... 2097152/ 0/ 0/ 0
Validating file 4.h2w ... 2097152/ 0/ 0/ 0
Validating file 5.h2w ... 2097152/ 0/ 0/ 0
Validating file 6.h2w ... 2097152/ 0/ 0/ 0
Validating file 7.h2w ... 2097152/ 0/ 0/ 0
Validating file 8.h2w ... 1182951/ 914201/ 0/ 0
Validating file 9.h2w ... 0/ 2097152/ 0/ 0
Validating file 10.h2w ... 0/ 2097152/ 0/ 0
...
Jak widać wyżej, 7 plików ze 125 wcześniej utworzonych zostało odczytanych bez problemów. Część ósmego pliku rezyduje poza obszarem flasha, tj. niby plik jest widoczny ale nie ma sektorów, z których mógłby on zostać odczytany, stąd zaczynają pojawiać się błędy. To samo jest już z kolejnymi plikami i żaden następny sektor nie może zostać odczytany. Zatem faktyczna wielkość tej karty SD to 8G, a konkretnie (7*2097152*512)+(1182951*512)=8121863680 bajtów, lub 8121863680/512=15863015 sektorów.
Tę kartę można używać, z tym, że trzeba utworzyć na niej odpowiednią partycję -- taką, której ostatni sektor będzie rezydował na pozycji 15863015-1=15863014 , a to z tego względu, że sektory na dysku są numerowane od 0, a nie od 1. Odpalamy zatem fdiska, usuwamy starą partycję i tworzymy na niej miejsce nową:
root:~# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sdb: 125 GiB, 134217728000 bytes, 262144000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00055cd9
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 262143999 262141952 125G b W95 FAT32
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-262143999, default 2048): 2048
Last sector, +sectors or +size{K,M,G,T,P} (2048-262143999, default 262143999): 15863014
Created a new partition 1 of type 'Linux' and of size 7.6 GiB.
Sprawdzamy czy wszystko się zgadza:
Command (m for help): p
Disk /dev/sdb: 125 GiB, 134217728000 bytes, 262144000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00055cd9
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 15863014 15860966 7.6G 83 Linux
Rozmiar partycji jest mniejszy o te początkowe 2048 sektory (równanie do 1MiB). Zapisujemy i przeładowujemy info o karcie:
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
root:~# partprobe
Formatujemy partycję z wykorzystaniem systemu plików ext4:
root:~# mkfs.ext4 -m 0 -L karta /dev/sdb1
mke2fs 1.42.12 (29-Aug-2014)
/dev/sdb1 contains a vfat file system
Proceed anyway? (y,n) y
Creating filesystem with 1982620 4k blocks and 495808 inodes
Filesystem UUID: d35f143a-49ab-4c90-be90-a4cce4eabd00
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
root:~# mount /dev/sdb1 /mnt/
Nie ma błędów, zatem testujemy zapis/odczyt danych:
root:~# f3write /mnt/
Free space: 7.30 GB
Creating file 1.h2w ... OK!
Creating file 2.h2w ... OK!
Creating file 3.h2w ... OK!
Creating file 4.h2w ... OK!
Creating file 5.h2w ... OK!
Creating file 6.h2w ... OK!
Creating file 7.h2w ... OK!
Creating file 8.h2w ... OK!
Free space: 16.01 MB
Average writing speed: 5.72 MB/s
root:~# f3read /mnt/
SECTORS ok/corrupted/changed/overwritten
Validating file 1.h2w ... 2097152/ 0/ 0/ 0
Validating file 2.h2w ... 2097152/ 0/ 0/ 0
Validating file 3.h2w ... 2097152/ 0/ 0/ 0
Validating file 4.h2w ... 2097152/ 0/ 0/ 0
Validating file 5.h2w ... 2097152/ 0/ 0/ 0
Validating file 6.h2w ... 2097152/ 0/ 0/ 0
Validating file 7.h2w ... 2097152/ 0/ 0/ 0
Validating file 8.h2w ... 601992/ 0/ 0/ 0
Data OK: 7.29 GB (15282056 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: 16.19 MB/s
I jak widać, partycja nadaje się do odczytu/zapisu danych, z tym, że zamiast 125GiB jest nieco ponad 7GiB. Gparted też bez problemu wykrywa tę partycję:
Makulatura
Pisane w oparciu o:
http://oss.digirati.com.br/f3/
http://www.ebay.com/gds/All-About-Fake-Flash-Drives-2013-/10000000177553258/g.html