Hello, On Thu, 30 Jul 2020, Yamaban wrote:
On Thu, 30 Jul 2020 15:30, Carlos E. R.
wrote: [..] <snip> the next lines follow directly. but the identifier is different: before: ST4000DM004-2CV104 after: ST4000DM004-2CV1
The first is via scsi, the second via ata, compare: # lsscsi -g [9:0:0:0] disk ATA WDC WD40EFRX-68N 82.0 /dev/sdh /dev/sg7 # hdparm -i /dev/sdh | grep Model Model=WDC WD40EFRX-68N32N0 [..] # sginfo -i /dev/sg7 |grep Prod Product: WDC WD40EFRX-68N As you see, sginfo (the SCSI IDENTIFY) truncates the model to 16 chars, ata allows at least 22 chars (that's the longest I have). [..]
first: look at the links in this dir: /dev/disk/by-path esp the lines that contain ata3: :> ls -l /dev/disk/by-path |grep ata3
that gives you an idea which drive causes that problem. for more info what drive that is, use the "sd?" drive-id and look at the content of "/dev/disk/by-id" with that id e.g. "sdd" :> ls -l /dev/disk/by-id |grep sdd should give something similar to "ata-Seagate..........." with the product-name ST4000DM004-2CV1 in it, to exactly identify whitch drive.
It's easier to use my script ataid_to_drive.sh[1] to translate the 'ataX[.YY]' ids to /dev/sd* or SCSI HOST:CTRL:ID:LUN ids, and I've not yet found any other tool that does that (not even 'lsblk -O -a' ;)
If not stop snapper (-timer via systemd), and do so NOW. Power down. Disconnect Drive, maybe also remove it at the same time
I wonder if snapper somehow does an explicit 'ATA_CMD_FLUSH_EXT' (that's the easiest to grep for in the kernel-sources) and the drive barfs on that command and only understands 'ATA_CMD_FLUSH'... I've not looked at the specs or differences...
Replace the drive with a new one.
Sorry, no better answer. Either the drive has a firmware bug, or a real hw failure the s.m.a.r.t system can not identify.
Apropos: how about the 'smartctl -A' output? HTH, -dnh ==== ataid_to_drive.sh ==== #!/bin/bash oIFS="$IFS" IFS=$'\n' PATH="/sbin:/usr/sbin:$PATH" CTRLS=( $( lspci | grep 'ATA\|IDE') ) IFS="$oIFS" for arg; do if test -z "${arg/ata*}"; then arg="${arg/ata}" fi if test -z "${arg/*.*}"; then ata="${arg%.*}" subid="$(printf "%i" "${arg##*.}")"; else ata="$arg" fi echo "ata${ata}${subid/*/.$(printf "%02i" $subid)} is:" for ctrl in ${CTRLS[@]%% *}; do idpath="/sys/bus/pci/devices/*${ctrl}/*/*/*/unique_id" grep "^${ata}$" $idpath 2>/dev/null host=$(grep "^${ata}$" $idpath 2>/dev/null | \ sed 's@.*/host\([0-9A-Fa-f]\+\)/.*@\1@') if test -n "$host"; then dmesg | grep "\] s[dr] $host:0:$subid.*Attached" fi done done ==== -- Tja, und so hab ich wohl die beiden wichtigsten Dinge gelernt, die man IMO ueber Linux lernen kann: Wie man Doku findet, liest, verarbeitet und versteht :) Und Geduld (v.a. mit sich selbst) bzw. Durchhaltevermoegen.. [David Haller in suse-linux über seine ersten Erfahrungen mit Linux] -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org