최근에 저는 USB2 플래시 드라이브를 사용하여 회사에 대량의 데이터를 전송하고 있습니다.
데이터를 플래시 드라이브에 복사하는 동안 데이터가 드라이브에 직접 기록되지 않은 것을 발견했습니다. 200MB/초(?)의 속도로 캐시에 씁니다. 그런 다음 나 umount
또는 sync
드라이브가 실제로 드라이브에 데이터를 쓰는 데 몇 시간이 걸립니다.
대신 Nautilus를 사용해 보았지만 cp
동작은 동일합니다. dd
일반 파일을 복사하는 옵션이 아닙니다.
USB 저장 장치에 쓸 때 Linux에서 캐싱 없이 직접 데이터를 쓰도록 하는 방법이 있습니까? 아니면 드라이브가 마운트 해제되는 동안 몇 시간을 기다릴 필요가 없도록 캐시를 줄일 수 있습니까?
sync
가장 짜증나는 점은 진행률 표시줄 복사가 완료된 다음 데이터를 쓸 수 있을 때까지 불특정 시간을 기다려야 한다는 것입니다 .
저는 Fedora 25 머신을 사용하고 있습니다.
[업데이트] 내 질문을 명확히하려고 노력했습니다.
[업데이트 2] 답변이 없는 유사한 질문을 찾았습니다.플래시 장치의 캐시 크기 줄이기
답변1
직접 할 수 있습니다 dd
. mk2fs.
-fs-of-your-choice를 사용하여 드라이브를 다시 포맷해야 할 때인 것 같습니다 .
man mkf2s
dd 경로는 간단합니다.
드라이브를 연결하기 전에 이 작업을 한 번 실행하십시오.
lsblk
다음에.
장치의 출력에 주의하십시오.
그런 다음 파일을 복사하려면 다음과 같은 새 장치를 만들 수 있습니다.
dd if=/dev/zero of=~/my-files.dd.img bs=1G mkfs.ext4 ~/my-files.dd.img losetup /dev/loop0 ~/my-files.dd.img
참고 컴퓨터를 다시 시작한 후 다시 설치하려면 rc.local 파일에 위 줄을 추가하세요.
vi /etc/rc.local
다음 명령을 사용하여 장치를 설치하십시오.
mkdir /mnt/amazing mount -o loop=/dev/loop0 ~/my-files.dd.img /mnt/mymountpoint
파일이 마운트되었는지 확인하려면 df 명령을 사용할 수 있습니다.
df -h | grep mymountpoint /dev/loop0 976M 1.3M 924M 1% /mnt/mymountpoint where `bs=` a value greater than the output of: `ls -lh ./your-file-here`
장치 제거를 완료한 후:
umount /mnt/mymountpoint losetup -d /dev/loop0
아직 테스트하지는 않았지만 이것이 작동하는 방식이라고 생각합니다.
건배 리바노프