No Wiki do Arch Linux: https://wiki.archlinux.org/index.php/USB_flash_installation_media
# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync
[...] Do não perder sincronização para completar antes de puxar o drive USB.
Eu gostaria de saber
- O que isso faz?
- Que consequências existem se deixadas de fora?
Notas
dd
comando usado com opcional status=progress
:
tar -xzOf archlinux-2016-09-03-dual.iso | dd of=/dev/disk2 bs=4M status=progress && sync
Ou usando pv
para progredir
tar -xzOf archlinux-2016-09-03-dual.iso | pv | dd of=/dev/disk2 bs=4M && sync
fonte
dd
não ignora as caches de disco do kernel quando se escreve para um dispositivo . Ao gravar em um arquivo (sobre a camada do sistema de arquivos do kernel), as coisas são armazenadas em cache. No entanto, estou preocupado com a gravação em dispositivos. Forneça uma fonte para essa declaração, se puder, porque esse é o ponto principal desta questão. Se verdadeiro, forneceria um motivo válido para a execuçãosync
após uma operação nodd
dispositivo .oflag=sync
, o progresso gera a velocidade real de transferência, e não a armazenada em cache (indo 10MB / s em vez de um segundo 100MB / se 10 segundos de estol).Na página de manual do sync (1): "sync - Sincronize gravações em cache no armazenamento persistente". Basicamente,
sync
garante que todos os seus dados sejam gravados no stick do cache.fonte