Używam dd
tego polecenia na dwóch identycznych dyskach:
dd if=/dev/sda of=/dev/sdb bs=4096
Oba dyski twarde mają dokładnie ten sam numer modelu i oba mają 1 TB przestrzeni dyskowej. /dev/sda
używa rozmiaru bloku 4096. /dev/sda
jest dyskiem lokalnym i /dev/sdb
jest zdalnym caddy. Mogę być w stanie użyć następujących protokołów:
- USB2.0 HighSpeed (obecnie plan)
- Klon Gigabit Over-The-Network (Naprawdę nie chcę nawet tego próbować)
- USB3.0 (Jeśli znajdę mój drugi dysk)
- eSATA (jeśli znajdę / kupię kabel)
- SATA (jeśli znajdę / kupię kabel, muszę pokochać napędy CD z laptopami)
Czy istnieje sposób na uruchomienie tej kopii dysku, która zajmuje mniej niż 96 godzin? Jestem otwarty na używanie narzędzi innych niż dd
.
Muszę sklonować następujące partycje (w tym UUID)
- Partycja EFI Fat32 (*)
- Partycja Windows NTFS (*)
- Partycja HFS + OSX
- Partycja EXT4 Ubuntu (*)
- Zamień partycję (*)
*
Obsługiwane przez Clonezilla
Próbowałem Clonezilla (i było O DUŻO szybciej), ale nie obsługuje inteligentnego kopiowania HFS +, którego potrzebuję. Może najnowsza wersja to obsługuje?
Kiedy zrobiłem mój pierwszy klon, zrobiłem wszystkie partycje oprócz HFS + i poszło bardzo szybko. (Łącznie nie więcej niż 3 godziny)
źródło
dd
kopiuje wszystko , w tym wolne miejsce. Wady stają się bardzo widoczne, gdy masz duże dyski, które nie są całkowicie zapełnione.Odpowiedzi:
Z mojego doświadczenia nie sądzę, że w linii poleceń jest coś szybszego
dd
. Dostosowaniebs
parametru może zwiększyć prędkość, na przykład mam 2 dyski twarde, o których wiem, że mam szybkość odczytu / zapisu większą niż 100 MB / s, więc robię to:Jest też
pv
(Najpierw musi zostać zainstalowany), który sprawdza najszybszą prędkość na obu dyskach, a następnie kontynuuje klonowanie. Należy to oczywiście zrobić z poziomu roota:Z PV mam 156 MB / s
Zaletą
pv
oprócz prędkości jest to, że pokazuje postęp, aktualną prędkość, czas od rozpoczęcia i ETA. Jeśli chodzi o HFS +, nie wiedziałbym, próbuję tylko pomóc w części „szybkości”. Dziękipv
bardzo zoptymalizowanemubs
parametrowi można wykonać dysk 4 TB w mniej niż 7 godzin (6 godzin 50 minut przy aktualnej prędkości 150 MB / s).Zrobiłem kilka testów z używanymi typami połączeń i innymi, które miałem dostępne. Korzystałem z Asus Z87 Pro i Intel DZ68DP. Takie były moje wyniki, ale najpierw musimy wiedzieć, że teoretyczne prędkości dla wielu prędkości transferu (prędkości surowe) są właśnie teorią . Przeprowadzenie prawdziwych testów wykazało, że stanowią one od 40% do 80% tej surowej prędkości. Te testy mogą się zmieniać w zależności od używanego urządzenia, typu połączenia, płyty głównej, rodzaju kabla połączeniowego, typu systemu plików i innych. Mając to na uwadze, właśnie to otrzymałem (przetestowałem tylko prędkość zapisu do urządzenia, odczyt jest zwykle wyższy):
źródło
bs
parametru może byćdd
tak szybkie, jakcat
. Równie dobrze możesz użyćcat
.pv
sam w sobie działa bardzo dobrze.dd if=/dev/sda1 | pv | dd of=/dev/sdb1
pv
międzydd
s. Nigdy nie wiedziałem, że można go używać samodzielnie!Aby skopiować partycję hurtowo, użyj
cat
zamiastdd
. Jakiś czas temu uruchomiłem testy porównawcze , kopiując duży plik zamiast partycji między dwoma dyskami (na tym samym dysku względne czasy są różne):Wniosek z tego testu porównawczego jest taki, że wybór rozmiaru bloku dla
dd
spraw (ale nie tak bardzo) icat
automatycznie znajduje najlepszy sposób na szybką kopię:dd
może tylko spowolnić. Przy małym rozmiarze blokudd
marnuje czas na utratę drobnych odczytów i zapisów. Przy dużym rozmiarze bloku jeden dysk pozostaje bezczynny, podczas gdy drugi czyta lub pisze. Optymalną szybkość osiąga się, gdy jeden dysk odczytuje, a drugi zapisuje.Aby skopiować partycję, kopiowanie plików może być szybsze
cp -a
. Zależy to od liczby plików i ilości wolnego miejsca w systemie plików. Kopiowanie plików ma narzut, który jest mniej więcej proporcjonalny do liczby plików, ale z drugiej strony kopiowanie wolnego miejsca marnuje czas.Maksymalna szybkość transmisji danych dla USB2 wynosi nieco poniżej 50 MB / s, co przekłada się na 6-7 godzin transferu 1 TB. Zakłada się, że dysk twardy jest wystarczająco szybki, aby nasycić magistralę USB; Myślę, że szybsze dyski o prędkości 7200 obr / min mogą to zrobić, ale 5900 obr / min może nie być tak szybkie (może są to zapisy liniowe?).
Jeśli którykolwiek dysk jest używany równolegle, może to znacznie spowolnić kopię, ponieważ głowice dysków będą musiały się poruszać.
źródło
cat
być używany dodd if=ubuntu.iso of=/dev/usb
?dd
Szybkość robienia tego na USB2 lub USB3 jest frustrująco wolna.cat ubuntu.iso >/dev/usb
jest dokładnie równoważny. Nie ma w tym magiidd
, to tylko narzędzie do kopiowania danych wejściowych na dane wyjściowe.sudo cat linuxmint-17.3-cinnamon-64bit.iso >/dev/disk1
oddał "-bash: / dev / Dysk 1: Permission denied"Problemem jest twój typ połączenia i rozmiar bloku. Aby uzyskać najszybsze wyniki, rozmiar bloku powinien wynosić połowę najniższej prędkości zapisu, jaką zwykle otrzymujesz. Zapewni to bezpieczny margines, ale nadal pozwoli na dużą liczbę; oczywiście musisz mieć wystarczającą ilość pamięci RAM, aby pomieścić również dane.
USB 2.0 to 12 megabitów na sekundę (Mbps), USB 2.0 High Speed to 480 Mbps. To oczywiście czysta prędkość; z 8 bitami w bajcie i narzutem na ramkę, użyteczna prędkość w MB / s jest zwykle po przecinku. Na przykład 480 raw, staje się użytecznym 48 MB. Pamiętaj, że jest to matematyka najlepsza, w prawdziwym świecie będzie nieco niższa. W przypadku szybkich połączeń USB 2.0 należy spodziewać się prędkości zapisu około 30-35 MB, pod warunkiem, że rzeczywiste urządzenie pamięci masowej może zrównać lub przekroczyć prędkości połączenia.
źródło
Zgadzam się, że surowa prędkość dobrze dostrojonego polecenia
dd
(„pv”) lub „cat” jest trudna do pokonania, ale jeśli występuje problem z kopiowaniem (zły sektor, awaria zasilania, błąd użytkownika itp.), Musisz zacząć koniec.Chciałbym zasugerować ddrescue - narzędzie FOSS, które ma całą prędkość dd, ale obejmie błędy dysku i wznowi później, jeśli wystąpi awaria.
źródło
Przenoszę Windows 7 z HDD na SSD i znalazłem to i kilka innych odpowiedzi ... Coś, czego się nauczyłem, co może pomóc innym. W moim przypadku dysk źródłowy jest większy, w przeciwnym razie pracowałbym na poziomie urządzenia / dev / sda -> / dev / sdb.
Win7 i jego 3 partycje ... Użyłem Xbuntu 14.04 live cd na usb. Wyjęto płytę DVD z wygranym komputerem i umieściło dysk SSD na swoim miejscu. Zainstalowałem partclone i wypróbowałem to:
partclone.ntfs -b -N -s /dev/sda3 -o /dev/sdb3
Partclone rzygnął na NTFS wymagającym uruchomienia programu chkdisk w systemie Windows, więc szybka poprawka uszczęśliwiła partclone:
Wszystkie polecenia działają jako root. Interfejs ncurses firmy Partclone (opcja -N) powiedział, że transfer wynosił 7 GB / min, a skończył na 5 GB / min, co odpowiada 83 MB / s. Największą zaletą jest to, że partclone nie kopiuje nieużywanego miejsca, dzięki czemu klon jest niezwykle szybki.
Dodatkowe potencjalne gotchy:
jeśli dysk, na który przenosisz, był wcześniej używany, może zawierać resztki GPT. Instalacje fabryczne systemu Windows 7 to zazwyczaj tabele partycji msdos / mbr. Musisz usunąć fragmenty GPT z dysku docelowego. Ta kontrola jakości systemów Unix i Linux pomogła mi w tym. Musisz użyć
gdisk
na urządzeniu, użyj x, a następnie z i tak, aby zapchać dane GPT i upewnić się, że UTRZYMASZ MBR.I nie zapomnij, jeśli nie wykonasz dd na poziomie urządzenia, musisz skopiować MBR, używając
dd if=/dev/sdb of=/dev/sda bs=446 count=1
sdb jako źródła lub starego dysku, a sda jako miejsca docelowego lub nowego dysku ( źródła )
źródło
Ostatnio tworzyłem obraz partycji 100 GB (HDD) i zapisałem go na nowym dysku SSD.
Oto wskazówka, która może radykalnie przyspieszyć proces :)
Podziel plik na mniejsze części (im większy plik, tym wolniej działa)
Podczas tego procesu możesz sprawdzić prędkość za pomocą (w osobnym terminalu)
Następnie, gdy masz katalog pełen plików wyników (maindisk.img000, maindisk.img001 itd.), Użyj
„wypalić” obraz na nowej partycji SSD (partycja musi być tego samego rozmiaru co stara)
Dla mnie zadziałało to szybciej niż zwykle (bez podziału). Średnia prędkość tworzenia obrazu wynosiła ~ 13 MB / s. Kiedy używam „normalnego” sposobu, zaczyna się on od ~ 15 MB / s, a następnie zmniejsza się do 1 MB / s.
źródło
conv=sync
Jest również szkodliwy dla wydajności i raczej bezużyteczny w tym przypadku użycia.Dla każdego, kto znajdzie ten wątek, o wiele łatwiej i szybciej jest po prostu użyć narzędzia zaprojektowanego do odzyskiwania danych, takiego jak ddrescue . Najpierw próbuje uratować dobre części w przypadku błędów odczytu. Możesz także przerwać ratunek w dowolnym momencie i wznowić go później w tym samym momencie.
Uruchom to dwukrotnie:
Pierwsza runda, skopiuj każdy blok bez błędu odczytu i zaloguj błędy do rescue.log.
W drugiej rundzie skopiuj tylko złe bloki i spróbuj 3 razy przeczytać źródło, zanim się poddasz.
Teraz możesz zamontować nowy dysk i sprawdzić, czy system plików nie jest uszkodzony.
Więcej informacji:
https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html
źródło
Zalecam, aby plik wejściowy / do odczytu / dysk znajdował się na SATA, aby zwiększyć prędkość odczytu. USB 2.0 High Speed jest również dobra, ponieważ otrzymuję średnie prędkości 33816 kb / s z ddrescue w porównaniu do tego, kiedy ustawiono USB 2.0 na SATA przy 2014 kb / s
źródło
Użyj innego rozmiaru bloku. Jest to ilość danych
dd
odczytywanych jednocześnie. Jeśli czytanie za mało, większa część czasu jest poświęcana logice programu, a jeśli jest za dużo, dużo czasu zajmuje przenoszenie dużych danych.Aby zmierzyć prędkość przy różnych rozmiarach bloków, użyj następującego
bash
skryptu:$dev
na urządzeniucbtotal
aby wynosić co najmniej 5-krotność oczekiwanej prędkości odczytuWynik może być tendencyjny do większego rozmiaru ze względu na odczyt dysku przed nim - dlatego ważne jest, aby ustawić
cbtotal
wystarczająco duży.źródło