GNU/Linux >> Znalost Linux >  >> Linux

Úplné kopírování Dd z Hdd na Hdd?

PŮVODNÍ OTÁZKA:

Pokud mám 2 stejné pevné disky s následujícími vlastnostmi:

  • SATA 6,0 Gb/s
  • 5 400 ot./min.
  • 3 TB

Jak dlouho by mělo trvat dokončení úplné kopie dd?

Zatím to běží 5 hodin a stále běží...

Používám Linux Ubuntu 12.04 64bit a příkaz, který používám, je:

dd if=/dev/sdb of=/dev/sdc

AKTUALIZACE:1

Nyní vidím pokrok a bylo to více než 6 hodin pro kopii 430 GB. HDD je 3TB…

Neexistuje rychlejší způsob, jak to udělat?

AKTUALIZACE:2

Zdá se to mnohem lepší než předtím (Díky Groxxdovi za návrhy):

sudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K

ETA je asi 9 hodin pro 3 TB, zatímco předtím dosáhl 430 GB po 6 hodinách, takže odhaduji, že by to s předchozím příkazem trvalo asi 36 hodin.

Přijatá odpověď:

dd bylo užitečné za starých časů, kdy lidé používali pásky (když na velikosti bloků záleželo) a kdy jednodušší nástroje jako cat nemusí být binárně bezpečné.

V současné době dd if=/dev/sdb of=/dev/sdc je prostě komplikovaný, k chybám náchylný, pomalý způsob zápisu cat /dev/sdb >/dev/sdc . Zatímco dd stále užitečné pro některé relativně vzácné úkoly, je mnohem méně užitečné, než kolik tutoriálů zmiňuje, že by vám to dalo věřit. V dd není žádná magie , celé kouzlo je v /dev/sdb .

Váš nový příkaz sudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K je opět zbytečně pomalá a složitá. Data jsou načtena 128 kB najednou (což je lepší než dd výchozí 512B, ale ne tak dobré jako ještě větší hodnoty). Poté prochází dvěma kanály, než je zapsán.

Použijte jednodušší a rychlejší cat příkaz. (V některých benchmarcích, které jsem provedl před několika lety pod Linuxem, cat byl rychlejší než cp pro kopii mezi různými disky a cp byl rychlejší než dd s libovolnou velikostí bloku; dd s velkou velikostí bloku bylo při kopírování na stejný disk o něco rychlejší.)

cat /dev/sdb >/dev/sdc

Pokud chcete tento příkaz spustit v sudo , musíte provést přesměrování jako root:

sudo sh -c 'cat /dev/sdb >/dev/sdc'

Pokud chcete zprávu o průběhu, protože používáte Linux, můžete ji snadno získat, když zaznamenáte PID cat proces (řekněme 1234) a podíváme se na pozici jeho vstupního (nebo výstupního) deskriptoru souboru.

# cat /proc/1234/fdinfo/0
pos:    64155648 
flags:  0100000

Pokud chcete zprávu o průběhu a vaše unixová varianta neposkytuje snadný způsob, jak se dostat na pozice deskriptoru souboru, můžete si nainstalovat a použít pv místo cat .


Linux
  1. Jak zkopírovat nastavení z jednoho počítače do druhého?

  2. Jak zkopírovat soubory z Wine na plochu?

  3. Jak zkopírovat tabulku z jedné databáze mysql do jiné databáze mysql

  1. Jak kopírovat text z méně

  2. Stav VMware se zvětšuje zevnitř hosta

  3. Jak mohu migrovat instalaci Linuxu z HDD na SSD?

  1. Spusťte webové prohlížeče v režimu Kiosk (celá obrazovka) z CLI

  2. Kopírovat posledních N řádků z jednoho souboru do druhého?

  3. Získat úplnou cestu ze skriptu Bash?