Linux USB 플래시 직접 쓰기/쓰기 캐시

Linux USB 플래시 직접 쓰기/쓰기 캐시

최근에 저는 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

아직 테스트하지는 않았지만 이것이 작동하는 방식이라고 생각합니다.

건배 리바노프

관련 정보