[HOWTO] Klonowanie karty SD / testowanie szybkości zapis - odczyt

  • 0 replies
  • 151 views
*

Online kris777

  • ***
  • 140
  • 33
Ostatnio musiałem wykonać kopię zapasową / klona karty SDHC (mini) z zainstalowanym systemem Armbian.
Niestety popełniłem prozaiczny błąd ...co kosztowało mnie powtórną instalacją systemu :-)
Podaję więc małe HOWTO  dotyczące poprawnego klonowania karty SD np. (z systemem ARMBIAN 5.38 stable Ubuntu 16.04.3 LTS) - na Linux-ie ( Linux Mint / Debian / Ubuntu itp). Pewnie przyda się to posiadaczom:  Raspberry Pi  / Orange Pi / Odroid-a itd mini PC opartych na architekturze ARM.
Do klonowania korzystamy z programu dd. Po włożeniu karty mini SDHC do np. laptopa korzystając z adaptera sprawdzamy z pozycji root-a (administratora) jak system rozpoznał w/w kartę:
Moje karty :
   
fdisk -lnp.

Dysk /dev/sdb: 29,8 GiB, bajtów: 32010928128, sektorów: 62521344
Jednostki: sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Typ etykiety dysku: dos
Identyfikator dysku: 0x970f36a3

Urządzenie Rozruch Początek   Koniec  Sektory Rozmiar Id Typ
/dev/sdb1              2048 62521343 62519296   29,8G  c W95 FAT32 (LBA)
root@kris-R780:/home/kris#
W naszym przypadku najważniejsza informacja to : /dev/sdb .... a nie /dev/sdb1 !!! jeśli się pomylimy system
niestety się nie uruchomi ( wykonamy jedynie kopię danych zawartych na karcie SD).
Klonowanie ( w moim przypadku ) karty miniSD z systemem Armbian / Odroid-HC1:
dd if=/dev/sdb of=/home/kris/Pulpit/odroid-HC1-ok.img status=progressOczywiście ścieżkę do pliku i nazwę do pliku .img podajemy własne :-)
Przywracanie obrazu na inną kartę mini SDHC ( o tej samej pojemności !!! ).
dd bs=4M if=/home/kris/Pulpit/odroid-HC1-ok.img of=/dev/sdb status=progressOczywiście sprawdzając wcześniej jak system rozpoznał naszą kartę patrz wyżej : fdisk -l
Klonowanie karty mini SDHC z zainstalowanym systemem na inną kartę ale o np. mniejszej pojemności w moim przypadku 32GB na 8GB jest nieco inne. ( musimy mieć też w systemie program gparted ) ...w skrócie polega to na zmniejszeniu wcześniej wykonanego pliku obrazu : odroid-HC1-ok.img do ( fizycznej / faktycznej ! ) wielkości naszej mniejszej karty SD. Faktyczną wielkość danej karty określimy komendą jw. : fdisk -l
np. Samsung 32 EVO nie ma 32 GB ...ale : 29,8 GiB ! a np. karta mini SDHC SanDisc Industrial 8GB class 10 ma : 7.4GiB !  a nie 8GB jak by się wydawało :-)
Instalujemy sklonowany obraz w systemie i wykonujemy następujące polecenia ( terminal / root ):
losetup /dev/loop0 /home/kris/Pulpit/odroid-HC1-ok.img
partprobe /dev/loop0
gparted /dev/loop0
Uruchomi się program gparted z edycją naszego pliku obrazu :

Klikamy na przestrzeni : /dev/loop0p1 (prawy klik myszy) i z menu kontekstowego wybieramy : zmień rozmiar/przenieś. Za pomocą suwaka ( lub wpisując ręcznie w oknie) zmniejszmy partycję do wymaganego : 7.4GB  .... jednak dla pewności zapisu (na mniejszą kartę SD) podajemy troszkę mniej np. 7.1GB zatwierdzamy bieżące okno :

 i ponownie zatwierdzamy działania klikając na zieloną strzałkę w programie gparted (zastosuj wszystkie działania) po tym zamykamy program gparted.

Po tym zabiegu sprawdzamy dokonane zmiany na naszym sklonowanym obrazie komenda:
 
sudo fdisk -l /home/kris/Pulpit/odroid-HC1-ok.imgwynik :

Dysk /home/kris/Pulpit/odroid-HC1-ok.img: 29,8 GiB, bajtów: 32010928128, sektorów: 62521344
Jednostki: sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Typ etykiety dysku: dos
Identyfikator dysku: 0x8a28a329

Urządzenie                           Rozruch          Początek   Koniec         Sektory     Rozmiar    Id    Typ
/home/kris/Pulpit/odroid-HC1-ok.img1             8192    14888959   14880768    7,1G       83    Linux

Na razie jeszcze nasz plik obrazu dalej fizycznie na komputerze ma : 29,8 GiB musimy dokonać FIX -u aby to zmienić. Interesują nas wpisy :
jednostki sektorów - *512
i liczba Koniec : 14888959
teraz już tylko wpis :
truncate --size=$[(14888959+1)*512] /home/kris/Pulpit/odroid-HC1-ok.imgI otrzymujemy ostatecznie zmniejszony obraz 7.1GB który teraz możemy bez problemu sklonować metodą podaną wyżej na nową kartę SDHC o mniejszej pojemności.

Jeśli chcemy przetestować zakupioną kartę mini SDHC  np.  szybkość zapisu / odczytu / fizycznego miejsca na karcie SD ( w efekcie sprawdzić czy karta SD podaje poprawne dane z tymi przy zakupie ) można skorzystać z programu :
F3 - Fight Flash Fraud
 strona domowa : https://fight-flash-fraud.readthedocs.io/en/stable/introduction.html
Program posiada graficzną nakładkę F3-qt jednak ja polecam testowanie w terminalu ...bo czasami niestety graficzne gui lubi się zawiesić.

Instalacji nie będę opisywał bo jest na stronie domowej.
A testowanie sprowadza się do prostych wpisów w terminalu np.
test szybkości zapisu / odczytu karty SD:
f3write /media/michel/5EBD-5C80/
f3read /media/michel/5EBD-5C80/
Oczywiście musimy podać własną ścieżkę dostępu po włożeniu karty do komputera : /media/michel/5EBD-5C80 - to tylko przykład :-)
Samsung:
odczyt
f3read /media/kris/USB
Data OK: 29.80 GB (62488704 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: 19.26 MB/s

zapis
f3write /media/kris/USB
zapis = 16.92 MB/s
Average writing speed: 16.92 MB/s


Sandisc: odczyt :19MB/s - zapis:12MB/s

pozdro!
« Ostatnia zmiana: Czerwiec 01, 2018, 14:54:01 pm wysłana przez kris777 »