이 글을 여기에 게시해야 할지 잘 모르겠습니다.안드로이드 SE왜냐하면 이것이 안드로이드 운영체제와 직접적인 관련이 없다고 생각하기 때문입니다. 내 시스템에서는 다음 옵션을 사용하여 HTC 장치를 수동으로 mount
설정 했습니다 .umount
/etc/fstab
UUID=3465-3762 /mnt/htc auto gid=100,umask=002,noauto,user,rw,exec 0 0
이 방법은 SD 카드에 있는 소량의 데이터를 수정할 때 잘 작동하지만 다른 장치에서 FLAC으로 인코딩된 음악 앨범 몇 개를 복사할 때마다 SD 카드를 마운트 해제하는 데 시간이 오래 걸리는 것 같습니다.
$ time umount /mnt/htc/
real 1m17.195s
user 0m0.000s
sys 0m0.237s
이 시간은 수정된 데이터의 양에 비례합니까? 어쨌든 제거하는 데 이렇게 오래 걸릴까요?
답변1
이는 장치에 대한 쓰기 버퍼링을 포함하여 많은 버퍼링을 수행하는 커널과 관련이 있습니다.
발행하는 경우:
cp large_file /mnt/htc/
cp
데이터가 완료되자마자 반환되지만 write
(상당히 "느린" 장치/연결의 경우) 데이터가 실제로 기록되기 훨씬 전에 반환됩니다. ( cp
사용 중인 도구가 fsync
실제 데이터가 드라이브에 도착할 때까지 기다리기 위해 자체적으로 호출하거나 유사한 호출을 하지 않는 한, 일부 그래픽 파일 관리자는 이 작업을 수행하고 일부 도구에는 이를 수행할지 여부를 제어하는 데 사용할 수 있는 옵션이 있습니다.)
unmount
데이터가 손실되지 않도록 장치를 "분리"하기 전에 쓰기 버퍼를 플러시하십시오. 커널이 많은 양의 데이터를 버퍼링하는 경우 시간이 많이 걸릴 수 있으며 실제 쓰기 속도도 느려집니다.
복사 및 작업이 수행되는 동안 터미널에서 다음과 같은 작업을 iostat 2
(부분적으로) 실행해 보면 해당 지점이 반환될 때까지 쓰기 I/O가 표시되어야 합니다.sysstat
unmount
unmount