Będę tworzył kopię zapasową dużego dysku (750 GB) na zewnętrznym dysku USB za pomocą dd.
Czy powinienem używać przekierowania czy potoków? Który jest bardziej wydajny? Czy jest różnica?
Jaki jest najlepszy rozmiar bloku? Problemem może być USB.
dd if=/dev/sda bs=1M | gzip -c > /mnt/sdb1/backups/disk.img.gz
gzip -dc /mnt/sdb1/backups/disk.img.gz | dd of=/dev/sda bs=1M
vs
dd if=/dev/sda bs=1M | gzip -c | dd of=/mnt/sdb1/backups/disk.img.gz
dd if=/mnt/sdb1/backups/disk.img.gz | gzip -dc | dd of=/dev/sda bs=1M
Dzięki.
dd
jest archaiczny (każde inne narzędzie na szczęście usuwabs=
icount=
, podobnieddrescue
), a w twoim przypadku jest również prawie bezcelowy. Po prostu podłącz go dogzip -c </dev/sda >disk.img.gz
&gzip -cd disk.img.gz >/dev/sda
.dd if=.../disk.img.gz |
część? O ile rozumiem,gzip -dc
(=zcat
) nie dba o to,stdin
gdy występuje argument pliku.dd
.ddrescue
wygląda bardziej solidnie niż gładkodd
. Czy użyłbyś GNUddrescue
lubdd_rescue
? Co można pobrać z dobrej płyty Live CD?Odpowiedzi:
Piping wymaga jeszcze jednego procesu i jeszcze jednej kopii użytkownika-lądu, więc bardziej efektywne powinno być użycie przekierowania.
Wydaje mi się jednak, że w dzisiejszym systemie buforowania sprzętu i oprogramowania nie powinno to robić żadnej różnicy. Być może możesz uzyskać lepsze wyniki przy użyciu
bs=4k
lubbs=64k
, ponieważ jest to limit potoku pod Linuksem. Zobacz to pytanie, aby uzyskać więcej informacji na temat różnych parametrów bs .źródło
W ogóle nie musisz używać
dd
ani orurowania.Kiedyś zrobiłem test porównawczy i znalazłem używanie
dd
wolniej niżcat
w przypadku prostej kopii między różnymi dyskami. Spodziewałbym się, żedd
w tym przypadku rura stworzy rozwiązanie wymagające jeszcze wolniej.źródło
pv
tych poleceń?gzip
przezpv | gzip
igzip -d
zagzip -d | gv
Prostsze:
źródło