Fsck : can't open

Fsck : can't open - Hardware - Linux et OS Alternatifs

Marsh Posté le 12-08-2007 à 14:24:41    

Salut à tous,
 
J'ai eu un problème vendredi dernier avec un solaris 9 : après un reboot, le système n'a pas redémarré normalement, et un filesystem s'est corrompu.
On peut le voir dans les messages de boot : il y a des problèmes de watermark ( :??: ), produisant une checksum invalide (0x0000000, null quoi :/ )
 
Je fais donc ce que Solaris me conseille, à savoir un fsck sur la partition foireuse (/dev/dsk/md/d200)
Et là il me répond juste :
Fsck : can't open /dev/dsk/md/d200
 
Et là c'est l'impasse, si vous savez quoi essayer n'hésitez pas  
 
:hello:

Reply

Marsh Posté le 12-08-2007 à 14:24:41   

Reply

Marsh Posté le 12-08-2007 à 19:35:26    

Si quelqu'un sait aussi s'il existe des outils de diagnostic de disque dur, je pourrais vérifier si le problème vient pas des disques...
 
Merci :)

Reply

Marsh Posté le 13-08-2007 à 00:39:32    

:)

Reply

Marsh Posté le 13-08-2007 à 05:39:53    

ta partition est elle montée quand tu tentes ton fsck?


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 13-08-2007 à 07:14:59    

Que donnent les commandes metatstat et metadb? Tu as édité le vfstab à la main ? On dirait que qu'il y a un soucis sur le metadevice, peut-être que la base metadb est foireuse ou le mirroir ? Je demanderai à des collègues qui connaissent mieux Solaris que moi, ça m'intéresse aussi ;)


Message édité par Cruchot le 13-08-2007 à 07:21:20
Reply

Marsh Posté le 13-08-2007 à 09:22:43    

Alors, concernant la partition, je confirme qu'elle n'est pas montée quand je tente le fsck

 

Le metastat donne ça sur la partition incriminée :

Code :
  1. d200: Soft Partition
  2.     Device: d40
  3.     State: Okay
  4.     Size: 1048576 blocks (512 MB)
  5.         Extent              Start Block              Block count
  6.              0                       32                  1048576


Toutes les autres sont ok aussi
Apparemment, elle a un lien avec d40... je dois dire que j'y comprends pas grand chose. d40 est montée je crois c'est peut être pour ça que je peux pas fsck :??:

 

Autre truc très bizarre, voila le résultat d'un df -k :

Code :
  1. # df -k
  2. Filesystem            kbytes    used   avail capacity  Mounted on
  3. /dev/md/dsk/d0       4133838 3680340  412160    90%    /
  4. /proc                      0       0       0     0%    /proc
  5. mnttab                     0       0       0     0%    /etc/mnttab
  6. fd                         0       0       0     0%    /dev/fd
  7. /dev/md/dsk/d50      4133838 1400268 2692232    35%    /var
  8. swap                 10906720      80 10906640     1%    /var/run
  9. swap                 10906648       8 10906640     1%    /tmp
  10. /dev/md/dsk/d60      8263373 2295206 5885534    29%    /crash
  11. /dev/md/dsk/d201      245383    1238  219607     1%    /system
  12. /dev/dsk/c1t1d0s0    41311843 19871009 21027716    49%    /data
  13. /proc                      0       0       0     0%    /sites/ENV/proc
  14. /dev/dsk/c1t0d0s6    8263373 2295206 5885534    29%    /sas
  15. /dev/dsk/c1t0d0s4    45240929 1806420 42982100     5%    /oracle1
  16. /dev/dsk/c1t1d0s4    3101839  231931 2838890     8%    /sites
  17. /dev/dsk/c1t1d0s3    3101839  780216 2290605    26%    /gi-wu
 

Il y a deux types de structures qui cohabitent : des mirroirs et des partitions simples. C'est pas étrange ça ?

 

Quant à metadb, c'est du chinois pour moi :D

