Zabbix:Template Windows SMART-Werte Festplatten: Unterschied zwischen den Versionen
Aus znilwiki
BLinz (Diskussion | Beiträge) |
BLinz (Diskussion | Beiträge) |
||
| (10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 11: | Zeile 11: | ||
---- | ---- | ||
==Ausgangslage== | ==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> | ||
<br> | <br> | ||
---- | ---- | ||
==Was geht per PowerShell?== | ==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] | 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 | https://github.com/smartmontools/smartmontools | ||
Die jeweils aktuelle Version findet Ihr unter Releases:<br> | Die jeweils aktuelle Version findet Ihr unter Releases:<br> | ||
https://github.com/smartmontools/smartmontools/releases | 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== | ==Quellen== | ||
Aktuelle Version vom 22. November 2025, 17:41 Uhr
Changelog:
- 22.11.2025 erste Version
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.

