나는 Linux 배포판을 사용하기 시작한 이래로 이 문제에 직면해 왔습니다. cp
하나 이상의 대용량 콘텐츠(예: 대용량 텍스트 파일, tar.gz 아카이브, ISO 이미지 파일 및 동영상)를 그래픽으로 복사/이동하거나 In memory(메모리)를 사용하는 free -m
).
잠시 후 파일 관리자(예:돌고래또는PCManFM) 또는 cp
복사가 완료되었음을 표시하지만 복사할 때까지 데이터는 실제로 디스크에 기록되지 않습니다.sync
나는 이것이 하드웨어 문제라고 생각하지 않습니다.
다양한 브랜드의 내부 및 외부 하드 드라이브와 USB 플래시 드라이브를 확인했지만 모두 동일한 결과를 얻었습니다.
하나도 아니야HDD APM질문. 나는 항상 하드 드라이브 전원 관리를 비활성화합니다.
문제는 dd 및 cat과 동일합니다(예:
dd if=live.iso of=/dev/sdb
.나는 다른 Unix 계열 운영 체제와 교차 확인하지 않았습니다. 누구든지 같은 문제가 있거나 있었다면FreeBSD,오픈BSD알려주세요.
문제가 무엇입니까? 어떻게 해결할 수 있나요?
답변1
설계상 커널은 캐시 버퍼링 중에 파일 작업이 성공적으로 완료되었음을 사용자 공간 유틸리티에 알립니다.
쓰기 캐싱을 비활성화하는 옵션을 사용하려면 /etc/hdparm.conf를 편집해 보십시오 write_cache = off
. 그러나 이렇게 하면 성능이 저하되므로 sync
쓰기 버퍼가 디스크로 플러시되도록 하려는 경우 일반적으로 선호됩니다.
답변2
내가 언급했듯이(명백한 성능상의 이유로) 커널은 다음을 사용하고 있습니다.페이지 캐시. 따라서 이것은 문제가 아닌 기능입니다. 바라보다http://linuxatemyram.com/더 알아보기.
사용할 수 있는(권장하지는 않음) 몇 가지 옵션 mount
(페이지 캐시 사용 비활성화 또는 줄이기)이 있으며, umount
장치(예: USB 키)를 분리하거나 제거하기 전에 이 옵션이 필요합니다. 그런 다음 커널은 언로드하기 전에 모든 데이터를 플러시합니다.
당신은 또한 하나를 만들 수 있습니다 sync
.