Z Arch Linux Wiki:https://wiki.archlinux.org/index.php/USB_flash_installation_media
# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync[…] nedělejte zmeškanou synchronizaci pro dokončení před vytažením jednotky USB.
Rád bych to věděl
- Co to dělá?
- Jaké důsledky to má, pokud se vynechá?
Poznámky
dd příkaz používaný s volitelným status=progress :
tar -xzOf archlinux-2016-09-03-dual.iso | dd of=/dev/disk2 bs=4M status=progress && sync
Nebo pomocí pv pro pokrok
tar -xzOf archlinux-2016-09-03-dual.iso | pv | dd of=/dev/disk2 bs=4M && sync
Přijatá odpověď:
dd neobchází mezipaměť disku jádra, když zapisuje do zařízení, takže některá část dat nemusí být ještě zapsána na USB držte se dd dokončení. Pokud odpojíte USB v tu chvíli přilepte obsah na USB hůl by byla nekonzistentní. Váš systém tedy může dokonce selhat při bootování z tohoto USB hůl.
Sync vyprázdní všechna data stále v mezipaměti do zařízení.
Místo vyvolání sync můžete použít fdatasync dd možnost převodu:
fdatasync
fyzicky zapsat data výstupního souboru před dokončením
Ve vašem případě by příkaz byl:
tar -xzOf archlinux-2016-09-03-dual.iso |
dd of=/dev/disk2 bs=4M status=progress conv=fdatasync
conv=fdatasync dělá dd efektivně zavolat fdatasync() systémové volání na konci přenosu těsně před dd ukončí (zkontroloval jsem to pomocí dd zdroje).
To potvrzuje, že dd neobejde ani nevyprázdní mezipaměti, pokud k tomu nedostane výslovný pokyn.