아치 리눅스 위키에서: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
전화하는 대신 변환 옵션을 사용할 수 있습니다 .
데이터 동기화
완료되기 전에 물리적으로 출력 파일 데이터 쓰기
귀하의 경우 명령은 다음과 같습니다.
tar -xzOf archlinux-2016-09-03-dual.iso | \
dd of=/dev/disk2 bs=4M status=progress conv=fdatasync
시스템 호출은 전송이 종료되기 전에 효과적으로 호출됩니다 conv=fdatasync
(소스에서 확인했습니다).dd
fdatasync()
dd
dd
이는 dd
명시적으로 지시하지 않는 한 캐시가 우회되거나 플러시되지 않음을 확인합니다.
답변2
sync(1) 매뉴얼 페이지에서: "동기화 - 캐시 쓰기를 영구 저장소에 동기화". 기본적으로 sync
모든 데이터가 캐시에서 스틱으로 기록되었는지 확인합니다.