dd

http://man7.org/linux/man-pages/man1/dd.1.html

Hibás merevlemez másolására a ddrescue alkalmasabb.

Nagy adat közvetlen írása

Ha forrás/cél egy block device, akkor érdemes kierőszakolni, hogy közvetlenül az eszközt írd/olvasd, hogy kevesebb közbülső rétegen menjen keresztül, ami nagy mennyiségű adatnál sokat gyorsít a folyamaton.

Ha a forrás és a cél is block device:

dd if=/dev/sdXXX of=/dev/sdYYY bs=4M iflag=direct oflag=direct status=progress

Ha szeretnénk a művelet végén egy implicit sync-et is hívni (pl. Ubuntu telepítő USB-re írásakor), akkor használjuk az conv=fdatasync-et is:

dd if=Downloads/ubuntu.iso of=/dev/sdXXX bs=4M iflag=fullblock oflag=direct conv=fdatasync status=progress

Állapot lékérdezése régebbi verziókkal

Régebbi dd-knél még nem volt status paraméter, de USR1 szignálra kiírta, hogy hol tart:

while true do kill -USR1 `ps -C dd -o pid=` date sleep 5 done

dd-zés tömörített fájlba

Egy szálon

dd if=/dev/sdX bs=4M iflag=direct status=progress | gzip -9 > test.gz

Több szálú gzip alternatívával (pl: 7 szálon)

dd if=/dev/sdX bs=4M iflag=direct status=progress | pigz -9 -p 7 > test.gz

dd-zés tömörített fájlból

Több szálú gzip alternatívával (pl: 7 szálon)

unpigz -c test.gz | dd of=/dev/sdX bs=4M iflag=fullblock oflag=direct status=progress

gzip helyett zip-ből

unzip -p test.zip inner_file.img | dd of=/dev/sdX bs=4M iflag=fullblock oflag=direct status=progress

dd-zés hálózaton keresztül

Közvetlen kapcsolaton

Fogadó (cél) oldalon:

nc -l 19000 | dd bs=16M of=/dev/sdb oflag=direct status=progress

Küldő (forrás) oldalon:

dd if=/dev/sda bs=16M iflag=direct status=progress | nc 192.168.0.2 19000

Lassabb hálózati közegen

https://www.ndchost.com/wiki/server-administration/netcat-over-ssh

Fogadó (cél) oldalon:

nc -l 19000 | bzip2 -d | dd bs=16M of=/dev/sdb oflag=direct status=progress

Küldő (forrás) oldalon:

dd if=/dev/sda bs=16M iflag=direct status=progress | bzip2 -c | nc 192.168.0.2 19000

MBR és egyéb meta adat törlése

local size=$(blockdev --getsz /dev/sda) dd if=/dev/zero of=/dev/sda bs=512 count=200 dd if=/dev/zero of=/dev/sda bs=512 count=200 seek=$[$size - 200]