Overblog Tous les blogs Top blogs Maison, Déco & Bricolage Tous les blogs Maison, Déco & Bricolage
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

Le blog de nitocris

Le blog de nitocris

Astronomie Informatique et divers bricolages.


Debug d'erreur disque physique et Reiserfs

Publié par nitocris sur 25 Mars 2012, 11:25am

Catégories : #Linux

Un check du disque indique une erreur physique :

 root@freenas:~# smartctl -l selftest /dev/sdc
smartctl 5.40 2010-03-16 r3077 [i686-pc-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed: read failure 90% 2675 821561257

On relance le test pour avoir une information recente :

 

 root@freenas:/var/lib/ntp# smartctl -t short /dev/sdc
smartctl 5.40 2010-03-16 r3077 [i686-pc-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Sun Mar 25 11:49:00 2012

Use smartctl -X to abort test

 

Quelques minutes après

 

 root@freenas:/var/lib/ntp# smartctl -l selftest /dev/sdc
smartctl 5.40 2010-03-16 r3077 [i686-pc-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed: read failure 90% 2677 821561257
# 2 Short offline Completed: read failure 90% 2675 821561257

 

 

On verifie si les espace on déjà été réalloués :ici ce n'est pas le cas, les valeurs son à 0

 

 root@freenas:~# smartctl -A /dev/sdc |grep Reallocated 
 ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 
 
5 Reallocated_Sector_Ct 0x0033 252 252 010 Pre-fail Always - 0
196 Reallocated_Event_Count 0x0032 252 252 000 Old_age Always - 0

On Verifie sur quelle partition : ici /dev/sdc5

 root@freenas:~# fdisk -lu /dev/sdc

Disque /dev/sdc: 1000.2 Go, 1000204886016 octets
255 têtes, 63 secteurs/piste, 121601 cylindres, total 1953525168 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x000c9c9b

Périphérique Amorce Début Fin Blocs Id Système
/dev/sdc1 2048 4196351 2097152 82 Linux swap / Solaris
La partition 1 ne se termine pas sur une frontière de cylindre.
/dev/sdc2 30371840 1953523711 961575936 5 Étendue
/dev/sdc3 * 4196352 30371839 13087744 83 Linux
/dev/sdc5 30373888 1953523711 961574912 83 Linux

 

On verifie le type de formatage

 

root@freenas:~# blkid | grep /dev/sdc5
/dev/sdc5: UUID="d970d235-6438-43d9-b6dc-8904c67ca05e" TYPE="reiserfs"

 

On demonte la paritition et on effectue un check "rapide" en lecture

 

 root@freenas:~# umount /dev/sdc5
root@freWill read-only check consistency of the filesystem on /dev/sdc5
Will put log info to 'stdout'

Do you want to run this program?[N/Yes] (note need to type Yes if you do):Yes
enas:~# reiserfsck /dev/sdc5
 ###########
reiserfsck --check started at Sun Mar 25 11:03:39 2012
###########
Replaying journal: Done.
Reiserfs journal '/dev/sdc5' in blocks [18..8211]: 0 transactions replayed
Checking internal tree.. finished
Comparing bitmaps..finished
Checking Semantic tree:
finished
No corruptions found
There are on the filesystem:
Leaves 164119
Internal nodes 987
Directories 190
Other files 1810
Data block pointers 165948281 (70011999 of them are zero)
Safe links 0
###########
reiserfsck finished at Sun Mar 25 11:20:05 2012
###########

 

Reparation

source : http://smartmontools.sourceforge.net/badblockhowto.html
[Step 1] On recupere la taille des secteurs
 root@freenas:~# debugreiserfs /dev/sdc5 | grep '^Blocksize'
debugreiserfs 3.6.21 (2009 www.namesys.com)
Blocksize: 4096
[Step 2] On calcul le nombre de secteurs

Le debut de la partition : 30373888

Le secteur en erreur : 821561257

Taille des block : 4096

 # echo "(821561257-30373888)*512/4096" | bc -l
98898421.12500000000000000000

On Verifie que cette valeur est plus petite que le nombre de block de la partition (98 898 421<=240 393 728)

 
root@freenas:~# debugreiserfs /dev/sdc5 | grep "Count of blocks on the device"
debugreiserfs 3.6.21 (2009 www.namesys.com)

Count of blocks on the device: 240393728
[Step 3] On cherche des infos sur ce block

root@freenas:~# debugreiserfs -l 98898421 /dev/sdc5
debugreiserfs 3.6.21 (2009 www.namesys.com)

Filesystem state: consistent

 

Ici il semble qe le block ne soit pas alloué.

 

Alors on fait une recherche autour en mode non destructif :

 

 root@freenas:~# badblocks -b 4096 -p 3 -s -v -n /dev/sdc5 `expr 98898421 + 100` `expr 98898421 - 100`
Vérification des blocs défectueux dans un mode non destructif de lecture-écriture
Du bloc 98898321 au bloc 98898521

[Step 4-A] Reallocation
 On trouve aucun secteur defectuex, alors on force la ré-alloction : 
root@freenas:/var/lib/ntp# dd if=/dev/zero of=/dev/sdc5 count=1 bs=4096 seek=98898421
1+0 enregistrements lus
1+0 enregistrements écrits
4096 octets (4,1 kB) copiés, 0,000565237 s, 7,2 MB/s


[Step 4-A] Error
 root@freenas:~# badblocks -b 4096 -p 3 -s -v -n /dev/sdc5 $((98982613+10)) $((98982613-10))
Vérification des blocs défectueux dans un mode non destructif de lecture-
écriture
Du bloc 98982603 au bloc 98982623
Vérification des blocs défectueux (test non destructif de lecture-écriture)
Test en cours avec un motif aléato989826130% effectué, 0:19 écouléulé
complété
Passe complétée, 1 blocs défectueux repérés.

debugreiserfs -1 98982613 /dev/sdc5
debugreiserfs 3.6.21 (2009 www.namesys.com)

98982613 is used in ondisk bitmap

bread: Cannot read the block (98982613): (Input/output error).

Abandon



Pour être informé des derniers articles, inscrivez vous :
Commenter cet article

Archives

Nous sommes sociaux !

Articles récents