플래시 드라이브를 꺼내는 데 *매우* 오랜 시간이 걸립니다.

플래시 드라이브를 꺼내는 데 *매우* 오랜 시간이 걸립니다.

저는 Debian 8을 새로 설치하고 있는데 플래시 드라이브가 꺼내지기까지 터무니없는 시간(1~10..15분 범위)을 기다려야 하는 경우가 많습니다. 이 시간 동안 오류가 발생하여 드라이브와 관련된 어떤 것도 액세스할 수 없습니다.An operation is already pending.

플래시드라이브 포맷(FAT, ext4, NTFS로 시도해 봤습니다)으로는 별 내용이 없는 것 같은데, 파일을 넣기 시작하면 시작되는 것 같습니다. (무거운 것은 아니지만 ~500Mb).

이 문제의 원인은 무엇입니까? 배출 속도를 높이기 위해 할 수 있는 일이 있나요?

답변1

이것이 귀하의 질문에 대한 실제 설명/해결책인지는 모르겠지만 일반적으로 USB의 문제라고 생각합니다.

대용량 파일이나 많은 파일을 복사하는 경우 USB 장치는 "이 파일을 보내려고 합니다"라는 메시지를 호스트에 전달합니다. 그런 다음 장치는 모든 파일을 비동기적으로 전송하며 이를 수행하는 데 필요한 시간이 걸립니다. 즉, 장치는 cp /my/flash/drive/foo.txt /home/bar/foo.txt파일이 복사되고 있음을 운영 체제에 알리고 파일을 보냅니다.

실제로 모든 데이터가 전송되었는지 확인하는 유일한 방법은 sync플래시 드라이브의 파일을 복사/이동 또는 삭제하는 명령을 수행한 후 입력하는 것입니다. 그러면 sync 명령은 드라이브의 데이터 전송이 완료될 때까지 차단됩니다. 그 후에는 USB 플래시 드라이브를 마운트 해제하거나 꺼내는 것이 안전합니다.


[편집]: 확인이 게시물작업 진행 상황을 보려면 sync: 실행할 때 인쇄되는 숫자

watch grep -e Dirty: -e Writeback: /proc/meminfo

백그라운드 데이터 전송이 발생하면 0으로 감소해야 합니다. 완료되면 작업이 sync완료되고 플래시 드라이브가 꺼집니다.


USB 저장 장치를 꺼낼 때 발생하는 또 다른 일반적인 문제는 해당 플래시 드라이브의 파일/폴더에서 현재 작동하는 프로그램, 터미널 또는 이와 유사한 프로그램이 있는 경우 최소한 데비안에서 이를 허용하지 않는다는 것입니다. 따라서 터미널에서 해당 플래시 드라이브의 폴더로 디렉터리를 변경한 다음 다른 터미널을 사용하여 플래시 드라이브를 꺼내려고 하면 첫 번째 터미널의 플래시 드라이브가 아닌 다른 곳으로 디렉터리를 변경할 때까지 허용되지 않습니다.

답변2

이는 에 설명된 대로 아직 장치에 기록되지 않은 캐시된 쓰기가 누적되었기 때문일 수 있습니다."악성적인 USB 스틱 정지 문제".

해결 방법으로 다음을 수행할 수 있습니다.더티 메모리의 양을 제한하세요미해결 IO로 인해:

echo $((16*1024*1024)) | sudo tee /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) | sudo tee /proc/sys/vm/dirty_bytes

관련 정보