Nabity w pendrive’a

Dałem się nabrać. Szukałem metalowych pendrive’ów. Takie idealnie pasują mi jako brelok do kluczy. Do tej pory używałem 32 GB kupionych na Aliexpress, ale pomału zaczynało brakować miejsca. Zajrzałem ponownie na Aliexpress, znalazłem inne, także metalowe.

Od razu odniosę się do komentarza znajomych, którzy brzmiał:
Sorry ale kto normalny kupuje pendriva na Ali?
Kupowałem tam różną drobną elektronikę. Z dotarciem, jakością czy wręcz działaniem bywało różnie, choć zwykle było OK. I jak do tej pory zawsze reklamacje były bezproblemowe. Jak nie dotarło (najczęstsza przyczyna), to oddawali kasę bez większego marudzenia. Jak raz jedna z dwóch kart WiFi przyszła padnięta (błędy w dmesg, w ogóle nie miała napisu 802.1n), to wystarczył screenshot (sic!) z dmesg i także był zwrot pieniędzy. Zresztą szybko nauczyłem się zamawiać po dwie sztuki na tę okoliczność. Takie przydasie typu pendrive, karta SD do zabaw z Banana Pi czy karta WiFi zawsze albo giną, albo potrzebne są kolejne.

Tym razem było inaczej. Pendrive’y przyszły i nic nie zapowiadało problemów. No dobrze, po czasie stwierdzam, że pewne podejrzenia mógł wzbudzić woreczek. Jeśli woreczek, w którym jest pendrive ma napis USB cable, to wiedz, że coś się dzieje. Z drugiej strony to był elegancki woreczek, nie zwykły strunowy.

Pendrive czy kabel? Źródło: fot. własna

W każdym razie postanowiłem przetestować zakup przed użyciem. Co prawda i tak po zapisie zawsze sprawdzam sumy kontrolne, ale zanim dojdę do pełnej pojemności, to może trochę potrwać. Początkowo wyglądało OK, ale po dograniu któregoś z którychś z kolei kopii plików, suma kontrolna się nie zgadzała. Pomyślałem, że uszkodzony i zacząłem sprawdzać drugi. Podobnie. Złożyłem reklamację i… zaczęły się schody.

Najpierw zaproponowali albo zwrot całości kwoty i odesłanie towaru na mój koszt[1], albo zwrot 0%. I zażyczyli sobie video pokazujące, jak pendrive’y nie działają. Podesłałem screenshoty, a także zdjęcia opakowania, oraz ciekawostkę – każdy z pendrive’ów ma odwrotnie włożoną elektronikę.

Niebieskie na górze, niebieskie na dole. Źródło: fot. własna

W międzyczasie pogadałem z ludźmi i dowiedziałem się o programie do sprawdzania pamięci flash f3 – Fight Flash Fraud. Fajne, nie znałem. W Debianie to po prostu pakiet f3 w repozytorium. Działa znacznie szybciej, niż kopiowanie plików i sprawdzanie sum kontrolnych. Przykładowy wynik to:

f3probe -t /dev/sdc
F3 probe 8.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.
 
WARNING: Probing normally takes from a few seconds to 15 minutes, but
         it can take longer. Please be patient.
 
Probe finished, recovering blocks... Done
 
