Mount
解除安裝 SD 卡使文件校驗和更改
我有一張 Lubuntu 安裝的 SD 卡
/media/$USERNAME/COREELEC/
我需要將文件從一個目錄複製到另一個目錄並重命名。但是,如果我在它之後檢查
md5sum
(orsha512sum
)unmount
並再次安裝它,那就不同了。
- 為什麼再次掛載SD卡後校驗和不一樣?
- 我能做些什麼讓它再次相同嗎?
重現它的步驟(假設作業系統已經安裝了 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
只有內容不同,兩個文件的 md5 校驗和才會不同。
cmp
您可以通過將它們與或diff
命令進行比較來確認這一點。它們可能是複制操作無法正常工作的幾個原因:
- 在刷新磁碟記憶體之前拔下 sdcard。您可以嘗試使用udiskctl。
- 文件系統損壞。您可以嘗試重新格式化該卡。
- 硬體故障。
在要解除安裝介質之前,系統不會寫入所有數據。這是可移動(通常是慢速和快閃記憶體)媒體的常見行為,因為系統會嘗試限制寫入。
在視覺上,您會注意到文件管理器(如果我記得很清楚的話,PCManFM…)會警告您等待解除安裝過程(如果您有用於 SD 卡讀卡器的 LED,它會像地獄一樣閃爍)
EDIT1:
sync
您可以使用刷新文件系統記憶體的命令來檢查/證明我的理論