Üdv!
Ritana fórumtárs hozzászólása alapján kipróbáltam a javasolt módosított parancsokat a dd nevű programmal. Mindig ezzel szoktam Linux alatt telepítőket kiírni, mert gyors, pontos és egyszerű. A teszteszköz egyrészről a laptopomban lévő Hitachi HTS54505 HDD, másrészről egy SanDisk Cruzer Extreme USB3.0 pendrive (jelenleg USB2.0 porton van üzemeltetve), a rendszer pedig 64 bites LinuxMint 13 Cinnamon. (A következő példák NEM általános parancsok, az if= és of= részekhez mindenki a saját elérési útjait írja az iso-t és a pendrive/memóriakártya eszközt illetően. A parancsokat rendszergazdaként kell futtatni.)
Akkor lássuk az eredményeket:
Egy process:
dd if=iso/elementaryos-stable-amd64.20130810.iso of=/dev/sdb bs=4M
1. mérés:
727711744 bájt (728 MB) másolva, 16,3434 mp, 44,5 MB/s
2. mérés:
727711744 bájt (728 MB) másolva, 15,8213 mp, 46,0 MB/s
Két process:
dd if=iso/elementaryos-stable-amd64.20130810.iso bs=4M | dd of=/dev/sdb bs=4M
1. mérés:
Beolvasás: 727711744 bájt (728 MB) másolva, 14,6776 mp, 49,6 MB/s
Kiírás: 727711744 bájt (728 MB) másolva, 14,7156 mp, 49,5 MB/s
2. mérés:
Beolvasás: 727711744 bájt (728 MB) másolva, 14,6496 mp, 49,7 MB/s
Kiírás: 727711744 bájt (728 MB) másolva, 14,6887 mp, 49,5 MB/s
Egy process dsync flaggel:
dd if=iso/elementaryos-stable-amd64.20130810.iso bs=4M iflag=dsync of=/dev/sdb bs=4M oflag=dsync
1. mérés:
727711744 bájt (728 MB) másolva, 23,6895 mp, 30,7 MB/s
2. mérés:
727711744 bájt (728 MB) másolva, 23,5044 mp, 31,0 MB/s
Két process dsync flaggel:
dd if=iso/elementaryos-stable-amd64.20130810.iso bs=4M iflag=dsync | dd of=/dev/sdb bs=4M oflag=dsync
1. mérés:
Beolvasás: 727711744 bájt (728 MB) másolva, 24,3891 mp, 29,8 MB/s
Kiírás: 727711744 bájt (728 MB) másolva, 24,456 mp, 29,8 MB/s
2. mérés:
Beolvasás: 727711744 bájt (728 MB) másolva, 24,3193 mp, 29,9 MB/s
Kiírás: 727711744 bájt (728 MB) másolva, 24,3818 mp, 29,8 MB/s
Mint látható a szinkronizálás nélküli lemezkép írásoknál a két process-es változat kicsit gyorsabb az egy process-esnél.
A szinkronizált verzióban viszont az egy process-es nagyon kis mértékben gyorsabb.
Konklúzió: nem igazán van jelentősége (az én esetemben), hogy egy vagy két folyamattal írom ki a lemezképet.
Az egészben a számomra ugyan nem meglepő, de jobban kitűnő dolog az, hogy az egy vs két process helyett a szinkronizált vs nem szinkronizált kiírás az eltérőbb. Míg a szinkronizálás nélküli kiírásnál csalókán gyorsabbnak tűnik a folyamat (mivel a buffer teljes kiírása előtt visszatér már a dd), addig a szinkronizált kiírásnál csak akkor tér vissza a dd ha valóban minden adat kiírodott a pendrive-ra. Ezért kell vigyázni a külső adathordozók kihúzásával eltávolítás megerősítése nélkül, mert ilyenkor az adat egy része még nincs az eszközön, csak a bufferben. Ez elkerülhető, ha az egyszerű dd-s kiírásnál írunk egy
&& sync
részletet még a parancsunk után. Ebben az esetben csak akkor fog visszatérni a dd után a prompt, ha már az adat valóban a külső eszközön van (ugyan ezt a szinkronizálsát végzi el a "Leválasztás/Eltávolítás" lehetőség is grafikus felületen).
Ha valaki utána írja a sync parancsot még a dsync nélküli dd-s parancsnak, akkor arra is rájön, hogy ugyan annyi idő múlva kapja vissza a prompt-ot, mintha a dsync flag-et használta volna.
A bejegyzés egy sebességtesznek indult, egy vs két folyamat összehasonlítását illetően, de végül inkább valamiféle plusz útmutató lett azok számára, akik mindig küzdenek mindenféle Lemezképíró meg hasonló grafikus programokkal (UNetBootin és társai), hogy telepítő pendrive-ot vagy sd kártyát hozzanak létre.