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ファイルシステムキャッシュをフラッシュするコマンドを使用して、私の理論を検証/証明できます。

関連情報