DEBUGFS : déterminé l'inode défectueuse en /dev/sda1

Salut,

[code][18:49:03] # fdisk -l

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00097fad

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 622073855 311035904 83 Linux
/dev/sda2 622075902 625141759 1532929 5 Extended
Partition 2 does not start on physical sector boundary.
/dev/sda5 622075904 625141759 1532928 82 Linux swap / Solaris
[18:49:04] # [/code]

[code][18:49:27] # smartctl -l selftest /dev/sda
smartctl 5.41 2011-06-09 r3365 [i686-linux-3.12-0.bpo.1-686-pae] (local build)
Copyright © 2002-11 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% 2492 7884288

[18:49:30] # [/code]

J’ai trouvé cette formule sur la toile.

[ul][mono]Déterminer dans quel bloc se trouve le secteur fautif.

La formule est : b = (int)((L-S)*512/B), avec:

b = Bloc du File System
B = Taille du bloc en octets (4096)
L = LBA du mauvais secteur
S = Secteur de début de la partition, tel que le donne la commande fdisk -l
(int) pour prendre la partie entière[/mono][/ul]

Or, le premier secteur de la partition /dev/sda1 est 2048, comment appliqué cette méthode de calcul dans cette situation ?


Note : pour peaufiner j’ai lancé [mono]badblocks[/mono] hier, il tourne encore …

[code][13:41:05] ~ # badblocks -s -v /dev/sdb
Vérification des blocs 0 à 312571223
Vérification des blocs défectueux (test en mode lecture seule) : 3942144 effectué, 1:35 écoulé. (0/0/0 erreurs)

[…]

272623126ffectué, 20:14:27 écoulé. (2766/0/0 erreurs)
272623127ffectué, 20:14:43 écoulé. (2767/0/0 erreurs)
272623796ffectué, 20:15:00 écoulé. (2768/0/0 erreurs)
[/code]

Pour elle ne marcherait pas telle que? Elle te donne le numéro de bloc (logique) en fonction du physique et me semble cohérente. Cela donnerait 985280

C’est son retour qui me laisse perplexe.

[mono][11:32:56] ~ # debugfs
debugfs 1.42.5 (29-Jul-2012)
debugfs: open /dev/sda1
debugfs: testb 985280
Block 985280 not in use
debugfs: icheck 985280
Block Inode number
985280
debugfs: q
[11:34:39] ~ #[/mono]

Ça veut dire que c’est un bloc libre non?

Je pensais, qu’avant de faire le calcul, il faudrait s’assurer de la taille de [mono]block[/mono] utilisé par le système de fichier de la partition [mono]/dev/sda1[/mono]

J’ai fait comme qui dirait, un blocage.

Merci.


[12:48:17]:~$ echo "(7884288-2048)*512/4096" | bc -l 985280.00000000000000000000 [12:48:28]:~$