Pb boot Solaris 8 (Sunfire V100)

Résolu
Bonjour,

Je suis une nouvelle fois en difficulté sur une Solaris 8 Suite à un reboot de ma machine (init 6). Je me suis connecté via le port console (série), sur mon invite LOM je tape break pour atterrir sur l'invit de boot. Quand je tape boot, j'ai le message suivant :
ok boot
Resettin
LOM event: +9d+21h4m19s host reset
g ...


Sun Fire V100 (UltraSPARC-IIe 548MHz), No Keyboard
OpenBoot 4.0, 1024 MB memory installed, Serial #56370583.
Ethernet address 0:3:ba:5c:25:97, Host ID: 835c2597.



Executing last command: boot
Boot device: disk  File and args:
SunOS Release 5.8 Version Generic_108528-13 64-bit
Copyright 1983-2001 Sun Microsystems, Inc.  All rights reserved.
configuring IPv4 interfaces: dmfe0 dmfe0:1 dmfe0:10ifconfig: ccs-emsm: bad addre
ss
 dmfe0:11 dmfe0:2 dmfe0:3 dmfe0:4 dmfe0:5 dmfe0:6 dmfe0:7 dmfe0:8 dmfe0:9.
/etc/rcS.d/S30network: shcat: not found
Hostname: unknown
/etc/rcS.d/S30rootusr: readvfstab: not found
/etc/rcS.d/S30rootusr: readvfstab: not found
/sbin/rcS: /usr/bin/loadkeys: not found
WARNING: /proc could not be mounted
/sbin/swapadd: expr: not found
/sbin/swapadd: swap: not found

WARNING - /usr/sbin/fsck not found.  Most likely the
mount of /usr failed or the /usr filesystem is badly
damaged.  The system is being halted.  Either reinstall
the system or boot with the -b option in an attempt
to recover.

syncing file systems... done
Program terminated
ok


J'ai donc tenté comme indiqué la commande boot -b puis de me connecter en root :
ok boot -b
Resettin
LOM event: +9d+21h6m52s host reset
g ...


Sun Fire V100 (UltraSPARC-IIe 548MHz), No Keyboard
OpenBoot 4.0, 1024 MB memory installed, Serial #56370583.
Ethernet address 0:3:ba:5c:25:97, Host ID: 835c2597.



Executing last command: boot -b
Boot device: /pci@1f,0/ide@d/disk@2,0  File and args: -b
SunOS Release 5.8 Version Generic_108528-13 64-bit
Copyright 1983-2001 Sun Microsystems, Inc.  All rights reserved.
/
INIT: Cannot create /var/adm/utmpx

INIT: SINGLE USER MODE

Type control-d to proceed with normal startup,
(or give root password for system maintenance):
INIT: Cannot access /var/adm/utmpx, remaining in single user mode.

INIT: SINGLE USER MODE

Type control-d to proceed with normal startup,
(or give root password for system maintenance): Login incorrect

Type control-d to proceed with normal startup,
(or give root password for system maintenance):
single-user privilege assigned to /dev/console.
Entering System Maintenance Mode

Dec 24 10:56:54 su: 'su root' succeeded for root on /dev/console
su: No shell

INIT: SINGLE USER MODE

Type control-d to proceed with normal startup,
(or give root password for system maintenance):


Du coup je suis bloqué puisque je n'arrive pas à me connecter sur ma Solaris pour pouvoir modifier ces paramètres. Vais-je être obligé de démarrer depuis un CD ? Si oui, comment m'y prendre svp pour réparer ça et sinon comment faire avant le tout premier reboot pour éviter cette situation bloquante (car j'ai 5 autres serveurs de la même config à redémarrer je ne voudrais pas qu'ils me fassent tous celà !)

Merci d'avance.

26 réponses

Résumé de la discussion

