노트

노트

아치 리눅스 위키에서:https://wiki.archlinux.org/index.php/USB_flash_installation_media

# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync

[...] 하다~ 아니다USB 드라이브를 당기기 전에 동기화가 완료되지 않았습니다.

나는 알고 싶다

  • 그것은 무엇을 합니까?
  • 생략하면 어떤 결과가 발생하나요?

노트

dd선택사항과 함께 사용되는 명령 status=progress:

tar -xzOf archlinux-2016-09-03-dual.iso | dd of=/dev/disk2 bs=4M status=progress && sync

아니면 pv진행을 위해 사용

tar -xzOf archlinux-2016-09-03-dual.iso | pv | dd of=/dev/disk2 bs=4M && sync

답변1

dd장치에 쓸 때 커널 디스크 캐시를 우회하지 않으므로 완료 USB시 데이터의 일부가 아직 스틱 에 기록되지 않을 수 있습니다 dd. USB그 순간 스틱의 플러그를 뽑으면 USB스틱의 내용이 일관되지 않게 됩니다. 따라서 시스템이 이 USB스틱에서 부팅하지 못할 수도 있습니다.

Sync아직 캐시에 남아 있는 데이터를 장치로 플러시합니다.

호출하는 대신 의 변환 옵션을 sync사용할 수 있습니다 .fdatasync dd

fdatasync

완료하기 전에 물리적으로 출력 파일 데이터 쓰기

귀하의 경우 명령은 다음과 같습니다.

tar -xzOf archlinux-2016-09-03-dual.iso | \
dd of=/dev/disk2 bs=4M status=progress conv=fdatasync

make conv=fdatasync는 종료 직전에 전송이 끝날 때 dd효과적으로 시스템 호출을 호출합니다 (나는 이것을 의 소스에서 확인했습니다).fdatasync()dddd

이는 dd명시적으로 지시하지 않는 한 캐시를 우회하거나 플러시하지 않음을 확인합니다.

답변2

sync(1) 매뉴얼 페이지에서: "sync - 캐시된 쓰기를 영구 저장소에 동기화". 기본적으로 sync모든 데이터가 캐시에서 스틱에 기록되었는지 확인합니다.

관련 정보