dd sync

Hibrid .iso fájlokat dd-vel tolok ki pendrive-ra így:


time (pv file.iso | dd bs=1M of=/dev/sdb 2>/dev/null; echo "sync..."; sync)

Se így, se "dd if=file.iso | pv -s "$SIZE" | dd of=/dev/sdX" megoldással nem jól mutatja a folyamat jelzőt, mert nem szinkronban írja ki az adatokat a pendrive-ra, hanem késleltetett írással, ami nem is lenne baj, lévén nyomok neki egy sync parancsot a végén, csak ami megfigyelhető, hogy ezzel 124s a teljes másolás 5.5 MB/s sebességgel (itt a sebesség egy visszaosztott átlag).

Ha viszont beadom a dd-nek a sync kapcsolót (oflag=sync), akkor csak 84s az írás 7.7 MB/s sebesség mellett, és ráadásul a folyamat jelző is mindvégig a megfelelő sebességet mutatja, a pv parancs hátralévő ideje is pontos, az sync parancs sem szükséges a végén a szinkron írás miatt, valamint a pendrive-ot is egyből ki lehet húzni.


time (pv file.iso | dd bs=1M oflag=sync of=/dev/sdb 2>/dev/null)

Nyilván ez az idő különbség azért van, mert az első esetben ír valamit a pendrive-ra, de nem mindent, meg az iso olvasása is végig megy, és csak mindezek után íródik ki teljesen az adat a sync parancs hatására, ahelyett hogy a kettő együtt történne.

Hozzászólások

subs.

Amúgy köszi szépen a leírást, hasznos.

------------------------------------------
"Nincs ez el**szva, csak másra lesz jó!"

Ez a pv hasznos cucc, eddig egyszer hallottam csak rola... Most elesben is kiprobaltam, egesz jo.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

Már csak a hibrid .iso jelentését kell megfejteni.

Alternatív megoldás, tesztelni most nem tudom:

pv -petrs $(stat -c %s file.iso) file.iso | dd bs=1M oflag=sync of=/dev/sdX