Un redémarrage de Solaris 8 génère des échecs de démarrage imputables aux scripts de démarrage dans rcS.d et à des liens incorrects vers /etc/init.d qui perturbent le montage système. La solution consiste à restaurer les liens symboliques dans rcS.d pointant vers les scripts de /etc/init.d, plutôt que de dupliquer les fichiers, afin de rétablir l’ordre d’exécution du démarrage Solaris. En pratique, le démarrage est devenu presque normal après restauration des liens, mais des ajustements sur S30network et son extension (.sh) étaient nécessaires pour que rcS.d appelle les scripts corrects. Pour éviter le problème à l’avenir, vérifier l’intégrité des liens dans rcS.d et la cohérence des noms des scripts init.d sur Solaris, notamment lors de la première mise en service.

Bobot (l’IA à votre service)
  1. Je m'en suis finalement sorti, c'est vraiment un truc tout con (comme il fallait sans douter d'ailleurs). Je pensais que les fichiers contenus dans rcS.d étaient des copies des fichiers contenus dans init.d or ce n'était pas le cas, ce sont des liens physiques (et non symboliques !!!). J'ai recréé ces liens (cf UNIX) et le serveur a redémarré (presque) correctement. Il me reste juste à configurer correctement le démarrage de bind puisqu'il sert de DNS, mais celà est anecdotique comparé à ce que je viens de subir. En tout cas, même si cela a été long et pénible pour une broutille, je suis content de l'avoir fait car je maitrise la séquence de démarrage et ses paramètres sur Solaris, chose que je ne connaissais pas dans le détail avant.

    Merci dubcek pour ton aide et ton soutien, je te présente d'ores et déjà mes meilleurs vœux pour l'année 2010 !!!
    0
    1. Contributeur
      si il reste une partition vide sur ton disque (la 3 ?), tu peux essayer une installation sur cette partition et y récupérer les fichiers après
      0
      1. Contributeur
        t'excuse pas !!
        peut-être une corruption du fichier
        un fsck général est recommandé, je pense
        ceci dit, je n'ai pas souvenir que les scripts avaient besoin du .sh, mais si ca marche, laisse le.
        0
        1. ça ne remarche plus, il met met une erreur à la ligne 159 du script rcS, c'est un commentaire :-(((

          Je continue de fouiller dans cette direction, je pense qu'en remplaçant les fichiers par ceux présents sur le cdrom ça devrait le faire car j'en ai qui fait 0 octets alors que je viens de le copier/coller du init.d de mon disque dur.C'est sûr que j'ai fait une connerie mais je crois que finalement l'erreur n'était pas qu'humaine.
          0
      2. Contributeur
        /sbin/rcS: erreur de syntaxe ligne 34: `fin de fichier' inattendue
        il faut faire attention quand on touche ces fichiers de boot, toujours faire une copie
        0
        1. Je n'y ai jamais touché à celui-là c'est ça que je ne comprends pas. J'avais juste remplacé les fichiers S* dans rcS.d par des liens pointant vers /etc/init.d/. Je vais encore revoir si tout est remis comme à l'origine. Je suis désolé de t'avoir fait perdre de ton temps pour une ânerie pareille.
          0
      3. Contributeur
        /sbin/rcS ?
        il faut vérifier si il est exécuté
        0
        1. Je viens d'avancer, mon fichier présent dans rcS.d s'appelait S30network alors qu'à l'origine c'était S30network.sh. Je l'ai renommé maintenant ça passe enfin presque, il y a encore des soucis :

          ok boot
          Resettin
          LOM event: +14d+19h33m32s host reset
          g ...
          
          
          Sun Fire V100 (UltraSPARC-IIe 548MHz), No Keyboard
          OpenBoot 4.0, 1024 MB memory installed, Serial #56370583.
          Ethernet address 0:3:ba:5c:25:97, Host ID: 835c2597.
          
          
          
          Executing last command: boot
          Boot device: disk  File and args:
          SunOS Release 5.8 Version Generic_108528-13 64-bit
          Copyright 1983-2001 Sun Microsystems, Inc.  All rights reserved.
          configuring IPv4 interfaces: dmfe0 dmfe0:1 dmfe0:10 dmfe0:2 dmfe0:3 dmfe0:4 dmfe
          0:5 dmfe0:6 dmfe0:7 dmfe0:8 dmfe0:9.
          Hostname: ccs-unix1
          The / file system (/dev/rdsk/c0t2d0s0) is being checked.
          NOTICE: dmfe0: PHY 1 link up 100 Mbps Full-Duplex
          NOTICE: dmfe1: PHY 1 link down
          /dev/rdsk/c0t2d0s0: INCORRECT BLOCK COUNT I=92040 (4 should be 0) (CORRECTED)
          /dev/rdsk/c0t2d0s0: UNREF FILE I=92040  OWNER=root MODE=100744
          /dev/rdsk/c0t2d0s0: SIZE=0 MTIME=Dec 29 11:31 2009  (CLEARED)
          /dev/rdsk/c0t2d0s0: FREE BLK COUNT(S) WRONG IN SUPERBLK (SALVAGED)
          /dev/rdsk/c0t2d0s0: 2396 files, 54665 used, 186934 free
          /dev/rdsk/c0t2d0s0: (134 frags, 23350 blocks,  0.0% fragmentation)
          Configuring /dev and /devices
          12/29/2009 10:32:30 GMT LOM time reference
          Configuring the /dev directory (compatibility devices)
          /sbin/rcS: erreur de syntaxe ligne 34: `fin de fichier' inattendue
          
          INIT: Cannot create /var/adm/utmpx
          
          INIT: failed write of utmpx entry:"  "
          
          INIT: failed write of utmpx entry:"  "
          
          INIT: SINGLE USER MODE
          
          Type control-d to proceed with normal startup,
          (or give root password for system maintenance):
          0
      4. Contributeur
        pour trouver shcat
        mount /dev/dsk/xxx /a
        cd /a/etc
        grep -l "^shcat" /sbin/* rc* rc*/*
        0
        1. Salut,

          ben dis moi, tu es matinal toi !

          j'ai fait la commande, ça confirme ce qu'on disait auparavant, shcat est une fonction contenue dans le script rcS.
          0
      5. les lignes sont bonnes, c'est juste l'affichage du fichier qui donne cette impression mais les lignes sont bien complètes.
        0
        1. Contributeur
          /dev/dsk/c0t2d0s0 /dev/rdsk/c0t2d0s0 / ufs 1 no -
          /dev/dsk/c0t2d0s6 /dev/rdsk/c0t2d0s6 /usr ufs 1 no -
          ...
          le $ c'est la fin de ligne, le - devrait être dans la dernière colonne, mount options
          essaye, peut-être

          edit: essaye mais le $ est bien en fin de ligne, j'ai mal lu
          essaye
          Ensure that /etc/nodename contains the hostname!
          If /etc/.UNCONFIGURED exists, remove it!

          https://dbaspot.com/forums/solaris/340615-shcat-cat-unknown-hostname-after-patch-cluster-install.html
          0
          1. J'avais vu ça, j'avais regardé mais non ça n'a rien donné.

            Edit:en fait non je n'ai pas regardé le nodename, je n'ai regardé que les hostname.Interface

            J'ai réglé le souci du ifconfig : ccs-* : bad address (le hostname.interface existait mais cet hostname n'était pas dans le /etc/hosts).

            En conclusion sur ce que nous avons vu, c'est bien au moment où le S30network tente le shcat que ça plante. Comment le script network est censé trouvé la fonction dans le script rcS ? Je pense que nous y arriverons quand nous aurons cette réponse.

            En tout cas merci de t'investir autant sur mon problème, je te souhaite une bonne soirée et @ demain.
            0
          2. @tck-ltBon ben malheureusement le nodename est correct, je file.
            0
        2. Contributeur
          fais un cat -ve /etc/vfstab
          0
          1. # cat -ve /a/etc/vfstab
            #device device mount FS fsck mount mount$
            #to mount to fsck point type pass at boot options$

            #$
            #/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr ufs 1 yes -$
            fd - /dev/fd fd - no -$
            /proc - /proc proc - no -$
            /dev/dsk/c0t2d0s1 - - swap - no -$
            /dev/dsk/c0t2d0s0 /dev/rdsk/c0t2d0s0 / ufs 1 no
            -$
            /dev/dsk/c0t2d0s6 /dev/rdsk/c0t2d0s6 /usr ufs 1 no
            -$
            /dev/dsk/c0t2d0s5 /dev/rdsk/c0t2d0s5 /var ufs 1 no
            -$
            /dev/dsk/c0t2d0s4 /dev/rdsk/c0t2d0s4 /opt ufs 2 yes
            -$
            /dev/dsk/c0t2d0s7 /dev/rdsk/c0t2d0s7 /home ufs 1 yes
            -$
            swap - /tmp tmpfs - yes -$
            #$
            # Spare space$
            #$
            #/dev/dsk/c0t2d0s7 /dev/rdsk/c0t2d0s7 /export/spare ufs 3
            yes -$
            /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 /export ufs 1 yes
            -$
            ccs-unix6:/export/apache/refits/refo - /home/refo-unix6 nfs - yes rw$
            ccs-unix8:/data/sauvegarde - /export/sauvegarde nfs - yes rw$
            0
        3. j'ai le même message d'erreur :

          Sun Fire V100 (UltraSPARC-IIe 548MHz), No Keyboard
          OpenBoot 4.0, 1024 MB memory installed, Serial #56370583.
          Ethernet address 0:3:ba:5c:25:97, Host ID: 835c2597.
          
          
          
          
          Boot device: /pci@1f,0/ide@d/disk@2,0  File and args: -s
          SunOS Release 5.8 Version Generic_108528-13 64-bit
          Copyright 1983-2001 Sun Microsystems, Inc.  All rights reserved.
          configuring IPv4 interfaces: dmfe0 dmfe0:1 dmfe0:10ifconfig: ccs-emsm: bad addre
          ss
           dmfe0:11 dmfe0:2 dmfe0:3 dmfe0:4 dmfe0:5 dmfe0:6 dmfe0:7 dmfe0:8 dmfe0:9.
          /etc/rcS.d/S30network: shcat: not found
          Hostname: unknown
          /etc/rcS.d/S30rootusr: readvfstab: not found
          /etc/rcS.d/S30rootusr: readvfstab: not found
          /sbin/rcS: /usr/bin/loadkeys: not found
          WARNING: /proc could not be mounted
          /sbin/swapadd: expr: not found
          /sbin/swapadd: swap: not found
          
          WARNING - /usr/sbin/fsck not found.  Most likely the
          mount of /usr failed or the /usr filesystem is badly
          damaged.  The system is being halted.  Either reinstall
          the system or boot with the -b option in an attempt
          to recover.
          
          syncing file systems... done
          Program terminated
          ok


          Je ne sais pas si tu as vu le Nota Bene de mon message précédent. Certains disent que c'est un vfstab corrompu.
          0
          1. Contributeur
            faudrait comprendre pourquoi /etc/rcS.d/S30network ne le trouve pas
            essaye de démarrer single-user
            dans le firmware: boot -s
            ou
            reboot -- -s
            0
            1. vfstab :

              # more /a/etc/vfstab
              #device         device          mount           FS      fsck    mount   mount
              #to mount       to fsck         point           type    pass    at boot options
              #
              #/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr          ufs     1       yes     -
              fd      -       /dev/fd fd      -       no      -
              /proc   -       /proc   proc    -       no      -
              /dev/dsk/c0t2d0s1       -       -       swap    -       no      -
              /dev/dsk/c0t2d0s0       /dev/rdsk/c0t2d0s0      /       ufs     1       no
              -
              /dev/dsk/c0t2d0s6       /dev/rdsk/c0t2d0s6      /usr    ufs     1       no
              -
              /dev/dsk/c0t2d0s5       /dev/rdsk/c0t2d0s5      /var    ufs     1       no
              -
              /dev/dsk/c0t2d0s4       /dev/rdsk/c0t2d0s4      /opt    ufs     2       yes
              -
              /dev/dsk/c0t2d0s7       /dev/rdsk/c0t2d0s7      /home   ufs     1       yes
              -
              swap    -       /tmp    tmpfs   -       yes     -
              #
              # Spare space
              #
              #/dev/dsk/c0t2d0s7      /dev/rdsk/c0t2d0s7      /export/spare   ufs     3
              yes     -
              /dev/dsk/c0t0d0s0       /dev/rdsk/c0t0d0s0      /export ufs     1       yes
              -


              Je n'ai pas trouvé la commande shcat ni dans /a/usr/bin, /a/usr/sbin et /a/sbin.

              Bon ap' !
              0
              1. shcat n'est pas une commande mais une fonction contenue dans le script /sbin/rcS. Il fait l'équivalent du cat :
                #
                # Useful shell functions:
                #
                
                #
                #       shcat file
                #
                # Simulates cat in sh so it doesn't need to be on the root filesystem.
                #
                shcat() {
                        while [ $# -ge 1 ]; do
                                while read i; do
                                        echo "$i"
                                done < $1
                                shift
                        done
                }
                


                NB : readvfstab est également une fonction de ce script et il ne la trouve pas non plus à priori quand on lit le message d'erreur du boot, ce qui voudrait dire que les scripts du répertoire rcS.d n'arrivent pas à exécuter les fonctions contenues dans le fichier /sbin/rcS.

                Edit : En circulant sur le net, il y a quelques sujets qui disent que ce souci vient d'un fichier vfstab corrompu. Je vais essayer de creuser dans cette voie.
                0
            2. Contributeur
              /etc/rcS.d/S30network: shcat: not found
              shcat doit être dans /sbin, je crois, le vois-tu : ls /a/sbin
              vérifier /a/etc/vfstab
              0
              1. Contributeur
                si dans /a tu vois tes fchiers, pas besoin de probe, le disque est accessible,il n'y a que toi qui sait quels fichiers ont été altérés
                tu peux vérifier le disque avec
                umount /a
                fsck /dev/rdsk/c0t0d0s0
                le probe ne s'exécute que dans OBP, le frmware au démarrage
                0
                1. Merci pour tes réponses.

                  Je ne sais pas qui a installé cette machine mais il y a des choses très étranges. Quand je fais le mount, je n'atterris pas sur la partition / mais sur un autre partition qui servait pour du partage (NFS), de nom /export. En fait tout à l'heure j'avais tout de monter car au niveau de l'instal (avant de quitter et de retourner sur la console), le programme avait effectué une analyse des disques et m'avait donc tout monté. Ce que je ne comprends pas c'est que j'ai tout remis en état et ça ne repart pas pour le moment.
                  0
              2. Contributeur
                avec
                mount /dev/dsk/c0t0d0s0 /a
                cd /a
                tu devrais accéder ton disque
                0
                1. oui oui j'ai bien vu ça quand j'ai fait un mount le répertoire /a était déjà monté. J'ai tout remis comme avant dans mon (/a)/etc/rcS.d/ (en fait j'avais juste supprimer les fichier S* pour les recréer sous forme de liens pointant vers ../init.d/). J'ai toujours le même message au boot, je vais donc retourner sous la console vu que je sais y accéder maintenant (par contre j'avais essayé les deux commandes probe, il ne me les avait pas trouvés, le /usr/bin n'étant pas monté à ce moment là je pense que ça devait être pour ça).

                  Edit: je n'ai pas de commande du stayle probe-*, puis-je arriver à vérifier quelque chose avec une autre ?
                  0
              3. Première bonne nouvelle, j'ai réussi à atterrir sur la console en quittant au bon moment le programme d'installation, je vais peut-être réussir à en faire quelque chose.
                0
                1. Contributeur
                  possible, si tu as touché ces fichiers
                  0
                  1. Je ne pense pas que ce soit un pb de disque à l'origine c'est plutôt un problème dans le répertoire rcS.d, j'y avais fait quelques modifications et à priori tous les modules ne se chargent pas correctement, non ?
                    0
                    1. Contributeur
                      en principe, une mise à jour n'efface pas tout. mais si il y a des problèmes de disque, comme semble le montrer les messages ?
                      0
                      • 1
                      • 2