Code :
  1. # metadb
  2.         flags           first blk       block count
  3.      a m  p  luo        16              8192            /dev/dsk/c1t0d0s3
  4.      a    p  luo        8208            8192            /dev/dsk/c1t0d0s3
  5.      a    p  luo        16400           8192            /dev/dsk/c1t0d0s3

Message cité 1 fois
Message édité par Tharkun92 le 13-08-2007 à 09:29:02
Reply

Marsh Posté le 13-08-2007 à 10:25:14    

Je viens de trouver un peu plus d'explications sur le message de fsck sur le web :

 


fsck: Can't open /dev/dsk/variable

 

The fsck(1M) command cannot open the disk device, because although a similar filesystem exists, the partition specified does not.

 

Run the mount(1M) or the format(1M) command to see what filesystems are configured on the machine. Then run fsck again on an existing partition.

 

Donc cette partition n'existe pas en fait ? [:noxauror]


Message édité par Tharkun92 le 13-08-2007 à 10:28:53
Reply

Marsh Posté le 13-08-2007 à 10:28:30    

Pour info, voila l'erreur exacte que je vois lors du boot de la machine


WARNING: md: d200: open failed, watermark at block 31 for extent 0 does not have a valid checksum 0x00000000.
mount: I/O error
mount: cannot mount /dev/md/dsk/d200

 

Pas très parlant pour un non initié :)


Message édité par Tharkun92 le 13-08-2007 à 10:29:10
Reply

Marsh Posté le 13-08-2007 à 10:35:26    

pour ce qui est des tests, tu as la commande format (menu analyze) tu as des tests non destructeurs (il y en a aussi des destructeurs fait gaffe).

Reply

Marsh Posté le 13-08-2007 à 10:47:50    

tu dis que d40 est montee mais elle n'apparait pas au df, comment tu constates ca?
mais si d200 est un mirroir/raid/stripe/concat/... qui contient d40, il ne faut pas que d40 soit montee!
 

Tharkun92 a écrit :

Il y a deux types de structures qui cohabitent : des mirroirs et des partitions simples. C'est pas étrange ça ?


pour ca pas de souci, c'est tout a fait possible et normal!
 
