dd의 direct 옵션과 fsync 옵션의 차이점은 무엇입니까?

dd의 direct 옵션과 fsync 옵션의 차이점은 무엇입니까?

이미지를 USB 썸드라이브에 복사하고 싶습니다. "실제" 속도를 얻고 싶고 이미지를 복사한 후 장치가 동기화될 때까지 오랜 시간을 기다리고 싶지 않기 때문에 이를 위해 어떤 옵션을 사용해야 하는지 알고 싶습니다.

답변1

를 통해 읽기소스 코드옵션 에 대해서도 물어봐야 함을 보여줍니다 nocache. 이 direct옵션을 사용하면 원하는 것을 얻을 수 있지만 어떤 버전을 dd사용하고 있는지에 따라 달라집니다. Ubuntu 11.04 시스템에서 대용량 복사를 수행하면 데이터에 대해 동기화된 I/O를 사용하는 옵션을 사용하여 훨씬 느린(=현실에 더 가까운?) 시간이 나타났습니다 dsync. 이는 최신 디스크 컨트롤러가 제공하는 집계 이점을 잃을 가능성이 높습니다. 무슨 일이 일어나고 있는지 "정확히" 알려면 실행 중인 특정 커널에 대한 소스 코드를 파헤쳐야 합니다. 하지만 그런 경우에도 드라이브에 있는 인터페이스 보드의 영향을 받습니다. 자체 버퍼링.

답변2

fsync 옵션은 복사가 끝나면 데이터를 플러시합니다. dsync 옵션은 모든 블록 후에 데이터를 플러시합니다. 직접 옵션은 파일 시스템 캐시를 데이터로 오염시키지 않고 dsync와 유사한 결과를 얻습니다. 이는 시스템의 나머지 부분을 캐싱하는 데 유용하며 일부 CPU 오버헤드를 절약합니다.

dsync 또는 direct는 더 낮은 처리량을 제공하지만 이는 1MB 이상의 큰 블록 크기를 사용하여 대부분 상쇄될 수 있습니다.

관련 정보