SD 카드를 마운트 해제하면 파일 체크섬이 변경됩니다.

SD 카드를 마운트 해제하면 파일 체크섬이 변경됩니다.

Lubuntu에서 마운트한 SD 카드가 다음 위치에 있습니다./media/$USERNAME/COREELEC/

한 디렉터리에서 다른 디렉터리로 파일을 복사하고 이름을 바꿔야 합니다. 그런데 md5sum(또는 sha512sum) 이후에 확인해서 unmount다시 설치해 보면 얘기가 달라집니다.

  • SD 카드를 다시 설치한 후 체크섬이 다른 이유는 무엇입니까?
  • 다시 동일하게 만들 수 있는 방법이 있나요?

재현 방법(OS에 SD 카드가 설치되어 있다고 가정)

파일을 복사하고 md5sum원본 파일과 복사된 파일을 확인합니다.

$ # copy the file from the original directory to the desired directory
$ cp /media/$USERNAME/COREELEC/device_trees/gxm_q201_3g.dtb /media/$USERNAME/COREELEC/dtb.img
$ # checksum of the original file
$ md5sum /media/$USERNAME/COREELEC/device_trees/gxm_q201_3g.dtb 
fd97f3d36cbb53cbdd59b53603f45913  /media/$USERNAME/COREELEC/device_trees/gxm_q201_3g.dtb
$ # checksum of the file I copied
$ md5sum /media/$USERNAME/COREELEC/dtb.img 
fd97f3d36cbb53cbdd59b53603f45913  /media/$USERNAME/COREELEC/dtb.img

SD 카드를 마운트 해제

$ # check which drive to unmount
$ df -aTh | grep COREELEC
/dev/mmcblk0p1        vfat             512M  170M  343M  34% /media/$USERNAME/COREELEC
$ # unmount the SD card
$ umount /dev/mmcblk0p1

SD 카드를 수동으로 제거한 다음 수동으로 다시 삽입하고 운영 체제가 자동으로 설치될 때까지 기다립니다.

그런 다음 확인하십시오 md5sum(참조이제 체크섬이 다릅니다.):

$ # checksum of the copied file (NOW DIFFERENT!)
$ md5sum /media/$USERNAME/COREELEC/dtb.img 
c8e06c372926719c0a0dac2d5b0f6ab5  /media/$USERNAME/COREELEC/dtb.img
$ # checksum of the original file (STILL THE SAME!)
$ md5sum /media/$USERNAME/COREELEC/device_trees/gxm_q201_3g.dtb
fd97f3d36cbb53cbdd59b53603f45913  /media/$USERNAME/COREELEC/device_trees/gxm_q201_3g.dtb

답변1

두 파일의 md5 체크섬은 내용이 다른 경우에만 다릅니다. cmp또는 명령 과 비교하여 diff이를 확인할 수 있습니다.

복사 작업이 제대로 작동하지 않는 데에는 여러 가지 이유가 있을 수 있습니다.

  1. 디스크 캐시를 플러시하기 전에 SD 카드를 제거하십시오. 당신은 사용해 볼 수 있습니다우디스코텔.

  2. 파일 시스템 손상. 카드를 다시 포맷해 보세요.

  3. 하드웨어 오작동.

답변2

시스템은 미디어가 마운트 해제될 때까지 모든 데이터를 쓰지 않습니다. 이는 시스템이 쓰기를 제한하려고 시도할 때 이동식(일반적으로 느린 플래시) 미디어의 일반적인 동작입니다.

시각적으로, 파일 관리자(기억한다면 PCManFM...)가 제거 프로세스를 기다리라고 경고하는 것을 볼 수 있습니다(SD 카드 리더에 대한 LED가 있는 경우 엄청나게 깜박입니다).


편집 1:sync파일 시스템 캐시를 플러시하는 명령을 사용하여 내 이론을 확인/증명할 수 있습니다.

관련 정보