보이지 않는 SD 카드 캐시에 어디서 액세스했나요?

보이지 않는 SD 카드 캐시에 어디서 액세스했나요?

USB 동글을 통해 연결된 SD 카드를 지우려고 합니다.

이것이 내가 한 일입니다:

# dd if=/dev/zero of=/dev/sdb bs=$((1024*4))
dd: error writing '/dev/sdb': No space left on device
1002267+0 records in
1002266+0 records out
4105281536 bytes (4.1 GB, 3.8 GiB) copied, 2.10549 s, 1.9 GB/s

내가 본 이상한 점은 이것이 SD HC I 카드이기 때문에 전송 속도가 결코 1.9GB/s에 도달하지 않는다는 것입니다. 카드는 16GB이며 dmesg.

좋습니다. 어떻게 작성되었는지 확인해 보겠습니다.

# head -c 4105281536 /dev/zero | sha1sum 
a1750724bfbf0ada57d986f16b26e789a6c61a1d  -
(reverse-i-search)`': ^C
# head -c 4105281536 /dev/sdb | sha1sum
a1750724bfbf0ada57d986f16b26e789a6c61a1d  -

괜찮아 보이는데요. 하지만 플러그를 뽑았다가 다시 연결하면 마술처럼 이전과 동일한 파일 시스템을 갖게 됩니다. 설치하고 파일을 변경하면 수정 사항이 sha1sum여전히 0으로 표시되더라도 수정 사항이 유지됩니다.

이 장치는 확실히 다음과 같습니다 /dev/sdb.

[ 9895.437518] scsi 4:0:0:0: Direct-Access     Mass     Storage Device        PQ: 0 ANSI: 0 CCS
[ 9895.439248] sd 4:0:0:0: [sdb] 30318592 512-byte logical blocks: (15.5 GB/14.5 GiB)
[ 9895.439398] sd 4:0:0:0: [sdb] Write Protect is off
[ 9895.439404] sd 4:0:0:0: [sdb] Mode Sense: 03 00 00 00
[ 9895.439557] sd 4:0:0:0: [sdb] No Caching mode page found
[ 9895.439564] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 9895.441922]  sdb: sdb1 sdb2
[ 9895.443517] sd 4:0:0:0: [sdb] Attached SCSI removable disk

여기서 무슨 일이 일어나고 있는 걸까요?

커널에서 실행합니다 4.20.3.

답변1

dd드라이브가 14.5GiB일 때는 3.8GiB만 복사한 것으로 나타났습니다 . 따라서 당신이 쓰고 있는 것은 아마도 SD 카드가 아닐 것입니다. SD 카드를 제거하고 확인하십시오 ls -lh /dev/sdb.

실수 /dev/dev/sdb. RAM 디스크이기 때문에 /dev2GBps로 쓸 수 있는 이유를 설명합니다.

dd명령을 완료 한 후에 sync는 만일을 대비해 기억해 두세요. 이는 커널이 가지고 있는 모든 캐시를 플러시하도록 지시합니다.

관련 정보