Průběh `dd` pomocí `pv`

Příkaz `dd` je jeden ze základních nástrojů a je snad v každé distribuci. Slouží ke kopírování dant z jednoho souboru do druhého a protože i zařízení jsou v podstatě soubory, může se použít k vytvoření jeho bitové kopie, nebo instalačního flashdisku. Při vytváření instalačního flashdisku se kopírují řádově jednotky GB a to už nějakou dobu zabere a protože program `dd` nemá žádnou možnost zobrazení průběhu, jde snadno využít program `pv` dostupný z repozitářů:

user@computer:$ #apt-get install pv

Pro zobrazení průběhu kopírování při vytváření instalačního flashdisku tak příkaz použijeme například takto:

user@computer:$ #dd if=vaseOblibenaDistribuce.iso | pv | dd of=/dev/sdc

Výsledkem je zobrazení rychlosti, uplynulého času, rychlosti přenosu a přeneseného objemu:

user@computer:$ 150kB 0:00:05 [ 3kB/s]   [<=>                  ]

Přesnější výsledek získáme využitím programu stat, pomocí kterého můžeme získat podrobné informace o souboru. Nás bude zajímat pouze velikost v bajtech, které získáme formátovacím parametrem:

user@computer:$ stat vaseOblibenaDistribuce.iso  -c %s

Nyní můžeme dát všehno do jednoho příkazu:

user@computer:$ #dd if=vaseOblibenaDistribuce.iso | pv -s `stat vaseOblibenaDistribuce.iso  -c %s`| dd of=/dev/sdc

V této podobě je to však trochu krkolomné. Je nutné 2x vepisovat název souboru, který se snažíme kopírovat. K tomu lze použít shellové skriptování a vstupní soubor a výstupní zařízení můžeme dát jako parametry.

Leave a Reply