노트

노트

아치 리눅스 위키에서: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

ddUSB장치에 쓸 때 커널 디스크 캐시가 우회되지 않으므로 완료 시 일부 데이터가 스틱에 기록되지 않았을 수 있습니다 dd. USB이 시점에서 스틱을 분리하면 스틱 USB의 내용이 일치하지 않게 됩니다. 따라서 시스템이 USB해당 스틱에서 부팅 되지 않을 수도 있습니다 .

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

syncfdatasync dd전화하는 대신 변환 옵션을 사용할 수 있습니다 .

데이터 동기화

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

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

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

시스템 호출은 전송이 종료되기 전에 효과적으로 호출됩니다 conv=fdatasync(소스에서 확인했습니다).ddfdatasync()dddd

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

답변2

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

관련 정보