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
이를 확인할 수 있습니다.
복사 작업이 제대로 작동하지 않는 데에는 여러 가지 이유가 있을 수 있습니다.
디스크 캐시를 플러시하기 전에 SD 카드를 제거하십시오. 당신은 사용해 볼 수 있습니다우디스코텔.
파일 시스템 손상. 카드를 다시 포맷해 보세요.
하드웨어 오작동.
답변2
시스템은 미디어가 마운트 해제될 때까지 모든 데이터를 쓰지 않습니다. 이는 시스템이 쓰기를 제한하려고 시도할 때 이동식(일반적으로 느린 플래시) 미디어의 일반적인 동작입니다.
시각적으로, 파일 관리자(기억한다면 PCManFM...)가 제거 프로세스를 기다리라고 경고하는 것을 볼 수 있습니다(SD 카드 리더에 대한 LED가 있는 경우 엄청나게 깜박입니다).
편집 1:sync
파일 시스템 캐시를 플러시하는 명령을 사용하여 내 이론을 확인/증명할 수 있습니다.