Aktionen

Zabbix:Template Windows SMART-Werte Festplatten: Unterschied zwischen den Versionen

Aus znilwiki

KKeine Bearbeitungszusammenfassung
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
<u>'''Changelog:'''<\u><br>
<u>'''Changelog:'''</u><br>
* 22.11.2025 erste Version
* 22.11.2025 erste Version
----
----
{{Vorlage:AchtungBaustelle}}
{{Vorlage:AchtungBaustelle}}
==Vorwort==
==Vorwort==
Durch Zufall hatte ich an meinem Heim-PC bemerkt das eine der 4 Festplatten kurz vorm Exitus war.<br>
Dieser Artikel ist nun entstanden damit ich es auch später noch einmal wieder hinbekomme den Status der Festplatten zu überwachen.<br>
<br>
Im Artikel arbeite ich mich an die Lösung heran, deswegen werden hier auch alle Einzelschritte erklärt und es gibt nicht nur das fertige Template.<br>
Mit den Einzelschritten könnt Ihr auch prüfen was bei euch so möglich ist, bevor Ihr das Template einsetzt.<br>
----
==Ausgangslage==
In meinem PC sind aktuell 9 Festplatten, davon ist einer ein USB-Stick ({{code|F:}}) und zwei sind USB-Laufwerke ({{code|Q:}} und {{code|U:}}):<br>
:[[Datei:ClipCapIt-251122-154112.PNG]]<br>
Laufwerk {{code|Q:}} geht es nicht mehr so gut: (2x Screenshot wegen Deutsch und Englisch)<br>
:[[Datei:ClipCapIt-251122-154433.PNG]] [[Datei:ClipCapIt-251122-154509.PNG]]<br>
Und in der Tat hat {{code|Q:}} einige beschädigte Blöcke:<br>
:[[Datei:ClipCapIt-251122-154912.PNG]]<br>
Bis auf eine Datei konnte ich noch alles lesen und wegkopieren (ja, ich habe natürlich auch noch ein Backup), er konnte das wohl bisher korrigieren.<br>
Aber trotzdem würde ich das in Zukunft gerne eher bemerken.<br>
<br>
<br>
----
==Was geht per PowerShell?==
Zuerst habe ich getestet was mit Windows Boardmitteln geht. Werkzeuge wie [https://crystalmark.info/en/software/crystaldiskinfo/ CrystalDiskInfo] oder [https://github.com/smartmontools/smartmontools SmartMonTools] greifen ja letztendlich auch nur auf Werte zu die im Betriebssystem irgendwo bereit stehen.<br>
Für die nachfolgenden Befehle habe ich eine PowerShell-Konsole als Administrator geöffnet.<br>
<br>
---
Get-Disk
liefert eine Liste aller Installierten Festplatten, NVMe, SSD, HDD aber auch USB-Sticks:
Number Friendly Name                      Serial Number                    HealthStatus        OperationalStatus      Total Size Partition
                                                                                                                                  Style
------ -------------                      -------------                    ------------        -----------------      ---------- ----------
1      ST4000DM005-2DP166                            ZDH1MEQW            Healthy              Online                    3.64 TB GPT
2      ST6000VN006-2ZM186                            ZVX08NJ7            Healthy              Online                    5.46 TB GPT
4      WD Blue SN570 1TB                  E823_8FA6_BF53_0001_001B_444A... Healthy              Online                  931.51 GB GPT
5      Realtek RTL9210B-CG                0000000000000000                Healthy              Online                  931.51 GB GPT
3      SPCC Solid State Disk              B7A3078C0C5300219683            Healthy              Online                  476.94 GB MBR
0      WDC WD40EZRX-00SPEB0                    WD-WCC4E1375844            Healthy              Online                    3.64 TB GPT
6      WDC WD40 EFRX-68N32N0              RANDOM__A1E3A88F9D44            Healthy              Online                    3.64 TB GPT
7      WDC WD60 EZAZ-00SF3B0              RANDOM__C6D5CF0726F1            Healthy              Online                    5.46 TB GPT
8      Generic MassStorageClass          00000000CY06                    Healthy              Online                  29.12 GB MBR
Da gibt es dann auch schon einen {{code|HealthStatus}}, der aber auch für Disk 7, das ist {{code|Q:}}, auf {{code|Healthy}} steht, obwohl CrystalDiskInfo (und die Ereignisanzeige) das anders sieht.<br>
Schauen wir uns mal die vollen Details von Disk 7 an:<br>
Get-Disk 7 | Select-Object -Property "*"
Ausgabe:<br>
DiskNumber            : 7
PartitionStyle        : GPT
ProvisioningType      : Fixed
OperationalStatus    : Online
HealthStatus          : Healthy
BusType              : USB
UniqueIdFormat        : Vendor Id
OfflineReason        :
ObjectId              : {1}\\DESKTOP-91MQDI1\root/Microsoft/Windows/Storage/Providers_v2\WSP_Disk.ObjectId="{a8f83b40-cb1e-11ec-886a-806e6f6e6963}:DI:\\?\scsi#disk&ven_wdc_wd60&prod_ezaz-00sf3b0#a&15d43e6a&0&000001#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}"
PassThroughClass      :
PassThroughIds        :
PassThroughNamespace  :
PassThroughServer    :
UniqueId              : WDC WD60EZAZ-00SF3B0    RANDOM__100B3B367A300001
AdapterSerialNumber  :
AllocatedSize        : 6001175126016
BootFromDisk          : False
FirmwareVersion      : 0009
FriendlyName          : WDC WD60 EZAZ-00SF3B0
Guid                  : {31d05481-f24d-42cf-81e4-e2c1b65601ac}
IsBoot                : False
IsClustered          : False
IsHighlyAvailable    : False
IsOffline            : False
IsReadOnly            : False
IsScaleOut            : False
IsSystem              : False
LargestFreeExtent    : 0
Location              : Integrated : Bus 0 : Device 0 : Function 4 : Adapter 3 : Port 0
LogicalSectorSize    : 512
Manufacturer          : WDC WD60
Model                : EZAZ-00SF3B0
Number                : 7
NumberOfPartitions    : 1
Path                  : \\?\scsi#disk&ven_wdc_wd60&prod_ezaz-00sf3b0#a&15d43e6a&0&000001#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
PhysicalSectorSize    : 512
SerialNumber          : RANDOM__C6D5CF0726F1
Signature            :
Size                  : 6001175126016
PSComputerName        :
CimClass              : ROOT/Microsoft/Windows/Storage:MSFT_Disk
CimInstanceProperties : {ObjectId, PassThroughClass, PassThroughIds, PassThroughNamespace...}
CimSystemProperties  : Microsoft.Management.Infrastructure.CimSystemProperties
Tja, außer dem <code>HealthStatus : Healthy'</code> ist nicht viel zusehen.<br>
Für mehr Daten gibt es den Befehl
Get-StorageReliabilityCounter
den wir am besten so aufrufen (für alle Festplatten):<br>
Get-Disk | Get-StorageReliabilityCounter
Ausgabe:<br>
Number Temperature ReadErrorsUncorrected Wear PowerOnHours
------ ----------- --------------------- ---- ------------
0                  0                    0    85404
3                                        0    39895
8                                        0
4                                        0
5                                        0
1                  0                    0    62432
2                  0                    0    2
7                  170                  0    33738
6                  0                    0    2537
Unsortiert, aber schon Besser, hier sind bei Disk 7 eindeutig Fehler zu sehen.<br>
Disk 4, 5 und 8 haben keine {{code|PowerOnHours}}, 4 ist meine Boot-NVMe, 5 eine NVMe in einem externen USB-Gehäuse und 8 ist der USB-Stick.
Holen wir uns mal alle Details von Laufwerk 7:<br>
Get-Disk | Get-StorageReliabilityCounter | Select-Object -Property "*"
Ausgabe:<br>
ObjectId                : {1}\\DESKTOP-91MQDI1\root/Microsoft/Windows/Storage/Providers_v2\SPACES_StorageReliabilityCounter.ObjectId="{a8f83b40-cb1e-11ec-886a-806e6f6e6963}:RC:\\?\scsi#disk&ven_wdc_wd60&prod_ezaz-00sf3b0#a&15d43e6a&0&000001#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}"
PassThroughClass        :
PassThroughIds          :
PassThroughNamespace    :
PassThroughServer      :
UniqueId                : {a8f83b40-cb1e-11ec-886a-806e6f6e6963}:RC:\\?\scsi#disk&ven_wdc_wd60&prod_ezaz-00sf3b0#a&15d43e6a&0&000001#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
DeviceId                : 7
FlushLatencyMax        : 0
LoadUnloadCycleCount    : 63361
LoadUnloadCycleCountMax :
ManufactureDate        :
PowerOnHours            : 33738
ReadErrorsCorrected    : 0
ReadErrorsTotal        : 170
ReadErrorsUncorrected  : 170
ReadLatencyMax          : 240
StartStopCycleCount    : 18786
StartStopCycleCountMax  :
Temperature            : 34
TemperatureMax          : 0
Wear                    : 0
WriteErrorsCorrected    :
WriteErrorsTotal        :
WriteErrorsUncorrected  :
WriteLatencyMax        : 295
PSComputerName          :
CimClass                : ROOT/Microsoft/Windows/Storage:MSFT_StorageReliabilityCounter
CimInstanceProperties  : {ObjectId, PassThroughClass, PassThroughIds, PassThroughNamespace...}
CimSystemProperties    : Microsoft.Management.Infrastructure.CimSystemProperties
Da hätten wir Schreib- und Lesefehler, sowohl Korrigierbare als nicht Korrigierbare, die Betriebsstunden und die Temperatur - als von mir gewählte, interessante Werte.<br>
Das noch nicht der vollständige Umfang den z.B. CrystalDiskInfo bietet, aber doch schon mal gar nicht so schlecht.<br>
----
==Was gibt es über WMI?==
Jetzt kommen zwar wieder PowerShell-Befehle, dieses nutzen wir aber um das WMI abzufragen. Das ginge grundsätzlich auch per {{code|wmic.exe}}, die ist aber seit einiger Zeit nicht mehr ab Werk installiert (Windows 11, Windows Server 2025), also nehmen wir gleich PowerShell:<br>
Get-WmiObject -Class win32_diskdrive -Property STATUS
Ausgabe:<br>
Partitions : 1
DeviceID  : \\.\PHYSICALDRIVE3
Model      : SPCC Solid State Disk
Size      : 512105932800
Caption    : SPCC Solid State Disk
Partitions : 1
DeviceID  : \\.\PHYSICALDRIVE8
Model      : Generic MassStorageClass USB Device
Size      : 31264289280
Caption    : Generic MassStorageClass USB Device
...
...
Die Festplatten 0 bis 8 finden sich auch hier wieder, als '''PHYSICALDRIVE0''' bis '''PHYSICALDRIVE8'''<br>
Schauen wir wieder bei Festplatte 7 was alles an Werten geht:<br>
Get-WmiObject -Class win32_diskdrive -Filter "DeviceID like '%PHYSICALDRIVE7'"
gibt uns nur unsere einzelne Festplatte ({{code|<nowiki>%7</nowiki>}} würde auch gehen wenn man nicht mehr als 9 Festplatten hat):<br>
Partitions : 1
DeviceID  : \\.\PHYSICALDRIVE7
Model      : WDC WD60 EZAZ-00SF3B0 SCSI Disk Device
Size      : 6001172513280
Caption    : WDC WD60 EZAZ-00SF3B0 SCSI Disk Device
Und jetzt einmal alle Eigenschaften:<br>
Get-WmiObject -Class win32_diskdrive -Filter "DeviceID like '%7'" | Select-Object -Property "*"
Ausgabe:<br>
PSComputerName              : DESKTOP-91MQDI1
ConfigManagerErrorCode      : 0
LastErrorCode              :
NeedsCleaning              :
Status                      : OK
DeviceID                    : \\.\PHYSICALDRIVE7
StatusInfo                  :
Partitions                  : 1
BytesPerSector              : 512
ConfigManagerUserConfig    : False
DefaultBlockSize            :
Index                      : 7
InstallDate                :
InterfaceType              : SCSI
MaxBlockSize                :
MaxMediaSize                :
MinBlockSize                :
NumberOfMediaSupported      :
SectorsPerTrack            : 63
Size                        : 6001172513280
TotalCylinders              : 729601
TotalHeads                  : 255
TotalSectors                : 11721040065
TotalTracks                : 186048255
TracksPerCylinder          : 255
__GENUS                    : 2
__CLASS                    : Win32_DiskDrive
__SUPERCLASS                : CIM_DiskDrive
__DYNASTY                  : CIM_ManagedSystemElement
__RELPATH                  : Win32_DiskDrive.DeviceID="\\\\.\\PHYSICALDRIVE7"
__PROPERTY_COUNT            : 51
__DERIVATION                : {CIM_DiskDrive, CIM_MediaAccessDevice, CIM_LogicalDevice, CIM_LogicalElement...}
__SERVER                    : DESKTOP-91MQDI1
__NAMESPACE                : root\cimv2
__PATH                      : \\DESKTOP-91MQDI1\root\cimv2:Win32_DiskDrive.DeviceID="\\\\.\\PHYSICALDRIVE7"
Availability                :
Capabilities                : {3, 4}
CapabilityDescriptions      : {Random Access, Supports Writing}
Caption                    : WDC WD60 EZAZ-00SF3B0 SCSI Disk Device
CompressionMethod          :
CreationClassName          : Win32_DiskDrive
Description                : Laufwerk
ErrorCleared                :
ErrorDescription            :
ErrorMethodology            :
FirmwareRevision            : 0009
Manufacturer                : (Standardlaufwerke)
MediaLoaded                : True
MediaType                  : External hard disk media
Model                      : WDC WD60 EZAZ-00SF3B0 SCSI Disk Device
Name                        : \\.\PHYSICALDRIVE7
PNPDeviceID                : SCSI\DISK&VEN_WDC_WD60&PROD_EZAZ-00SF3B0\A&15D43E6A&0&000001
PowerManagementCapabilities :
PowerManagementSupported    :
SCSIBus                    : 0
SCSILogicalUnit            : 1
SCSIPort                    : 3
SCSITargetId                : 0
SerialNumber                : RANDOM__C6D5CF0726F1
Signature                  :
SystemCreationClassName    : Win32_ComputerSystem
SystemName                  : DESKTOP-91MQDI1
Scope                      : System.Management.ManagementScope
Path                        : \\DESKTOP-91MQDI1\root\cimv2:Win32_DiskDrive.DeviceID="\\\\.\\PHYSICALDRIVE7"
Options                    : System.Management.ObjectGetOptions
ClassPath                  : \\DESKTOP-91MQDI1\root\cimv2:Win32_DiskDrive
Properties                  : {Availability, BytesPerSector, Capabilities, CapabilityDescriptions...}
SystemProperties            : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers                  : {dynamic, Locale, provider, UUID}
Site                        :
Container                  :
Das sind zwar viele Werte - aber scheinbar nichts brauchbares.<br>
Ok, nächster Ansatz, wir fragen den Treiber Treiber nach Fehlern:<br>
Get-CimInstance -namespace root\wmi -class MSStorageDriver_FailurePredictStatus
Ausgabe:
Active        : True
InstanceName  : SCSI\Disk&Ven_WDC&Prod_WD40EZRX-00SPEB0\5&edbf5d4&0&000000_0
PredictFailure : False
Reason        : 0
PSComputerName :
Active        : True
InstanceName  : SCSI\Disk&Ven_&Prod_ST4000DM005-2DP1\5&edbf5d4&0&010000_0
PredictFailure : False
Reason        : 0
PSComputerName :
Active        : True
InstanceName  : SCSI\Disk&Ven_&Prod_ST6000VN006-2ZM1\5&edbf5d4&0&040000_0
PredictFailure : False
Reason        : 0
PSComputerName :
Active        : True
InstanceName  : SCSI\Disk&Ven_SPCC&Prod_Solid_State_Disk\5&edbf5d4&0&050000_0
PredictFailure : False
Reason        : 0
PSComputerName :
Tja, der letzte Fehler war vor einem Reboot des Rechners, hier ist gerade auch nicht viel zu holen.<br>
<br>
Ich schweife mal ab und schaue ob ich etwas schönes finde wo ich den Laufwerken 0 bis 8 den passenden Laufwerksbuchstaben zuordnen kann:<br>
Get-Disk 7 | Get-Partition | Select-Object -Property DiskNumber,DriveLetter
Ausgabe:<br>
DiskNumber DriveLetter
---------- -----------
          7          Q
Das ist beim C: Laufwerk natürlich nicht so einfach da es dort mehr als eine Partition gibt.<br>
Also folgender Aufruf:<br>
Get-Disk 4 | Get-Partition | Where-Object -Property DriveLetter | Select-Object -Property DiskNumber,DriveLetter,Size
Ausgabe:<br>
DiskNumber  : 4
DriveLetter : C
Size        : 998227241472
Der Filter listet nur Objekte auf bei denen auch ein '''DriveLetter''' vergeben ist. Das ist dann wieder Blöd wenn es 2 Partitionen mit Laufwerksbuchstaben auf einem Laufwerk gibt - aber so etwas habe ich schon seit Jahren nicht mehr gesehen, mit dem Fehler kann ich also leben.<br>
<br>
<br>
----
----
==Was geht per Smartmontool?==
Diese Abfrage basiert auf dem CLI-Programm Smartmontools:
https://github.com/smartmontools/smartmontools
Die jeweils aktuelle Version findet Ihr unter Releases:<br>
https://github.com/smartmontools/smartmontools/releases
Hinweis vorweg: per Parameter {{code|-json}} formatiert {{code|smartctl}} die Ausgabe passend so das wir diese auch leicht in Zabbix weiter verarbeiten könnten.<br>
Nach der Installation - und wenn Ihr ausgewählt habt das der Programmpfad der <code>PATH</code> Variable hinzugefügt wird, könnt Ihr in einer Eingabeaufforderung die Ihr nach(!) der Installation als Administrator geöffnet habt, die SMART-Werte abfragen.<br>
smartctl --scan
liefert uns eine Liste aller Laufwerke:<br>
/dev/sda -d ata # /dev/sda, ATA device
/dev/sdb -d ata # /dev/sdb, ATA device
/dev/sdc -d ata # /dev/sdc, ATA device
/dev/sdd -d ata # /dev/sdd, ATA device
/dev/sde -d nvme # /dev/sde, NVMe device
/dev/sdf -d sntrealtek # /dev/sdf [USB NVMe Realtek], NVMe device
/dev/sdg -d sat # /dev/sdg [SAT], ATA device
/dev/sdh -d sat # /dev/sdh [SAT], ATA device
/dev/sdi -d scsi # /dev/sdi, SCSI device
und per
smartctl -i /dev/sdh
können wir auch wieder unsere Festplatte 7 abfragen (weil {{code|h}} der 7. Buchstabe ist):<br>
smartctl 7.5 2025-04-30 r5714 [x86_64-w64-mingw32-w11-24H2] (AppVeyor)
Copyright (C) 2002-25, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family:    Western Digital Blue (SMR)
Device Model:    WDC WD60EZAZ-00SF3B0
Serial Number:    WD-WX72D600NJ65
LU WWN Device Id: 5 0014ee 26851786d
Firmware Version: 80.00A80
User Capacity:    6.001.175.126.016 bytes [6,00 TB]
Sector Sizes:    512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Form Factor:      3.5 inches
TRIM Command:    Available, deterministic, zeroed
Device is:        In smartctl database
ATA Version is:  ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Sat Nov 22 17:02:58 2025 MZ
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Puhh, mit den Zahlen die ich per PowerShell oder WMI bekomme, wäre mir lieber ... kein Problem, die Schreibweise ist wie folgt:<br>
smartctl -i /dev/pd7
ergibt die gleiche Ausgabe. {{code|pd}} steht für '''''pyhiscal drive'''''<br>
mit {{code|-i}} gibt es nur die allgemeinen Informationen, per<br>
smartctl -a /dev/pd7
Ist die Ausgabe schon sehr viel länger:<br>
smartctl 7.5 2025-04-30 r5714 [x86_64-w64-mingw32-w11-24H2] (AppVeyor)
Copyright (C) 2002-25, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family:    Western Digital Blue (SMR)
Device Model:    WDC WD60EZAZ-00SF3B0
Serial Number:    WD-WX72D600NJ65
LU WWN Device Id: 5 0014ee 26851786d
Firmware Version: 80.00A80
User Capacity:    6.001.175.126.016 bytes [6,00 TB]
Sector Sizes:    512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Form Factor:      3.5 inches
TRIM Command:    Available, deterministic, zeroed
Device is:        In smartctl database
ATA Version is:  ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Sat Nov 22 17:09:40 2025 MZ
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART Status not supported: Incomplete response, ATA output registers missing
SMART overall-health self-assessment test result: PASSED
Warning: This result is based on an Attribute check.
General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                                        was never started.
                                        Auto Offline Data Collection: Disabled.
Self-test execution status:      (  0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                (59700) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (  2) minutes.
Extended self-test routine
recommended polling time:        ( 332) minutes.
Conveyance self-test routine
recommended polling time:        (  2) minutes.
SCT capabilities:              (0x3031) SCT Status supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG    VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate    0x002f  188  145  051    Pre-fail  Always      -      653
  3 Spin_Up_Time            0x0027  224  210  021    Pre-fail  Always      -      3800
  4 Start_Stop_Count        0x0032  082  082  000    Old_age  Always      -      18787
  5 Reallocated_Sector_Ct  0x0033  200  200  140    Pre-fail  Always      -      0
  7 Seek_Error_Rate        0x002e  200  200  000    Old_age  Always      -      0
  9 Power_On_Hours          0x0032  054  054  000    Old_age  Always      -      33739
  10 Spin_Retry_Count        0x0032  100  100  000    Old_age  Always      -      0
  11 Calibration_Retry_Count 0x0032  100  100  000    Old_age  Always      -      0
  12 Power_Cycle_Count      0x0032  100  100  000    Old_age  Always      -      533
192 Power-Off_Retract_Count 0x0032  200  200  000    Old_age  Always      -      38
193 Load_Cycle_Count        0x0032  179  179  000    Old_age  Always      -      63362
194 Temperature_Celsius    0x0022  115  099  000    Old_age  Always      -      35
196 Reallocated_Event_Count 0x0032  200  200  000    Old_age  Always      -      0
197 Current_Pending_Sector  0x0032  200  200  000    Old_age  Always      -      170
198 Offline_Uncorrectable  0x0030  100  253  000    Old_age  Offline      -      0
199 UDMA_CRC_Error_Count    0x0032  200  200  000    Old_age  Always      -      0
200 Multi_Zone_Error_Rate  0x0008  100  253  000    Old_age  Offline      -      0
SMART Error Log Version: 1
ATA Error Count: 1
        CR = Command Register [HEX]
        FR = Features Register [HEX]
        SC = Sector Count Register [HEX]
        SN = Sector Number Register [HEX]
        CL = Cylinder Low Register [HEX]
        CH = Cylinder High Register [HEX]
        DH = Device/Head Register [HEX]
        DC = Device Command Register [HEX]
        ER = Error register [HEX]
        ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.
Error 1 occurred at disk power-on lifetime: 33678 hours (1403 days + 6 hours)
  When the command that caused the error occurred, the device was active or idle.
  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 40 e7 8f 40  Error:
  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC  Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]
SMART Selective self-test log data structure revision number 1
  SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
The above only provides legacy SMART information - try 'smartctl -x' for more
Ganz schön viel, man kann die {{code|Current_Pending_Sector}} Werte sehen an denen '''CrystalDiskInfo''' rummäkelt.<br>
Aber da steht auch nirgends das es dem Laufwerk schlecht gehen würde, die Werte aus der Tabelle müsste man selbst auswerten.<br>
Da steht was von einem (!) Fehler weiter unten im Text, in der Ereignisanzeige stehen hunderte Einträge zu '''Bad Blocks'''.<br>
Es gibt einen kurzen Heath-Check per<br>
smartctl -H /dev/pd7
Der wirft im Prinzip halt nur den Teil aus:<br>
smartctl 7.5 2025-04-30 r5714 [x86_64-w64-mingw32-w11-24H2] (AppVeyor)
Copyright (C) 2002-25, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART Status not supported: Incomplete response, ATA output registers missing
SMART overall-health self-assessment test result: PASSED
Warning: This result is based on an Attribute check.
Da ginge wohl noch mehr, würde aber voraus setzen das man die SMART-Diagnosen des Laufwerkes einschaltet, das würde sich dann regelmäßig selbst prüfen.<br>
Das Einschalten ginge per<br>
smartctl --smart=on --offlineauto=on --saveauto=on /dev/pd7
das müsste man aber wohl bei jedem Reboot wiederholen.<br>
<br>
----
==Zwischenfazit==
Ob so eine Festplatte defekt ist, merkt man ja in der Regel daran, das diese ganz Tot ist - oder es "Bad Blocks" gibt, also Fehler beim Schreiben oder Lesen.<br>
Meine Festplatte 7 hat definitiv defekte Blöcke, trotzdem gibt es per PowerShell oder Smartmontools keine Hinweise darauf.<br>
CrystalDiskInfo hat drohendes Ungemach selbst daran ermittelt das der Wert bei {{code|Current_Pending_Sector}} auf 200 steht.<br>
Nehme ich jedenfalls an, denn es hinterlegt die Zeile Gelb. Zwei andere, 4TB Festplatten, WB-Red statt Blue haben da auch 200 drin stehen und das findet CrystalDiskInfo völlig unproblematisch.<br>
Die neue Seagate die ich als Ersatz gekauft habe, hat 100 darin.<br>
Puhh, also?<br>
<br>
Den Status abzufragen ist nicht weiter Problematisch, aber wenn die Defekte Festplatte hier mit "Grün" durchrutscht ist das ja auch nur bedingt hilfreich.<br>
Ich sollte also wohl auch noch die Ereignisanzeige von Windows beachten - da meldet mir das Betriebsystem ja wenn es einen fehlerhaften Block findet.<br>
Als mit {{code|robocopy}} die Festplatte weggesichert habe, stockte der Zwischendurch. Die Prozentzahl blieb für einige zeit (manchmal Minuten) stehen und in der Ereignisanzeige kamen die Fehlermeldungen. Bis auf die eine Datei konnte er nach mehreren Versuchen die Daten wohl doch noch lesen.<br>
<br>
Jetzt muss ich mir nur noch überlegen wie ich das ganze in ein Template baue, inklusive der Eventlog aka Ereignisanzeige-Meldungen.<br>
<br>
----
==Quellen==
* https://www.zabbix.com/forum/zabbix-help/486648-zabbix-agent2-on-windows-smart-monitoring
* https://www.zabbix.com/de/integrations/smart
* https://endurtech.com/check-hard-drive-smart-status-on-windows/
* https://stackoverflow.com/questions/58453447/smart-hard-drive-info-powershell

Aktuelle Version vom 22. November 2025, 17:41 Uhr

Changelog:

  • 22.11.2025 erste Version


Dieses Thema ist noch nicht vollständig! Es wird noch daran gearbeitet!


Vorwort

Durch Zufall hatte ich an meinem Heim-PC bemerkt das eine der 4 Festplatten kurz vorm Exitus war.
Dieser Artikel ist nun entstanden damit ich es auch später noch einmal wieder hinbekomme den Status der Festplatten zu überwachen.

Im Artikel arbeite ich mich an die Lösung heran, deswegen werden hier auch alle Einzelschritte erklärt und es gibt nicht nur das fertige Template.
Mit den Einzelschritten könnt Ihr auch prüfen was bei euch so möglich ist, bevor Ihr das Template einsetzt.


Ausgangslage

In meinem PC sind aktuell 9 Festplatten, davon ist einer ein USB-Stick (F:) und zwei sind USB-Laufwerke (Q: und U:):


Laufwerk Q: geht es nicht mehr so gut: (2x Screenshot wegen Deutsch und Englisch)


Und in der Tat hat Q: einige beschädigte Blöcke:


Bis auf eine Datei konnte ich noch alles lesen und wegkopieren (ja, ich habe natürlich auch noch ein Backup), er konnte das wohl bisher korrigieren.
Aber trotzdem würde ich das in Zukunft gerne eher bemerken.



Was geht per PowerShell?

Zuerst habe ich getestet was mit Windows Boardmitteln geht. Werkzeuge wie CrystalDiskInfo oder SmartMonTools greifen ja letztendlich auch nur auf Werte zu die im Betriebssystem irgendwo bereit stehen.
Für die nachfolgenden Befehle habe ich eine PowerShell-Konsole als Administrator geöffnet.

---

Get-Disk

liefert eine Liste aller Installierten Festplatten, NVMe, SSD, HDD aber auch USB-Sticks:

Number Friendly Name                      Serial Number                    HealthStatus         OperationalStatus      Total Size Partition
                                                                                                                                  Style
------ -------------                      -------------                    ------------         -----------------      ---------- ----------
1      ST4000DM005-2DP166                             ZDH1MEQW             Healthy              Online                    3.64 TB GPT
2      ST6000VN006-2ZM186                             ZVX08NJ7             Healthy              Online                    5.46 TB GPT
4      WD Blue SN570 1TB                  E823_8FA6_BF53_0001_001B_444A... Healthy              Online                  931.51 GB GPT
5      Realtek RTL9210B-CG                0000000000000000                 Healthy              Online                  931.51 GB GPT
3      SPCC Solid State Disk              B7A3078C0C5300219683             Healthy              Online                  476.94 GB MBR
0      WDC WD40EZRX-00SPEB0                    WD-WCC4E1375844             Healthy              Online                    3.64 TB GPT
6      WDC WD40 EFRX-68N32N0              RANDOM__A1E3A88F9D44             Healthy              Online                    3.64 TB GPT
7      WDC WD60 EZAZ-00SF3B0              RANDOM__C6D5CF0726F1             Healthy              Online                    5.46 TB GPT
8      Generic MassStorageClass           00000000CY06                     Healthy              Online                   29.12 GB MBR

Da gibt es dann auch schon einen HealthStatus, der aber auch für Disk 7, das ist Q:, auf Healthy steht, obwohl CrystalDiskInfo (und die Ereignisanzeige) das anders sieht.
Schauen wir uns mal die vollen Details von Disk 7 an:

Get-Disk 7 | Select-Object -Property "*"

Ausgabe:

DiskNumber            : 7
PartitionStyle        : GPT
ProvisioningType      : Fixed
OperationalStatus     : Online
HealthStatus          : Healthy
BusType               : USB
UniqueIdFormat        : Vendor Id
OfflineReason         :
ObjectId              : {1}\\DESKTOP-91MQDI1\root/Microsoft/Windows/Storage/Providers_v2\WSP_Disk.ObjectId="{a8f83b40-cb1e-11ec-886a-806e6f6e6963}:DI:\\?\scsi#disk&ven_wdc_wd60&prod_ezaz-00sf3b0#a&15d43e6a&0&000001#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}"
PassThroughClass      :
PassThroughIds        :
PassThroughNamespace  :
PassThroughServer     :
UniqueId              : WDC WD60EZAZ-00SF3B0    RANDOM__100B3B367A300001
AdapterSerialNumber   :
AllocatedSize         : 6001175126016
BootFromDisk          : False
FirmwareVersion       : 0009
FriendlyName          : WDC WD60 EZAZ-00SF3B0
Guid                  : {31d05481-f24d-42cf-81e4-e2c1b65601ac}
IsBoot                : False
IsClustered           : False
IsHighlyAvailable     : False
IsOffline             : False
IsReadOnly            : False
IsScaleOut            : False
IsSystem              : False
LargestFreeExtent     : 0
Location              : Integrated : Bus 0 : Device 0 : Function 4 : Adapter 3 : Port 0
LogicalSectorSize     : 512
Manufacturer          : WDC WD60
Model                 : EZAZ-00SF3B0
Number                : 7
NumberOfPartitions    : 1
Path                  : \\?\scsi#disk&ven_wdc_wd60&prod_ezaz-00sf3b0#a&15d43e6a&0&000001#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
PhysicalSectorSize    : 512
SerialNumber          : RANDOM__C6D5CF0726F1
Signature             :
Size                  : 6001175126016
PSComputerName        :
CimClass              : ROOT/Microsoft/Windows/Storage:MSFT_Disk
CimInstanceProperties : {ObjectId, PassThroughClass, PassThroughIds, PassThroughNamespace...}
CimSystemProperties   : Microsoft.Management.Infrastructure.CimSystemProperties

Tja, außer dem HealthStatus : Healthy' ist nicht viel zusehen.
Für mehr Daten gibt es den Befehl

Get-StorageReliabilityCounter

den wir am besten so aufrufen (für alle Festplatten):

Get-Disk | Get-StorageReliabilityCounter

Ausgabe:

Number Temperature ReadErrorsUncorrected Wear PowerOnHours
------ ----------- --------------------- ---- ------------
0                  0                     0    85404
3                                        0    39895
8                                        0
4                                        0
5                                        0
1                  0                     0    62432
2                  0                     0    2
7                  170                   0    33738
6                  0                     0    2537

Unsortiert, aber schon Besser, hier sind bei Disk 7 eindeutig Fehler zu sehen.
Disk 4, 5 und 8 haben keine PowerOnHours, 4 ist meine Boot-NVMe, 5 eine NVMe in einem externen USB-Gehäuse und 8 ist der USB-Stick. Holen wir uns mal alle Details von Laufwerk 7:

Get-Disk | Get-StorageReliabilityCounter | Select-Object -Property "*"

Ausgabe:

ObjectId                : {1}\\DESKTOP-91MQDI1\root/Microsoft/Windows/Storage/Providers_v2\SPACES_StorageReliabilityCounter.ObjectId="{a8f83b40-cb1e-11ec-886a-806e6f6e6963}:RC:\\?\scsi#disk&ven_wdc_wd60&prod_ezaz-00sf3b0#a&15d43e6a&0&000001#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}"
PassThroughClass        :
PassThroughIds          :
PassThroughNamespace    :
PassThroughServer       :
UniqueId                : {a8f83b40-cb1e-11ec-886a-806e6f6e6963}:RC:\\?\scsi#disk&ven_wdc_wd60&prod_ezaz-00sf3b0#a&15d43e6a&0&000001#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
DeviceId                : 7
FlushLatencyMax         : 0
LoadUnloadCycleCount    : 63361
LoadUnloadCycleCountMax :
ManufactureDate         :
PowerOnHours            : 33738
ReadErrorsCorrected     : 0
ReadErrorsTotal         : 170
ReadErrorsUncorrected   : 170
ReadLatencyMax          : 240
StartStopCycleCount     : 18786
StartStopCycleCountMax  :
Temperature             : 34
TemperatureMax          : 0
Wear                    : 0
WriteErrorsCorrected    :
WriteErrorsTotal        :
WriteErrorsUncorrected  :
WriteLatencyMax         : 295
PSComputerName          :
CimClass                : ROOT/Microsoft/Windows/Storage:MSFT_StorageReliabilityCounter
CimInstanceProperties   : {ObjectId, PassThroughClass, PassThroughIds, PassThroughNamespace...}
CimSystemProperties     : Microsoft.Management.Infrastructure.CimSystemProperties

Da hätten wir Schreib- und Lesefehler, sowohl Korrigierbare als nicht Korrigierbare, die Betriebsstunden und die Temperatur - als von mir gewählte, interessante Werte.
Das noch nicht der vollständige Umfang den z.B. CrystalDiskInfo bietet, aber doch schon mal gar nicht so schlecht.


Was gibt es über WMI?

Jetzt kommen zwar wieder PowerShell-Befehle, dieses nutzen wir aber um das WMI abzufragen. Das ginge grundsätzlich auch per wmic.exe, die ist aber seit einiger Zeit nicht mehr ab Werk installiert (Windows 11, Windows Server 2025), also nehmen wir gleich PowerShell:

Get-WmiObject -Class win32_diskdrive -Property STATUS

Ausgabe:

Partitions : 1
DeviceID   : \\.\PHYSICALDRIVE3
Model      : SPCC Solid State Disk
Size       : 512105932800
Caption    : SPCC Solid State Disk
Partitions : 1
DeviceID   : \\.\PHYSICALDRIVE8
Model      : Generic MassStorageClass USB Device
Size       : 31264289280
Caption    : Generic MassStorageClass USB Device
...
...

Die Festplatten 0 bis 8 finden sich auch hier wieder, als PHYSICALDRIVE0 bis PHYSICALDRIVE8
Schauen wir wieder bei Festplatte 7 was alles an Werten geht:

Get-WmiObject -Class win32_diskdrive -Filter "DeviceID like '%PHYSICALDRIVE7'"

gibt uns nur unsere einzelne Festplatte (%7 würde auch gehen wenn man nicht mehr als 9 Festplatten hat):

Partitions : 1
DeviceID   : \\.\PHYSICALDRIVE7
Model      : WDC WD60 EZAZ-00SF3B0 SCSI Disk Device
Size       : 6001172513280
Caption    : WDC WD60 EZAZ-00SF3B0 SCSI Disk Device

Und jetzt einmal alle Eigenschaften:

Get-WmiObject -Class win32_diskdrive -Filter "DeviceID like '%7'" | Select-Object -Property "*"

Ausgabe:

PSComputerName              : DESKTOP-91MQDI1
ConfigManagerErrorCode      : 0
LastErrorCode               :
NeedsCleaning               :
Status                      : OK
DeviceID                    : \\.\PHYSICALDRIVE7
StatusInfo                  :
Partitions                  : 1
BytesPerSector              : 512
ConfigManagerUserConfig     : False
DefaultBlockSize            :
Index                       : 7
InstallDate                 :
InterfaceType               : SCSI
MaxBlockSize                :
MaxMediaSize                :
MinBlockSize                :
NumberOfMediaSupported      :
SectorsPerTrack             : 63
Size                        : 6001172513280
TotalCylinders              : 729601
TotalHeads                  : 255
TotalSectors                : 11721040065
TotalTracks                 : 186048255
TracksPerCylinder           : 255
__GENUS                     : 2
__CLASS                     : Win32_DiskDrive
__SUPERCLASS                : CIM_DiskDrive
__DYNASTY                   : CIM_ManagedSystemElement
__RELPATH                   : Win32_DiskDrive.DeviceID="\\\\.\\PHYSICALDRIVE7"
__PROPERTY_COUNT            : 51
__DERIVATION                : {CIM_DiskDrive, CIM_MediaAccessDevice, CIM_LogicalDevice, CIM_LogicalElement...}
__SERVER                    : DESKTOP-91MQDI1
__NAMESPACE                 : root\cimv2
__PATH                      : \\DESKTOP-91MQDI1\root\cimv2:Win32_DiskDrive.DeviceID="\\\\.\\PHYSICALDRIVE7"
Availability                :
Capabilities                : {3, 4}
CapabilityDescriptions      : {Random Access, Supports Writing}
Caption                     : WDC WD60 EZAZ-00SF3B0 SCSI Disk Device
CompressionMethod           :
CreationClassName           : Win32_DiskDrive
Description                 : Laufwerk
ErrorCleared                :
ErrorDescription            :
ErrorMethodology            :
FirmwareRevision            : 0009
Manufacturer                : (Standardlaufwerke)
MediaLoaded                 : True
MediaType                   : External hard disk media
Model                       : WDC WD60 EZAZ-00SF3B0 SCSI Disk Device
Name                        : \\.\PHYSICALDRIVE7
PNPDeviceID                 : SCSI\DISK&VEN_WDC_WD60&PROD_EZAZ-00SF3B0\A&15D43E6A&0&000001
PowerManagementCapabilities :
PowerManagementSupported    :
SCSIBus                     : 0
SCSILogicalUnit             : 1
SCSIPort                    : 3
SCSITargetId                : 0
SerialNumber                : RANDOM__C6D5CF0726F1
Signature                   :
SystemCreationClassName     : Win32_ComputerSystem
SystemName                  : DESKTOP-91MQDI1
Scope                       : System.Management.ManagementScope
Path                        : \\DESKTOP-91MQDI1\root\cimv2:Win32_DiskDrive.DeviceID="\\\\.\\PHYSICALDRIVE7"
Options                     : System.Management.ObjectGetOptions
ClassPath                   : \\DESKTOP-91MQDI1\root\cimv2:Win32_DiskDrive
Properties                  : {Availability, BytesPerSector, Capabilities, CapabilityDescriptions...}
SystemProperties            : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers                  : {dynamic, Locale, provider, UUID}
Site                        :
Container                   :

Das sind zwar viele Werte - aber scheinbar nichts brauchbares.
Ok, nächster Ansatz, wir fragen den Treiber Treiber nach Fehlern:

Get-CimInstance -namespace root\wmi -class MSStorageDriver_FailurePredictStatus

Ausgabe:

Active         : True
InstanceName   : SCSI\Disk&Ven_WDC&Prod_WD40EZRX-00SPEB0\5&edbf5d4&0&000000_0
PredictFailure : False
Reason         : 0
PSComputerName :

Active         : True
InstanceName   : SCSI\Disk&Ven_&Prod_ST4000DM005-2DP1\5&edbf5d4&0&010000_0
PredictFailure : False
Reason         : 0
PSComputerName :

Active         : True
InstanceName   : SCSI\Disk&Ven_&Prod_ST6000VN006-2ZM1\5&edbf5d4&0&040000_0
PredictFailure : False
Reason         : 0
PSComputerName :

Active         : True
InstanceName   : SCSI\Disk&Ven_SPCC&Prod_Solid_State_Disk\5&edbf5d4&0&050000_0
PredictFailure : False
Reason         : 0
PSComputerName :

Tja, der letzte Fehler war vor einem Reboot des Rechners, hier ist gerade auch nicht viel zu holen.

Ich schweife mal ab und schaue ob ich etwas schönes finde wo ich den Laufwerken 0 bis 8 den passenden Laufwerksbuchstaben zuordnen kann:

Get-Disk 7 | Get-Partition | Select-Object -Property DiskNumber,DriveLetter

Ausgabe:

DiskNumber DriveLetter
---------- -----------
         7           Q

Das ist beim C: Laufwerk natürlich nicht so einfach da es dort mehr als eine Partition gibt.
Also folgender Aufruf:

Get-Disk 4 | Get-Partition | Where-Object -Property DriveLetter | Select-Object -Property DiskNumber,DriveLetter,Size

Ausgabe:

DiskNumber  : 4
DriveLetter : C
Size        : 998227241472

Der Filter listet nur Objekte auf bei denen auch ein DriveLetter vergeben ist. Das ist dann wieder Blöd wenn es 2 Partitionen mit Laufwerksbuchstaben auf einem Laufwerk gibt - aber so etwas habe ich schon seit Jahren nicht mehr gesehen, mit dem Fehler kann ich also leben.




Was geht per Smartmontool?

Diese Abfrage basiert auf dem CLI-Programm Smartmontools:

https://github.com/smartmontools/smartmontools

Die jeweils aktuelle Version findet Ihr unter Releases:

https://github.com/smartmontools/smartmontools/releases

Hinweis vorweg: per Parameter -json formatiert smartctl die Ausgabe passend so das wir diese auch leicht in Zabbix weiter verarbeiten könnten.
Nach der Installation - und wenn Ihr ausgewählt habt das der Programmpfad der PATH Variable hinzugefügt wird, könnt Ihr in einer Eingabeaufforderung die Ihr nach(!) der Installation als Administrator geöffnet habt, die SMART-Werte abfragen.

smartctl --scan

liefert uns eine Liste aller Laufwerke:

/dev/sda -d ata # /dev/sda, ATA device
/dev/sdb -d ata # /dev/sdb, ATA device
/dev/sdc -d ata # /dev/sdc, ATA device
/dev/sdd -d ata # /dev/sdd, ATA device
/dev/sde -d nvme # /dev/sde, NVMe device
/dev/sdf -d sntrealtek # /dev/sdf [USB NVMe Realtek], NVMe device
/dev/sdg -d sat # /dev/sdg [SAT], ATA device
/dev/sdh -d sat # /dev/sdh [SAT], ATA device
/dev/sdi -d scsi # /dev/sdi, SCSI device

und per

smartctl -i /dev/sdh

können wir auch wieder unsere Festplatte 7 abfragen (weil h der 7. Buchstabe ist):

smartctl 7.5 2025-04-30 r5714 [x86_64-w64-mingw32-w11-24H2] (AppVeyor)
Copyright (C) 2002-25, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Blue (SMR)
Device Model:     WDC WD60EZAZ-00SF3B0
Serial Number:    WD-WX72D600NJ65
LU WWN Device Id: 5 0014ee 26851786d
Firmware Version: 80.00A80
User Capacity:    6.001.175.126.016 bytes [6,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Form Factor:      3.5 inches
TRIM Command:     Available, deterministic, zeroed
Device is:        In smartctl database
ATA Version is:   ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Sat Nov 22 17:02:58 2025 MZ
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Puhh, mit den Zahlen die ich per PowerShell oder WMI bekomme, wäre mir lieber ... kein Problem, die Schreibweise ist wie folgt:

smartctl -i /dev/pd7

ergibt die gleiche Ausgabe. pd steht für pyhiscal drive
mit -i gibt es nur die allgemeinen Informationen, per

smartctl -a /dev/pd7

Ist die Ausgabe schon sehr viel länger:

smartctl 7.5 2025-04-30 r5714 [x86_64-w64-mingw32-w11-24H2] (AppVeyor)
Copyright (C) 2002-25, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Blue (SMR)
Device Model:     WDC WD60EZAZ-00SF3B0
Serial Number:    WD-WX72D600NJ65
LU WWN Device Id: 5 0014ee 26851786d
Firmware Version: 80.00A80
User Capacity:    6.001.175.126.016 bytes [6,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Form Factor:      3.5 inches
TRIM Command:     Available, deterministic, zeroed
Device is:        In smartctl database
ATA Version is:   ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Sat Nov 22 17:09:40 2025 MZ
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART Status not supported: Incomplete response, ATA output registers missing
SMART overall-health self-assessment test result: PASSED
Warning: This result is based on an Attribute check.

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                                        was never started.
                                        Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                (59700) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        ( 332) minutes.
Conveyance self-test routine
recommended polling time:        (   2) minutes.
SCT capabilities:              (0x3031) SCT Status supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   188   145   051    Pre-fail  Always       -       653
  3 Spin_Up_Time            0x0027   224   210   021    Pre-fail  Always       -       3800
  4 Start_Stop_Count        0x0032   082   082   000    Old_age   Always       -       18787
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   054   054   000    Old_age   Always       -       33739
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       533
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       38
193 Load_Cycle_Count        0x0032   179   179   000    Old_age   Always       -       63362
194 Temperature_Celsius     0x0022   115   099   000    Old_age   Always       -       35
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       170
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

SMART Error Log Version: 1
ATA Error Count: 1
        CR = Command Register [HEX]
        FR = Features Register [HEX]
        SC = Sector Count Register [HEX]
        SN = Sector Number Register [HEX]
        CL = Cylinder Low Register [HEX]
        CH = Cylinder High Register [HEX]
        DH = Device/Head Register [HEX]
        DC = Device Command Register [HEX]
        ER = Error register [HEX]
        ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 1 occurred at disk power-on lifetime: 33678 hours (1403 days + 6 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 40 e7 8f 40  Error:

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

The above only provides legacy SMART information - try 'smartctl -x' for more

Ganz schön viel, man kann die Current_Pending_Sector Werte sehen an denen CrystalDiskInfo rummäkelt.
Aber da steht auch nirgends das es dem Laufwerk schlecht gehen würde, die Werte aus der Tabelle müsste man selbst auswerten.
Da steht was von einem (!) Fehler weiter unten im Text, in der Ereignisanzeige stehen hunderte Einträge zu Bad Blocks.
Es gibt einen kurzen Heath-Check per

smartctl -H /dev/pd7

Der wirft im Prinzip halt nur den Teil aus:

smartctl 7.5 2025-04-30 r5714 [x86_64-w64-mingw32-w11-24H2] (AppVeyor)
Copyright (C) 2002-25, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Status not supported: Incomplete response, ATA output registers missing
SMART overall-health self-assessment test result: PASSED
Warning: This result is based on an Attribute check.

Da ginge wohl noch mehr, würde aber voraus setzen das man die SMART-Diagnosen des Laufwerkes einschaltet, das würde sich dann regelmäßig selbst prüfen.
Das Einschalten ginge per

smartctl --smart=on --offlineauto=on --saveauto=on /dev/pd7

das müsste man aber wohl bei jedem Reboot wiederholen.


Zwischenfazit

Ob so eine Festplatte defekt ist, merkt man ja in der Regel daran, das diese ganz Tot ist - oder es "Bad Blocks" gibt, also Fehler beim Schreiben oder Lesen.
Meine Festplatte 7 hat definitiv defekte Blöcke, trotzdem gibt es per PowerShell oder Smartmontools keine Hinweise darauf.
CrystalDiskInfo hat drohendes Ungemach selbst daran ermittelt das der Wert bei Current_Pending_Sector auf 200 steht.
Nehme ich jedenfalls an, denn es hinterlegt die Zeile Gelb. Zwei andere, 4TB Festplatten, WB-Red statt Blue haben da auch 200 drin stehen und das findet CrystalDiskInfo völlig unproblematisch.
Die neue Seagate die ich als Ersatz gekauft habe, hat 100 darin.
Puhh, also?

Den Status abzufragen ist nicht weiter Problematisch, aber wenn die Defekte Festplatte hier mit "Grün" durchrutscht ist das ja auch nur bedingt hilfreich.
Ich sollte also wohl auch noch die Ereignisanzeige von Windows beachten - da meldet mir das Betriebsystem ja wenn es einen fehlerhaften Block findet.
Als mit robocopy die Festplatte weggesichert habe, stockte der Zwischendurch. Die Prozentzahl blieb für einige zeit (manchmal Minuten) stehen und in der Ereignisanzeige kamen die Fehlermeldungen. Bis auf die eine Datei konnte er nach mehreren Versuchen die Daten wohl doch noch lesen.

Jetzt muss ich mir nur noch überlegen wie ich das ganze in ein Template baue, inklusive der Eventlog aka Ereignisanzeige-Meldungen.


Quellen