Linux USB 드라이브 쓰기 캐시

Linux USB 드라이브 쓰기 캐시

Linux 커널이 외부 저장소 및 외부 저장소 캐싱을 처리하는 방식을 변경할 수 있는 방법이 있습니까? 무언가를 복사할 때마다 사용자 공간에서 복사 프로세스가 매우 빠른 것 같습니다. 파일을 복사할 때 이런 동작을 여러 번 보았지만 dd데이터를 드라이브에 직접 복사할 때도 이런 현상이 발생한다는 사실을 방금 확인했습니다. 따라서 여기에는 아무것도 설치되어 있지 않습니다!

.iso 이미지를 복사합니다.

$ sudo dd if=/mnt/mountpoint/Fedora-Live-Workstation-x86_64-23-10.iso of=/dev/sdc
2869248+0 Datensätze ein
2869248+0 Datensätze aus
1469054976 Bytes (1,5 GB) kopiert, 13,8922 s, 106 MB/s
$ sync

첫 번째 명령은 13초가 걸리지만 두 번째 동기화 단계는 약 90초가 걸립니다.

캐시에 너무 많은 데이터(1.3GB 이상)가 보관되는 이유는 무엇입니까? 이 동작을 피할 수 있습니까?

편집하다:

이것이 귀하와 관련이 있는 경우. 저는 USB 2.0 USB 드라이버인 Ubuntu 15.10 4.2.0-34-generic 표준 커널을 사용하고 있습니다.

답변1

sudo dd bs=10M oflag=direct conv=fsync if=yourfile of=/dev/sdc

oflag=direct운영 체제 캐시를 우회하고 conv=fsync종료하기 전에 모든 내용이 기록되었는지 확인하세요.

데이터가 디스크에 직접 기록되기 때문에 기본 동작인 바이트 단위로 쓰는 데 시간을 낭비하지 않으려면 한 번에 많은 양의 데이터를 써야 합니다. 를 사용하여 이 매개변수를 제어할 수 있습니다 bs=yoursize.

dd 버전이 충분히 새로운 경우 추가하여 status=progress멋진 진행률 표시줄을 얻을 수도 있습니다.

관련 정보