Αν βρείτε αυτόν τον οδηγό χρήσιμο, μπορείτε να τον προσθέσετε στα αγαπημένα σας θέματα του λογαριασμού σας στο forum, ώστε ή να ανατρέχετε εύκολα σε αυτόν ανεξάρτητα από το αν υπάρχει στους σελιδοδείκτες του browser σας, ή να τον βρίσκετε αμέσως και να τον προτείνετε σε κάποιον χρήστη. Δείτε εδώ πως μπορείτε να το κάνετε αυτό.
Σε ένα από τα παλαιότερα θέματα που δυστυχώς χάθηκαν λόγω της αστοχίας του σκληρού δίσκου στον server που στεγάζει το forum μας, είχα αναφέρει πως είχα στην κατοχή μου έναν προβληματικό δίσκο Seagate μα αρκετούς bad sectors, καθώς και έναν πρόχειρο τρόπο να αποφύγω κάποιες δυσλειτουργίες.
Παρακάτω, θα δούμε έναν τρόπο με τον οποίο μπορούμε να αποκαταστήσουμε τη λειτουργία ενός δίσκου Seagate στην περίπτωση που έχει αρκετούς bad sectors.
Δυστυχώς, θα καλυφθεί μόνο η συγκεκριμένη μάρκα δίσκων μιας και οι δίσκοι μου είναι 2 Seagate, οπότε δεν έχω κάνει έρευνα για άλλες μάρκες.
H Seagate αναφέρει πως το παρακάτω εργαλείο είναι κατάλληλο και για δίσκους Maxtor. Δεν το έχω δοκιμάσει, αλλά κάτι παραπάνω θα ξέρει η Seagate.
Στον παρακάτω οδηγό δεν θα αναφέρω τίποτα για backup, θεωρώ αυτονόητο πως οποιοσδήποτε κάνει τέτοιου είδους εργασίες με σκληρούς δίσκους, έχει ήδη λάβει τα μέτρα του.
Ο «ασθενής» είναι ένας σκληρός δίσκος Seagate Barracuda χωρητικότητας 1ΤΒ, ο οποίος ξεκίνησε τη «σταδιοδρομία» του ως USB εξωτερικός δίσκος μάρκας TOSHIBA.
Για τη λήψη των S.M.A.R.T. data, χρησιμοποιώ συνήθως την εφαρμογή GSmartControl, η οποία είναι διαθέσιμη στο Κέντρο λογισμικού Ubuntu. Ο έλεγχος του δίσκου, μπορεί να γίνει και μέσω τερματικού. Δείτε εδώ πως.
Τα δεδομένα S.M.A.R.T. του, είναι τα παρακάτω (13 Δεκεμβρίου 2012):
- Κώδικας: Επιλογή όλων
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.7.0-compiled] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Model Family: Seagate Barracuda 7200.12
Device Model: ST31000528AS
Serial Number: 9VP600HD
LU WWN Device Id: 5 000c50 0201aee01
Firmware Version: CC44
User Capacity: 1.000.204.886.016 bytes [1,00 TB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: 8
ATA Standard is: ATA-8-ACS revision 4
Local Time is: Thu Dec 13 23:04:59 2012 EET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x82) Offline data collection activity
was completed without error.
Auto Offline Data Collection: Enabled.
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: ( 609) 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: ( 1) minutes.
Extended self-test routine
recommended polling time: ( 198) minutes.
Conveyance self-test routine
recommended polling time: ( 2) minutes.
SCT capabilities: (0x103f) SCT Status supported.
SCT Error Recovery Control supported.
SCT Feature Control supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 117 099 006 Pre-fail Always - 163929509
3 Spin_Up_Time 0x0003 094 094 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 951
5 Reallocated_Sector_Ct 0x0033 079 079 036 Pre-fail Always - 890
7 Seek_Error_Rate 0x000f 057 044 030 Pre-fail Always - 584192010974
9 Power_On_Hours 0x0032 091 091 000 Old_age Always - 8734
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 951
183 Runtime_Bad_Block 0x0000 100 100 000 Old_age Offline - 0
184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0
187 Reported_Uncorrect 0x0032 059 059 000 Old_age Always - 41
188 Command_Timeout 0x0032 100 099 000 Old_age Always - 4295032840
189 High_Fly_Writes 0x003a 073 073 000 Old_age Always - 27
190 Airflow_Temperature_Cel 0x0022 069 048 045 Old_age Always - 31 (Min/Max 20/32)
194 Temperature_Celsius 0x0022 031 052 000 Old_age Always - 31 (0 13 0 0)
195 Hardware_ECC_Recovered 0x001a 029 023 000 Old_age Always - 163929509
197 Current_Pending_Sector 0x0012 098 097 000 Old_age Always - 95
198 Offline_Uncorrectable 0x0010 098 097 000 Old_age Offline - 95
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 118657061497881
241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 3311077916
242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 2915411851
SMART Error Log Version: 1
ATA Error Count: 41 (device log contains only the most recent five errors)
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 41 occurred at disk power-on lifetime: 7777 hours (324 days + 1 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 ff ff ff 0f Error: UNC at LBA = 0x0fffffff = 268435455
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
25 00 70 ff ff ff ef 00 00:57:46.814 READ DMA EXT
27 00 00 00 00 00 e0 00 00:57:46.788 READ NATIVE MAX ADDRESS EXT
ec 00 00 00 00 00 a0 00 00:57:46.780 IDENTIFY DEVICE
ef 03 46 00 00 00 a0 00 00:57:46.732 SET FEATURES [Set transfer mode]
27 00 00 00 00 00 e0 00 00:57:46.668 READ NATIVE MAX ADDRESS EXT
Error 40 occurred at disk power-on lifetime: 7777 hours (324 days + 1 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 ff ff ff 0f Error: UNC at LBA = 0x0fffffff = 268435455
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
25 00 70 ff ff ff ef 00 00:57:43.866 READ DMA EXT
27 00 00 00 00 00 e0 00 00:57:43.840 READ NATIVE MAX ADDRESS EXT
ec 00 00 00 00 00 a0 00 00:57:43.832 IDENTIFY DEVICE
ef 03 46 00 00 00 a0 00 00:57:43.784 SET FEATURES [Set transfer mode]
27 00 00 00 00 00 e0 00 00:57:43.720 READ NATIVE MAX ADDRESS EXT
Error 39 occurred at disk power-on lifetime: 7777 hours (324 days + 1 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 ff ff ff 0f Error: UNC at LBA = 0x0fffffff = 268435455
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
25 00 70 ff ff ff ef 00 00:57:40.954 READ DMA EXT
27 00 00 00 00 00 e0 00 00:57:40.927 READ NATIVE MAX ADDRESS EXT
ec 00 00 00 00 00 a0 00 00:57:40.919 IDENTIFY DEVICE
ef 03 46 00 00 00 a0 00 00:57:40.872 SET FEATURES [Set transfer mode]
27 00 00 00 00 00 e0 00 00:57:40.807 READ NATIVE MAX ADDRESS EXT
Error 38 occurred at disk power-on lifetime: 7777 hours (324 days + 1 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 ff ff ff 0f Error: UNC at LBA = 0x0fffffff = 268435455
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
25 00 70 ff ff ff ef 00 00:57:38.058 READ DMA EXT
27 00 00 00 00 00 e0 00 00:57:38.031 READ NATIVE MAX ADDRESS EXT
ec 00 00 00 00 00 a0 00 00:57:38.023 IDENTIFY DEVICE
ef 03 46 00 00 00 a0 00 00:57:37.975 SET FEATURES [Set transfer mode]
27 00 00 00 00 00 e0 00 00:57:37.911 READ NATIVE MAX ADDRESS EXT
Error 37 occurred at disk power-on lifetime: 7777 hours (324 days + 1 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 ff ff ff 0f Error: UNC at LBA = 0x0fffffff = 268435455
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
25 00 70 ff ff ff ef 00 00:57:35.150 READ DMA EXT
27 00 00 00 00 00 e0 00 00:57:35.123 READ NATIVE MAX ADDRESS EXT
ec 00 00 00 00 00 a0 00 00:57:35.115 IDENTIFY DEVICE
ef 03 46 00 00 00 a0 00 00:57:35.067 SET FEATURES [Set transfer mode]
27 00 00 00 00 00 e0 00 00:57:35.003 READ NATIVE MAX ADDRESS EXT
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 8734 -
# 2 Conveyance offline Completed without error 00% 8734 -
# 3 Short offline Aborted by host 80% 3430 -
# 4 Short offline Completed without error 00% 2056 -
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.
Δεν φαίνεται καλή η κατάσταση...
Επόμενη μέτρηση (8 Ιανουαρίου 2013):
Η κατάσταση του δίσκου φαίνεται να επιδεινώνεται, οπότε αποφάσισα να ασκοληθώ λίγο πιο σοβαρά με το θέμα.
Εδώ να σημειώσω, πως 908 Reallocated Sectors και 78 Current Pending Sectors (σύνολο 986) φαίνονται πολλοί, αλλά ουσιαστικά μιλάμε για 986Χ512 bytes = ούτε καν μισό megabyte στην ουσία, χωρητικότητα μηδαμινή μπροστά στο 1ΤΒ του δίσκου (ο συγκεκριμένος δίσκος έχει συνολικά 1953525167 sectors)
Για την αποκατάσταση χρησιμοποιήθηκε το proprietary εργαλείο της Seagate SeaTools και συγκεκριμένα η DOS έκδοσή του (υπάρχει και έκδοση για Windows).
Από τη σελίδα του μπορείτε επίσης να κατεβάσετε και έναν οδηγό χρήσης του εργαλείου (ή πατήστε εδώ).
Οι λόγοι που επιλέχθηκε αυτό το εργαλείο έναντι μιας λύσης μέσω smartmontools, είναι:
- Εμπιστοσύνη στο εργαλείο της κατασκευάστριας εταιρείας
- Μικρότερο κομμάτι τεκμηρίωσης για διάβασμα.
- Πάντα μου άρεσαν τα εργαλεία σε DOS, μου θυμίζουν την εποχή των 8 και 16 bit ΙΒΜ-συμβατών (έτσι λέγαμε τότε) με τους Intel 8086 και Intel 8088.
Ξεκινάμε λοιπόν, κατέβηκε το .iso αρχείο από την ιστοσελίδα (πατήστε εδώ για να κατεβάσετε το αρχείο .iso) και γράφτηκε χρησιμοποιώντας την εφαρμογή k3b σε ένα CD χρησιμοποιώντας τη χαμηλότερη ταχύτητα εγγραφής. Στη συνέχεια έγινε επανεκκίνηση ώστε να εκκινήσει ο υπολογιστής με το Live CD της εφαρμογής SeaTools for DOS.
Εδώ, να σημειώσω πως όλες αυτές οι εργασίες που αφορούν δίσκους είναι πολύ χρονοβόρες, αν χρειάζεστε τον υπολογιστή σας προγραμματίστε τις για μια άλλη μέρα!
Οι παρακάτω φωτογραφίες από το SeaTools for DOS είναι κακής ποιότητας γιατί δεν είναι screenshots (δεν υπάρχει τέτοια δυνατότητα), αλλά φωτογραφίες της οθόνης από το κινητό με επεξεργασία στο GIMP ώστε να γίνουν λίγο πιο ευδιάκριτες.
Εκκίνηση λοιπόν με το Live CD και αφού επιλέχθηκε ο σωστός δίσκος (ST31000528A5), ενεργοποιήθηκε η λειτουργία LONG TEST:
Τρεις περίπου ώρες (!!!) αργότερα, το αποτέλεσμα πως ο δίσκος απέτυχε στον έλεγχο:
Εδώ, εμφανίζεται η επιλογή να διορθωθούν τα σφάλματα του δίσκου, ανακατανέμοντας τους προβληματικούς τομείς σε άλλους.
Το πιθανότερο είναι πως αν αυτοί οι τομείς έχουν δεδομένα από κάποιο αρχείο, τότε αυτό το αρχείο θα χαθεί.
Επιλέγουμε την ανακατανομή των προβληματικών τομέων.
Εδώ θα μπορούσαμε να θεωρήσουμε πως η εργασία μας τελείωσε, οι διαδικασίες που περιγράφονται παρακάτω είναι προσωπική επιλογή για ένα παραπάνω περιθώριο ασφαλείας.
Επόμενη κίνηση, είναι να γίνει μια πλήρης διαγραφή (FULL ERASE) του δίσκου. Σύμφωνα και με τη Seagate, κάποιες φορές η πλήρης διαγραφή του δίσκου αρκεί για να διορθώσει κάποια σφάλματα.
Προσέξτε στη φωτογραφία πόση ώρα έκανε να σβηστεί ο δίσκος (υπολογίστε 2 ώρες λιγότερες, λόγω της ενδιάμεσης προσαρμογής του ρολογιού από UTC σε ώρα Ελλάδος)!
Επόμενη κίνηση, η μείωση της χωρητικότητας του δίσκου (με το σκεπτικό πως αν υπάρχει αρκετός μη χρησιμοποιούμενος χώρος, ίσως υπάρχει μεγαλύτερο περιθώριο για ανακατανομή προβληματικών τομέων).
Η νέα χωρητικότητα εισάγεται χειροκίνητα και υπολογίζεται σε τομείς.
Επιλέχθηκε χωρητικότητα 1887436800 τομέων, ή στα Ελληνικά 900Gib (ενδεικτικά 1GiB=2097152 sectors = 1024MiB = 1024 X 1024 KB)
Αυτή είναι γρήγορη διαδικασία.
Τελευταία ενέργεια, άλλη μια πλήρη σάρωση του δίσκου με τη νέα πλέον χωρητικότητα:
Τα αποτελέσματα είναι καλά (PASSED) όπως δείχνει και η παρακάτω φωτογραφία:
Αφού έχουμε φάει λοιπόν τη μέρα μας χωρίς υπολογιστή, ήρθε πλέον η ώρα να εκκινήσουμε το αγαπημένο μας Ubuntu και να δούμε τι καταφέραμε:
Πρώτα ένας έλεγχος με το GsmartControl:
Εδώ, παρατηρούμε πως αυξήθηκε ο αριθμός των bad sectors σε 1035. Υποθέτω πως κάτι τέτοιο είναι μάλλον λογικό μετά από την ταλαιπωρία τόσων ωρών συνεχόμενων εγγραφών-ελέγχων του δίσκου, ενώ οι τιμές Current Pending Sector και Offline Uncorrectable έχουν πλέον μηδενιστεί.
Επόμενο βήμα, ένας έλεγχος της ταχύτητας του δίσκου. Χρησιμοποιείται το εργαλείο δίσκων του Gnome:
Οπότε όπως μας δείχνει πλέον και το Gparted, έχουμε πλέον έναν εντελώς κενό (χωρίς καν Πίνακα κατάτμησης - Partition Table) σκληρό δίσκο χωρητικότητας 900GiB:
Η κατάσταση του δίσκου θα συνεχίσει (φυσικά!!) να παρακολουθείται, φυσικά κάποια στιγμή θα χρειαστεί η αντικατάστασή του, μάλλον όμως έχει πάρει πλέον μια χρονική παράταση χρήσης.