Bad news: The device `/dev/sdc' is a counterfeit of type limbo
 
You can "fix" this device using the following command:
f3fix --last-sec=67108863 /dev/sdc
 
Device geometry:
	         *Usable* size: 32.00 GB (67108864 blocks)
	        Announced size: 58.59 GB (122880000 blocks)
	                Module: 64.00 GB (2^36 Bytes)
	Approximate cache size: 255.00 MB (522240 blocks), need-reset=no
	   Physical block size: 512.00 Byte (2^9 Bytes)
 
Probe time: 9'07"
 Operation: total time / count = avg time
      Read: 41.71s / 1572537 = 26us
     Write: 8'22" / 3656905 = 137us
     Reset: 2us / 2 = 1us

Jak widać kupione pendrive’y to tak naprawdę 32 GB udające 64 GB. I program od razu podaje sposób „naprawy”. Pomyślę.

A jak się skończyła cała sprawa? Ano zmieniłem typ zgłoszenia na fraud (patrz komentarze negatywne do hxxps://www.aliexpress.com/item/1005001801649163.html, to nie jest jednostkowy przypadek), kontaktowałem się z supportem. Uzupełniłem zgłoszenie, pojawiły się dwie propozycje: odesłanie na mój koszt i zwrot 20% wartości zamówienia. Nie dosłałem filmu w ciągu trzech dni, więc zwrócili 20% i zamknęli reklamację. Bez możliwości ponownego otwarcia, choć nie minął termin zwrotu.

Złożyłem apelację, opisując wszystkie szczegóły, oczywiście rozpatrzoną negatywnie. I tyle. Jak widać oferta nadal jest aktywna, a Aliexpress wychodzi najwidoczniej z założenia, że jeśli sprzedawca oszukuje klienta, to koszt tego powinien ponosić klient.

Nieco się nauczyłem i nie była to droga nauka. O programie do testowania pamięci flash było już wyżej. Zaś jeśli chodzi o zakupy na Aliexpress, to jeśli kiedykolwiek coś jeszcze tam kupię, to wyłącznie korzystając z płatności kartą, by móc skorzystać z chargebacku. Inny lifehack jest taki, że jeśli towar z Aliexpress dotrze uszkodzony, niezgodny z opisem, czy w inny sposób kwalifikujący się na pełen zwrot środków, to w przypadku przesyłki nierejestrowanej lepiej jest twierdzić, że w ogóle nie dotarł. Może nie jest to do końca uczciwe, ale wygląda na skuteczne.

Już po napisaniu tego wpisu, ale przed wysłaniem, skontakowałem się z Przelewy24 i… będzie kolejny wpis. Bowiem dowiedziałem się, że po pierwsze, mogą wystąpić do sprzedawcy o zwrot w moim imieniu (o co poprosiłem), a po drugie, mogę próbować jeszcze chargebacku w banku, niezależnie od sposobu płatności. Stay tuned.

[1] Nie mam problemu z odesłaniem, tylko nie rozumiem, czemu ja miałbym za to płacić.

Pamięci flash, czyli pendrive, microSD itd.

Czasem człowiekowi wydaje się, że coś wie i… no właśnie, wydaje się. Że są różne pendrive’y (czy tam ogólnie pamięci flash), to wiedziałem. Wiedziałem też, że mają klasy i poszczególne klasy odpowiadają różnym prędkościom zapisu. I tyle.

Niedawno od hrw dowiedziałem się, że to nie do końca tak, że parametrów jest znacznie więcej i że w praktyce mają one spore znaczenie przy stosowaniu karty jako nośnika dla systemu Linux. Bo jednak czym innym jest zapis filmu na FAT, a czym innym realne operacje na jakichś linuksowych systemach plików.

Ostatnio uruchomiłem grzejnik na starym pendrive, użyłem ext2 i zdarzyło mi się trochę ponarzekać na μblogu, że wolno działa i w ogóle. Dostałem odpowiedź, że minimalny cluster size dla nośnika flash powinien być 4k. Co przypomniało mi wcześniejszą rozmowę i skłoniło do zadania pytania jak sprawdzić cluster size? Co dość szybko przywiodło mnie do wpisu nt. optymalizacji systemu plików dla pamięci flash.

Zauważyłem, że blog do którego powyżej linkuję ma raptem trzy wpisy i to sprzed roku, więc ryzyko zniknięcia jest spore. Pozwolę sobie zacytować dla pamięci część dotyczącą analizy:

  1. Interesting parts of this result are the diff changes drastically at two places:
    1. from  8388608 (8Mb) to 4194304 (4MB): Based in example readme in flashbench, this indicates that there was no performance overhead reading two blocks over the 4mb boundary, but there was for 8mb boundary. The guess is then that the erasure block is 8mb large on my sd-card
    2. before 8192 and after. I would really like to know why there is a bump at 8k, but times after that are so much lower, so 8k is obviously some sort of boundary point.
  2. From this, I deduce two things,
    1. Ext4 should have a block size of 4k, and the “stride” value should be 2. This will cause ext4 to think that units of 2 blocks (8k) can and should be treated as one.
    2. Ext4 should have the stripe-size set to 1024. This value was calculated by taking 8M (guessed erasure block size) dividing by 8K (size of a stride, 2 times block size (4K)). This will (hopefully) cause Ext4 to try to align writes so that while erasure blocks are written continuously and make it avoid sub-block updates.

Część dotyczącą ustawiania początku partycji w fdisk:

First sector (2048-15759359, default 2048): 16384

Wraz z wyjaśnieniem, skąd to się wzięło:

Fdisk uses blocks of 512 bytes, so that means that we want to start at 8*1024^2/512 = 16384.

No i na koniec część dotycząca tworzenia samego filesystemu ext4:

Reformat the filesystem, this time with Ext4 with block size of 4k, without journaling, but with additional parameters to encourage Ext4 to do the right thing with respect to the erasure block:

mkfs.ext4 -O ^has_journal -E stride=2,stripe-width=1024 -b 4096 -L Fedora14Arm  /dev/mmcblk0p1

Na koniec dwa linki, które autor wpisu podaje jako źródła:

Zachęcam do lektury całego wpisu z którego pochodzą powyższe cytaty, bo powyżej są jedynie najważniejsze wyjątki, które bez kontekstu nie do końca w czymkolwiek pomogą.

Inny, prostszy (ale starszy) wpis o podobnej tematyce: http://linux-howto-guide.blogspot.com/2009/10/increase-usb-flash-drive-write-speed.html

No i dowiedziałem się, że pożyteczne narzędzie to flashbench (pakiet jest w Debianie unstable), że żaden ext2 dla nośników flash, tylko ext4 bez journala, za to z dodatkowymi opcjami, zależnymi od parametrów karty. I że nie tylko w przypadku SSD warto stosować alignment. Różnica prędkości między ext2 a ext4 po tuningu? Wg autora wpisu 8 razy szybciej dla małych plików i dwa szybciej dla dużych. Trochę mi wszystko opadło, ale za to wiem, co będę robić w weekend.

UPDATE: Trochę się pobawiłem i wyszło mi, że metoda pomiaru jest średnio dokładna. Albo pendrive zwalnia w miarę używania (w sensie „wykonana ilość zapisów”), albo reboot/hibernacja drastycznie zmieniają wyniki, albo nie wiem co jest grane. Bo zrobiłem test na FAT, potem na ext4 po dopasowaniu partycji (brak zauważalnych różnic), potem zabawa z ustawieniami ext4 i… między pierwszym testem na ext4, a końcowym, na identycznych parametrach ext4 były 4 sekundy różnicy. Przy podstawie 22 sekundy, więc prawie 20% wolniej. Zagadka. A ponieważ nie widzę zysku między FAT a ext4, to chęć do migracji ext2 -> ext4 gwałtownie spadła. Może kiedyś.

UPDATE2: Dodane cytaty z bloga. Bawiłem się trochę w optymalizacje/benchmarki na czterech różnych pendrive’ach. Tylko jeden zareagował pozytywnie na zmianę alignmentu (OK, bez wyliczeń było, po prostu początek partycji na sektorze 16384) i zmianę systemu na ext4. Przy okazji wyszło na jaw, że pendrive, który uznałem za wolny jest ok. 3 razy wolniejszy od pozostałych, niezależnie od ustawień.

Wyciszanie grzejnika

Pod koniec zeszłego roku komputer robiący za grzejnik przestał działać. Padł dysk. Software RAID na dwóch partycjach niewiele pomógł. Tzn. pomógł na tyle, że były sygnały, że wkrótce się skończy. Gdybym miał jakieś ważniejsze dane, to zapewne zdążyłbym zgrać. Inna sprawa, że wg statystyk zrobionych przez Google, IIRC 30% dysków nie ma żadnych, ale to naprawdę żadnych objawów w S.M.A.R.T, zanim padną. Jakby komuś bardzo zależało i nie mógł znaleźć – dajcie znać w komentarzach, to poszukam tych statystyk Dzięki GDR! za podesłanie linka!

Wracając do tematu. Wymieniłem komputer w domu u rodziców, przełożyłem ze starego dysk do nowego. Zapomniałem o tym, włączyłem go i… praktycznie totalna cisza. Mimo w sumie trzech wentylatorów (zasilacz, radiator na procesorze i wentylator jak od zasilacza puszczony na 5V chłodzący kartę graficzną). Okazało się, że głównym hałasującym był dysk (Seagate 60 GB).

To podsunęło mi pomysł, żeby spróbować tego samego z grzejnikiem. W końcu komputer uruchamiający się z pendrive był ćwiczony wielokrotnie. Może nie w tak hardcore’owej wersji, bo jednak zawsze na podorędziu był dysk wpięty po USB, ale to przecież drobiazg. Przy okazji nauczyłem się patentu: jeśli komputer nie ma bootowania z USB w BIOSie, albo ma takie, że nie potrafi zabootować się z pendrive’a, to można zabootować z CD-ROM i kazać bootować z USB. Wymaga co prawda sprawnego napędu CD-ROM, ale działa. 🙂

Dzisiaj przywiozłem grzejnik. System zainstalowany na pendrive, póki co bez tuningu pod kątem trwałości tego ostatniego. Znaczy jest ext2, nie ma swap, ale reszty opcji nie miałem kiedy włączyć. Oczywiście tym razem nie będzie dysku tylko do odczytu, bo mprime musi gdzieś zapisywać wyniki (BTW przechodzę wyłącznie na wstępną faktoryzację – w jeden sezon grzewczy i tak nie jestem w stanie „konkursowej” liczby przeliczyć), ale to nie powód, by katować flasha ponad potrzebę.

Pamiętałem, że wentylatory w tej maszynie dość szumią, więc przypomniał mi się zacny wpis z Majsterkowo.pl o naprawie głośnych wentylatorów. Co prawda wyciąganie zawleczki i wyciąganie ośki uważam za overkill, ale rozebrałem i wentylator od procesora, i ten w zasilaczu i przesmarowałem sprawdzonym sposobem (kropelka oleju maszynowego). Jest o niebo lepiej, choć nadal troszkę go słychać. Winny jest badziewny radiator i wentylator zamontowany na nim, który jakby ma lekkie bicie. I w ogóle trochę mały jest ten radiator, i mniejszy niż w zasilaczu ma wentylator. Trochę żałuję, że nie przełożyłem z mojego starego domowego komputera procesora (Athlon 2200+) – obecnie jest Sempron 2300+, czyli słabszy. No i oczywiście radiatora (tego z niesłyszalnym praktycznie wentylatorem). Przy okazji mogłem też wymienić wentylator w zasilaczu, choćby na ten, który dmuchał na grafikę w starym komputerze. No ale nie było czasu… ;-/

Przy okazji otwierania zasilacza w celu przesmarowania i wyczyszczenia wentylatora znalazłem spore pokłady kurzu. Niestety, okazuje się, że samo odkurzenie zasilacza przez szczeliny nie pomaga, a sprężonego powietrza nie miałem nigdy pod ręką. Dodatkowo wyszło na jaw, że jeden z kondensatorów trochę wyciekł. Mam już lutownicę, ale nie miałem kondensatora na wymianę. Póki co działa, więc nie ruszam. Mam nadzieję, że nie odparuje razem z płytą…

UPDATE: Note for myself: w tym roku dniem uruchomienia grzejnika jest 02.12.2012. I nie jest to początek sezonu grzewczego.

UPDATE2: Może i było lepiej przez chwilę, ale dość szybko się pogorszyło. Tym razem pamiętałem i wyjąłem wentylator z nieużywanego komputera. Okazuje się, że nie był na 5V, a i tak był praktycznie niesłyszalny. Jakiś Arctic, które kupiłem za grosze w większej ilości wieki temu. Co prawda z mocowaniem był cyrk, bo żeby wkręcić cztery wkręty brakuje jakichś 5 mm na długości radiatora, ale dało się zamocować na dwóch (skombinowanych z kołków, bo wentylator różni się głównie wysokością, więc oryginalne nie pasowały). 1700 RPM w tej chwili i cisza – ten z zasilacza jest głośniejszy.