de mon temps (ouaip, ca fait longtemps que j'ai pas touche une machine sun :( ) il existait un outil pour faire ca en graphique, c'est pas tip top mais ca permet de voir rapidement s'il y a un souci: metatool je crois, je sais pas si ca existe encore sous solaris 9.


Message édité par zoidberg le 13-08-2007 à 10:52:02
Reply

Marsh Posté le 13-08-2007 à 10:47:50   

Reply

Marsh Posté le 13-08-2007 à 11:15:45    

Je me suis planté en fait, d40 n'est apparemment pas montée, enfin pas que je sache :jap:
 
J'ai aussi lancé un metastat -p et ça donne ça :

# metastat -p
d70 -m d71 1
d71 1 1 c1t0d0s7
d60 -m d61 1
d61 1 1 c1t0d0s6
d50 -m d51 1
d51 1 1 c1t0d0s5
d10 -m d11 1
d11 1 1 c1t0d0s1
d0 -m d1 1
d1 1 1 c1t0d0s0
d201 -p d40 -o 1048640 -b 524288
d40 -m d41 1
d41 1 1 c1t0d0s4
d200 -p d40 -o 32 -b 1048576


 
Encore une fois, on voit que d200 se distingue, elle est pas comme les autres...
 
metastat la note comme "Soft Partition", au contraire des autres qui sont des "Mirror" ou "Submirror".
ça peut avoir une importance dans le problème ?
 

Reply

Marsh Posté le 13-08-2007 à 11:20:12    

Je poste aussi le metastat complet (un peu long, désolé :jap:)
 
On peut voir qu'il y a un lien entre d200, d201 et d40, mais je ne saurais pas vraiment dire lequel :)
 

# metastat
d70: Mirror
    Submirror 0: d71
      State: Okay
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 1058304 blocks (516 MB)
 
d71: Submirror of d70
    State: Okay
    Size: 1058304 blocks (516 MB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c1t0d0s7          0     No            Okay   Yes
 
 
d60: Mirror
    Submirror 0: d61
      State: Okay
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 16780224 blocks (8.0 GB)
 
d61: Submirror of d60
    State: Okay
    Size: 16780224 blocks (8.0 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c1t0d0s6          0     No            Okay   Yes
 
 
d50: Mirror
    Submirror 0: d51
      State: Okay
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 8395200 blocks (4.0 GB)
 
d51: Submirror of d50
    State: Okay
    Size: 8395200 blocks (4.0 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c1t0d0s5          0     No            Okay   Yes
 
 
d10: Mirror
    Submirror 0: d11
      State: Okay
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 16780224 blocks (8.0 GB)
 
d11: Submirror of d10
    State: Okay
    Size: 16780224 blocks (8.0 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c1t0d0s1          0     No            Okay   Yes
 
 
d0: Mirror
    Submirror 0: d1
      State: Okay
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 8395200 blocks (4.0 GB)
 
d1: Submirror of d0
    State: Okay
    Size: 8395200 blocks (4.0 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c1t0d0s0          0     No            Okay   Yes
 
 
d201: Soft Partition
    Device: d40
    State: Okay
    Size: 524288 blocks (256 MB)
        Extent              Start Block              Block count
             0                  1048640                   524288
 
d40: Mirror
    Submirror 0: d41
      State: Okay
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 91868928 blocks (43 GB)
 
d41: Submirror of d40
    State: Okay
    Size: 91868928 blocks (43 GB)
    Stripe 0:
        Device     Start Block  Dbase        State Reloc Hot Spare
        c1t0d0s4          0     No            Okay   Yes
 
 
d200: Soft Partition
    Device: d40
    State: Okay
    Size: 1048576 blocks (512 MB)
        Extent              Start Block              Block count
             0                       32                  1048576
 
Device Relocation Information:
Device   Reloc  Device ID
c1t0d0   Yes    id1,sd@SFUJITSU_MAP3735N_SUN72G_00Q0GGMG____

Reply

Marsh Posté le 13-08-2007 à 11:52:26    

zoidberg a écrit :

pour ce qui est des tests, tu as la commande format (menu analyze) tu as des tests non destructeurs (il y en a aussi des destructeurs fait gaffe).


Je suis en train de faire tourner un format > analyze > read :jap:

Reply

Marsh Posté le 13-08-2007 à 14:06:11    

Aucun bloc défectueux n'a été trouvé.
Je pense que ça élimine un problème hardware...

 

Je suis en train d'étudier ce que la commande metarecover peut faire.
Apparemment elle est faite pour réparer les Soft Partitions sur les md...


Message édité par Tharkun92 le 13-08-2007 à 14:13:56
Reply

Marsh Posté le 13-08-2007 à 14:28:31    

Code :
  1. # metarecover -n d200 -p
  2. Assertion failed: offset <= (1LL << (64 - DEV_BSHIFT)), file ../common/meta_sp.c, line 2419
  3. metarecover: Abort
  4. Abort (core dumped)


:D

Reply

Marsh Posté le 13-08-2007 à 15:06:42    

Pour la postérité :sarcastic: voila ce que j'ai fait :

 


# metarecover -v -n d40 -p
Verifying on-disk structures on d40.
found incorrect magic number 0, expected 20000127.
The following extent headers were found on d40.
                Name  Seq#    Type               Offset               Length
                NONE     0    FREE                    0                   31
d40: On-disk structures invalid or no soft partitions found.
metarecover: srv: d0: bad magic number in extent header

 

# metarecover -v d40 -p -m
d40: Validating soft partition metadb entries.

 

Verifying device d201.
d201: Status "Okay" is valid.
 Extent Number        Virtual Offset       Physical Offset                Length
             0                     0               1048640                524288

 

Verifying device d200.
d200: Status "Okay" is valid.
 Extent Number        Virtual Offset       Physical Offset                Length
             0                     0                    32               1048576
d40: Soft Partition metadb configuration is valid
Updating extent headers on device d40 from metadb.

 

The following extent headers will be written:
                Name  Seq#    Type               Offset               Length
                NONE     0    FREE                    0                   31
                d200     0   ALLOC                   31              1048577
                NONE     0    FREE              1048608                   31
                d201     0   ALLOC              1048639               524289
                NONE     0    FREE              1572928             90295999
                NONE     0     END             91868927                    1

 

WARNING: You are about to overwrite portions of d40
with soft partition metadata. The extent headers will be
written to match the existing metadb configuration.  If
the device was not previously setup with this
configuration, data loss may result.

 

Are you sure you want to do this (yes/no)? yes
d40: Soft Partitions recovered from metadb
#
#
# metarecover -v -n d40 -p
Verifying on-disk structures on d40.
The following extent headers were found on d40.
                Name  Seq#    Type               Offset               Length
                d200     0   ALLOC                   31              1048577
                d201     0   ALLOC              1048639               524289
                NONE     0     END             91868927                    1
                NONE     0    FREE              1572928             90295999
                NONE     0    FREE              1048608                   31
                NONE     0    FREE                    0                   31
Found 2 soft partition(s) on d40.
Checking sequence numbers.
d40: Validating soft partition metadb entries.

 

Verifying device d201.
d201: Status "Okay" is valid.
 Extent Number        Virtual Offset       Physical Offset                Length
             0                     0               1048640                524288

 

Verifying device d200.
d200: Status "Okay" is valid.
 Extent Number        Virtual Offset       Physical Offset                Length
             0                     0                    32               1048576
d40: Soft Partition metadb configuration is valid

 

d40: Verifying metadb allocations match extent headers.
Metadb extent:
                Name  Seq#    Type               Offset               Length
                d200     0   ALLOC                   31              1048577
Extent header extent:
                Name  Seq#    Type               Offset               Length
                d200     0   ALLOC                   31              1048577

 

Metadb extent:
                Name  Seq#    Type               Offset               Length
                d201     0   ALLOC              1048639               524289
Extent header extent:
                Name  Seq#    Type               Offset               Length
                d201     0   ALLOC              1048639               524289

 

d40: Soft Partition metadb matches extent header configuration


Message édité par Tharkun92 le 14-08-2007 à 21:37:57
Reply

Marsh Posté le 13-08-2007 à 20:12:22    

Hé bein merci :p Bravo je note tout ça  :jap:  Par contre on m'a dit que sur tes mirroirs n'étaient pas cohérents. En gros tu n'as qu'une patte pour chaque mirroir sur un unique disque. Peut-être qu'un disque a crashé ou que tu comptes en rajouter un plus tard ?


Message édité par Cruchot le 13-08-2007 à 20:14:10
Reply

Marsh Posté le 14-08-2007 à 21:48:02    

La suite :D

 

En fait, après avoir lancé ces commandes, j'ai pu lancer un fsck sur d200.

 

fsck plante parce qu'il ne trouve pas de superblock sur cette partition.
Heureusement ces superblocks sont apparemment backupés à différents endroits du disque, donc je lance une commande à base de newfs pour connaître les superblocks de backup et les indiquer à fsck.

 

Au bout du 3ème ou 4ème essai avec des superblocks différents, fsck se lance, mais le nombre d'erreurs sur la partition est énorme.
Je fais plusieurs essais mais au bout d'un moment j'ai pas d'autre choix que de laisser fsck faire son travail.
ça fait que finalement j'ai pu monter cette partition, mais maintenant elle est vide :p

 

Pas grave, je me dis que je pourrai surement la backuper avec le submirror d41, après tout ça sert à ça les mirrors...

 

Je reboote et ô joie, ce sont 2 autres partitions différentes qui se pètent la gueule [:tinostar]

 

fsck m'écrase tout encore une fois :/ et reboot.

 

Pour finir maintenant la machine ne boote plus, et quand je m'y connecte en hyperterminal avec le serial management, tout ce que j'arrive à avoir c'est des "{1} ok"

 

Donc à ce moment là j'ai raccroché. Mon taf c'est du fonctionnel, et auparavant je faisais du java, donc j'ai décidé de faire appel à des professionnels aujourd'hui :)

 

Voila, merci pour vos conseils en tout cas :hello:


Message édité par Tharkun92 le 14-08-2007 à 21:49:00
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed