On 10.02.2024 03:34, gene heskett wrote:
On 2/8/24 07:22, Alexander V. Makartsev wrote:
This is how I would test it.
First create a new GPT partition table and a new 2TB partition:
     $ sudo gdisk /dev/sdX check

/!\  Make double sure you've selected the right device by using "lsblk" and "blkid" utilities.  /!\ /!\                            It could change from 'sdm' to another name after reboot.                              /!\

At gdisk prompt press "o" to create a new GPT table, next press "n" to create a new partition, accept default values by pressing "enter". To verify setup press "p", to accept configuration and write it to device press "w". check

Next format partition to ext4 filesystem:
     $ sudo mkfs.ext4 -m 0 -e remount-ro /dev/sdX1 check

Next mount the filesystem:
     $ sudo mkdir /mnt/disktest check
     $ sudo mount /dev/sdX1 /mnt/disktest check

Next create reference 1GB file filled with dummy data:
     $ cd /mnt/disktest check
     $ sudo fallocate -l 1G ./reftestfile check
     $ sudo badblocks -w -s -t random ./reftestfile check

Now we can use script to create 1830 1GB files and check their checksum:
     $ for i in $(seq 1830); do sudo dd if="./reftestfile" of="./testfile${i}" status=none; md5sum -b "./testfile${i}" ;done

This procedure will take a very long time to complete. "md5sum" will output the checksum for each file and they should be equal to checksum of "reftestfile":
     $ md5sum -b ./reftestfile
Got a problem Alexander:
I had to put the script someplace else. So I put it in my private /home/gene/bin as disktest.txt with nano. couldn't find it.
But:
gene@coyote:/mnt/disktest$ sudo /home/gene/bin/disktest.txt
sudo: /home/gene/bin/disktest.txt: command not found
If you put that 'for' loop one-liner inside, I think you forgot to make "/home/gene/bin/disktest.txt" executable:
    $ chmod +x /home/gene/bin/disktest.txt

And:
gene@coyote:/mnt/disktest$ ls /home/gene/bin/disktest.txt
/home/gene/bin/disktest.txt
So I think I found the problem with my script, ancient eyeballs can't tell the diff between () and{} so I fixed that but it still won't run or be killed. I don't care how big you've made the t-bird font, by the time you've read 2 more msgs, its back to about 6 point text.  Grrrrrrr.

So I fired up a root session of htop, found about 8 copies of dd showing and started killing them but cannot kill the last 2 in the D state.

And cannot find .disktest.txt running in a root htop and the2 copy's of dd can't be killall'd.

It's not possible for me to know what went wrong.
Have you created "reftestfile" inside "/mnt/disktest" directory?
How many "testfile*" files, if any, were created on the filesystem mounted at "/mnt/disktest"?
Was there anything relevant in the syslog about "sdm" drive after the test?
If you'd followed my instructions step by step, you'd end up inside "/mnt/disktest" directory and for the last step all you had to do is copy and paste that one-liner 'for' loop into the command line. It's a long line and it really meant to be copied and pasted not typed by hand, and also to give you the idea of the process, so you could adjust it if needed. I've tested it again on my computer and it worked as expected, synchronously created "testfiles" inside current directory and calculated their hashes one by one.


--
With kindest regards, Alexander.

⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Debian - The universal operating system
⢿⡄⠘⠷⠚⠋⠀ https://www.debian.org
⠈⠳⣄⠀⠀⠀⠀

Reply via email to