W poprzednim wpisie umieściłem informację jak zamontować partycję z obrazu dysku. Teraz przyszło mi przekopiować jedną partycję z obrazu na nowy dysk.Jest to dość proste. Po pierwsze musimy na nowym dysku przygotować patycję o rozmiarze nie mniejszym niż ta, ktorą chcemy skopiowac – tego nie będę tłumaczył. Potem za pomocą parted dowiemy się coś na temat geometri dysku z obrazu – zajmiemy sie skopiowaniem trzeciej partycji:
~# parted /tmp/sdX.raw GNU Parted 3.1 Using /tmp/sdX.raw Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) unit s (parted) print Disk /tmp/sdX.raw: 500107862016B Sector size (logical/physical): 512B/4096B Partition Table: msdos Disk Flags: Number Start End Size File system Name Flags 1 2048s 391167s 389120s fat32 primary boot 2 391168s 8390655s 7999488s linux-swap(v1) primary 3 8390656s 976773119s 968382464s xfs primary
Interesują nas trzy informacje:
– Sector size logical – 512B
– Start – 8390656s
– Size – 968382464s
Czyli partycja zaczyna sie w sektorze nr 8390656, ma rozmiar 968382464 sektorów, a każdy sektor ma 512 bajtów. Z uzyciem dd skopiujemy ta partycje na fizyczna, druga prartycje na dysku sdc. Dla wyjaśnienia parametr bs mówi ile bajtów ma jedna ‘porcja’ danych – ponieważ sektory logiczne w obrazie dysku mają 512 bajtow to uzycie porcji danych o tej samej wielkości w dd ułatwi nam wyliczenia. Parametr skip jak sama nazwa wskazuje mówi o tym ile ‘porcji’ danych pominąć – inaczej mowiąc gdzie zaczynają sie w /tmp/sdX dane, które chcemy skopiować. Parametr count mówi o tym ile ‘porcji’ danych mamy skopiować. Ponieważ bs ustalilismy na tą samą wartość co sektor logiczny w obrazie dysku (Sector size logical) to wszystko sprowadza się do Ctrl-C + Ctrl+V :
dd if=/tmp/sdX.raw of=/dev/sdc2 bs=512 skip=8390656 count=968382464
i to by było na tyle.