I filled up the (micro)SDs, including the current one I have been scanning
into, the one that I set aside as probably defective and the pair I bought
for testing. I will append the bash script. As I look again, I read that
you wanted this done on Windows but I did not use cygwin because putting
Windows into the mix could affect the steps that invoke the data
corruption. Instead, I installed Debian bookworm without a graphical
desktop (unchecked anything except system and ssh). One also activates the
network interface and DHCP. That way, the SD and its folders will not be
affected by adding thumbnails, which I have identified as a way to avoid
the problem.

After satisfying that step, I tried a SD without using the wand scanner.
This newest laptop does not have a SD slot so I used a USB device. I
enabled showing thumbnails. Bookworm's behavior is different from observed
on buster and (probably) bullseye: when one copies a folder to the
computer, and opens on the desktop during copying: (1) the folder on the SD
quickly displays the thumbnails (serially from the top) but (2) the
destination folder opens, begins to show thumbnails but is prone to
continue copying but stopping placing thumbnail. If the SD's folder is
opened, no more thumbnails are added on the computer until the copying is
finished. If the SD's folder is not opened, the thumbnails may stop or may
continue, but there is an extended pause without any indication that the
last two files have been copied, until the progress dialog is closed and
its window is refreshed. If neither folder is opened during copying, the
copying progresses without such pauses and one can then open the folders
and watch the thumbnails be created.

Since these jpeg files are scanned from text, those thumbnails are not
informative, unless they reflect that the image contents have been
disturbed.

The next step would be check this effect on earlier releases but I will not
do this immediately.

You can refer to the script I used to verify these SDs, or it may be
helpful. I used it to fill a SD with folders, each with the same 200
images, for testing, one folder at a time. Otherwise, it will exercise its
targets on the off chance that their capacities are not as advertised.

#!/bin/bash
folderpa="/mnt/DCIM/100MEDIA"
foldernm=`echo $folderpa | sed -e 's/^\(\/[^/]*\)*\///g'`
folderdu=`du $folderpa | awk '$1 ~ /^[0-9]+$/ {print $1}'`
deviceso=`df /mnt --output=source | awk '$1 ~ /\/dev\// {print $1}'`
devicesp=`df --output=avail $deviceso| awk '$1 ~ /^[0-9]+$/ {print $1}'`
fldrcnt=$((0))
filecnt=$((1))
index=$((1))
for file in `find $folderpa -type f|sed -e 's/^\(\/[^/]*\)*\///g'`
do
#echo $file
srcsha[$index]=`shasum $folderpa/$file | sed -e 's/ *[^ ]*$//'`
#echo "${srcsha[$index]} index $index"
index=$(($index+1))
done
count=$(($index))
while [[ $devicesp -gt $folderdu ]]
do
# mock up the new folder name
((fldrcnt++))
printf -v fldrnew "%s%s%d" "/mnt/" $foldernm $fldrcnt
mkdir $fldrnew
index=$((1))
for file in `find $folderpa -type f | sed -e 's/^\(\/[^/]*\)*\///g'`
do
#echo "find file $file"
cp $folderpa"/"$file $fldrnew"/"$file
cmp "$folderpa""/""$file" "$fldrnew""/""$file"
cmperror=$?
if [[ $cmperror -ne 0 ]]
then
echo "comparison mismatch $fldrnew/$file"
fi
savsha=`shasum $fldrnew/$file | sed -e 's/ *[^ ]*$//'`
#echo "$index $fldrnew/$file $savsha"
#echo "${srcsha[$index]}"
if [[ $savsha != ${srcsha[$index]} ]]
then
echo "sha sum $fldrnew/$file mismatches"
fi
((index++))
done
#read -p "Folder $fldrcnt ?" okay
#if [[ $okay != "" ]]
#then
#exit
#fi
devicesp=`df --output=avail $deviceso | awk '$1 ~ /[0-9]+/ {print $1}'`
done
echo "device space $devicesp"
echo "folder space $folderdu"
echo "folders created $fldrcnt"
# Imagine that the target device is posing at a higher space than the
hardware
# Perhaps the newest files have overwritten the earlier so the unsuspecting
# user can access the last-written files but the earliest files are lost.
# In order to detect that, go through the SHA sums again from first to last
fldridx=$((1))
echo "Now comparing SHA sums again, reading each copied files again"
while [[ $fldridx -le $fldrcnt ]]
do
printf -v fldr "%s%s%d" "/mnt/" $foldernm $fldridx
#echo Comparing SHA sums for $fldr
((fldridx++))
index=$((1))
for file in `find $folderpa -type f | sed -e 's/^\(\/[^/]*\)*\///g'`
do
savsha=`shasum $fldr/$file | sed -e 's/ *[^ ]*$//'`
if [[ $savsha != ${srcsha[$index]} ]]
then
echo "sha sum $fldr/$file mismatches"
fi
((index++))
done
done
echo "Done comparing SHA sums starting from earliest to latest files
created"
#

On Wed, May 29, 2024 at 3:15 PM Ben Hutchings <b...@decadent.org.uk> wrote:

> Control: tag -1 unreproducible moreinfo
>
> Hi Bud,
>
> Please understand that when I aksed you to carry out a specific test, I
> had a good reason for doing exactly that.  The tests that you have
> carried out so far, while useful, don't provide the same information.
>
> Ben.
>
> --
> Ben Hutchings
> Always try to do things in chronological order;
> it's less confusing that way.
>
>

Reply via email to