Dans .bash_profile et .profile :
trap 'date "+# %c" | read -s' debug
/sbin/init.d/pwgr stop lugadmin -e /sbin/init.d/pwgr start
cat /dev/null > /var/adm/wtmps
Au prompt :
</>hpiLO->
Taper textcons.
Pour configurer en clavier français :
textcons xlt 5 textcons xlt 8
Le / est probablement plein sur la machine en question. Il faut essayer d'ouvrir un shell minimal à distance à partir d'une autre machine (si possible) avec la commande suivante, par exemple :
remsh nomdelamachine /usr/bin/ksh -i
Si ça ne passe pas on peut essayer de se logger en FTP et supprimer des fichiers mais dans ce cas la il faut avoir autorisé root
à se logger en FTP et c'est pas top Ou alors si un reboot peut être envisagé on peut booter en mode single, au prompt :
BO PRI hpux -is
Faire du ménage puis lancer un init 3
Parfois le boot ne passe pas bien. Il faut la démarrer en mode manuel
. Ci-dessous la procédure :
vparmodify -p bugged_machine -B manual
vparreset -p bugged_machine -h
vparboot -p bugged_machine -o "-is"
vgchange -a y vg00 mount -a (+ les fsck si on a fait le step 2 ;-) ) init 3
machine:/# tusc -v ls /etc/passwd|tail|grep time st_atime: Thu Jun 22 10:41:49 2006 st_mtime: Fri Jun 16 10:54:32 2006 st_ctime: Fri Jun 16 10:54:32 2006
Utiliser <key>C-8</key> ou <key>C-\</key> ou <key>C-S-\</key> ou <key>C-S-8</key> ou <key>Backspace</key>
Utiliser <key>C-a</key>
Utiliser <key>C-b</key>
Il se peut que le boot bloque juste avant le démarrage de l'OS (HP-UX start up) avec ces messages sur la console :
/sbin/auto_parms: DHCP access is disabled (see /etc/auto_parms.log) stty: : Not a typewriter stty: : Not a typewriter stty: : Not a typewriter
A ce stade on passe en init 3 et les scripts du répertoire /sbin/rc3.d sont lancés. HP-UX scanne les paramètres de ces scripts et cherche le paramètre start_msg. Si un script ne contient pas ce paramètre le boot est bloqué et plus rien n'avance. En général il peut s'agir de quelqu'un qui a créé un script avec seulement les paramètres classiques : start, stop , restart et status.
Dans ce cas il faut booter en init 2 par exemple et trouver le script qui pose problème. Un grep -w start_msg dans /sbin/rc3.d avec une boucle suffit à déterminer le script qui pose problème. Ou bien breaker la console (voir plus haut.)
Après avoir resetté une vPar ou une cell, on peut se retrouver face à cette situation (sur le VFP) :
# Partition state Activity - --------------- -------- 0 Cell(s) Booting: 7156 Logs # Cell state Activity - ---------- -------- 0 Boot is blocked (BIB) BOOT_MONARCH_DONE_CHECKING_SLAVE 2269 Logs 2 Boot is blocked (BIB) BOOT_MONARCH_DONE_CHECKING_SLAVE 2277 Logs
En gros rien ne se passe. Dans ce cas il faut booter la partition qui pose problème :
[GSP0] MP> CM Enter HE to get a list of available commands [GSP0] MP:CM> BO This command boots the selected partition. Part# Name ----- ---- 0) machine1 1) machine2 Select a partition number: 0 Do you want to boot partition number 0? (Y/[N]) Y -> The selected partition will be booted.
Lancer la commande /var/PSS/hpux_config qui génère un fichier texte et un fichier html qui contient un paquet d'infos.
Pour locker :
passwd -l <username>
Pour délocker :
/usr/lbin/modprpw -l -k <username>
Commenter la ligne dans .login :
eval `tset -s -Q -m ':?hp'
Scanner les devices
ioscan -funC disk
Installer les devices
insf
lvcreate -C y -L 4096 -n lvol1 /dev/vg00 swapon -p 0 /dev/vg00/lvol1 echo "/dev/vg00/lvol1 ... swap pri=0 0 0" >> /etc/fstab
Guidelines for Assigning Swap Priority
http://docs.hp.com/en/B2355-90950/ch06s03.html#gdpri
When you add swap areas, you can assign a priority to each. Priorities range from 0 (the highest) to 10 (the lowest). The system uses the swap areas with higher priority first. The system gives device swap priority over file system swap when each has the same priority. Here are the guidelines you should use:
The primary swap area has priority 1. Device and file system swap areas set dynamically default to a priority of 1 if no priority is specified.
ioscan -fnCdisk vgchange -a y <le vg>
Ou si le vg est associé à un package
vgchange -a e -q n -s
ioscan -funC disk | awk '/NO_HW/ { print $3 }' | xargs -t -i rmsf -H {}
liste=`lsvg <VG>|egrep PV|awk '{print $3}'`
for dsk in $liste do echo $dsk alterdsk=`echo $dsk|awk '{gsub("c5t","c15t",$1);print $1}'` echo $alterdsk vgextend /dev/<VG> $alterdsk done
vgdisplay: Warning: couldn't query physical volume “/dev/dsk/c9t0d0”: The specified path does not correspond to physical volume attached to this volume group
mv /etc/lvmtab /etc/lvmtab.SAV4 vgscan -avp (pour contrôler) vgscan -av vgchange -a y
Lancer un vgsync derrière au cas où.
Dans notre cas nous voulons activer les IO asynchrones pour Sybase. Ci-dessous les étapes nécessaires :
chown sybase:bin /dev/async
setprivgrp DBA RTPRIO MLOCK CHOWN
On peut lister les privilèges avec la commande getprivgrp.
root@SomeMachine:/ kmsystem |head -1;kmsystem |grep sync Module Configured Loadable asyncdsk Y - asyncdsk_included N -
SomeMachine:/#kcmodule |head -1;kcmodule|grep sync Module State Cause Notes asyncdsk static explicit
Si c'est KO il faut ajouter ce module au kernel avec sam par exemple (et donc effectuer un reboot après la recompilation du nouveau kernel).
Après changement de disque :
ioscan -fnC disk vgcfgrestore -n vg00 /dev/rdsk/cXtYdZ vgchange -a y vg00 vgsync vg00 lvlnboot –v mkboot /dev/rdsk/cXtYdZ mkboot -a "hpux -lq" /dev/rdsk/cXtYdZ mkboot -b /usr/sbin/diag/lif/updatediaglif -p ISL -p HPUX -p LABEL -p AUTO /dev/rdsk/cXtYdZ mkboot -b /usr/sbin/diag/lif/updatediaglif2 -p ISL -p HPUX -p LABEL -p AUTO /dev/rdsk/cXtYdZ
Si différent de ci-dessous :
Primary bootpath : 0/0/1/1.0.0 Alternate bootpath : 0/0/2/0.0.0
Boot Definitions for Volume Group /dev/vg00: Physical Volumes belonging in Root Volume Group: /dev/dsk/c2t0d0 (0/0/2/0.0.0) -- Boot Disk /dev/dsk/c1t0d0 (0/0/1/1.0.0) -- Boot Disk PV Name: lvol1 on: /dev/dsk/c2t0d0 /dev/dsk/c1t0d0 Root: lvol3 on: /dev/dsk/c2t0d0 /dev/dsk/c1t0d0 Swap: lvol2 on: /dev/dsk/c2t0d0 /dev/dsk/c1t0d0 Dump: lvol2 on: /dev/dsk/c2t0d0, 0
lvlnboot –b /dev/vg00/lvol1 lvlnboot –s /dev/vg00/lvol2 lvlnboot –d /dev/vg00/lvol2 lvlnboot –r /dev/vg00/lvol3 lvlnboot –R
inq -nodots -sid -sym_wwn |grep -E "13C3|13C7|13CB|13B7|13BB|13BF"|while read a b c d do lssf $a|awk '{print "rmsf -H "$15}' |sh done
vgreduce -f /dev/vg_toto mv /etc/lvmtab /etc/lvmtab.old vgscan -av
On peut parfois se retrouver dans ce cas lors de suppressions ratées :
server022:/var/adm/syslog#pvdisplay -v /dev/dsk/c124t7d6 |grep "?" |tail 06877 current ??? 00490 06878 current ??? 00491 06879 current ??? 00492 06880 current ??? 00493 06881 current ??? 00494 06882 current ??? 00495 06883 current ??? 00496 06884 current ??? 00497 06885 current ??? 00498 06886 current ??? 00499
L'espace est réservé sur le disque mais n'est plus utilisable. En fait la suppression n'a pas été faite correctement. Il faut le recréer pour pourvoir le supprimer correctement. On récupère les infos sur le VG en question :
server022:/dev/vg_Package1#ls -l|sort -k 6 total 0 crw-rw-rw- 1 root sys 64 0x020000 Nov 20 10:00 group brw-r----- 1 root sys 64 0x020001 Nov 20 10:00 lv_VAS3_sybdata31 crw-r----- 1 sybase DBA 64 0x020001 Nov 20 10:00 rlv_VAS3_sybdata31 brw-r----- 1 root sys 64 0x020002 Nov 20 10:00 lv_cftpkg1_23 crw-r----- 1 sybase DBA 64 0x020002 Nov 20 10:00 rlv_cftpkg1_23 brw-r----- 1 root sys 64 0x020003 Nov 20 10:00 lv_VAS3_sybdata07 crw-r----- 1 sybase DBA 64 0x020003 Nov 20 10:00 rlv_VAS3_sybdata07 brw-r----- 1 root sys 64 0x020004 Nov 20 10:00 lv_VAS3_sybtempdbdat2 crw-r----- 1 sybase DBA 64 0x020004 Nov 20 10:00 rlv_VAS3_sybtempdbdat2 brw-r----- 1 root sys 64 0x020005 Nov 20 10:00 lv_VAS3_sybdata08 crw-r----- 1 sybase DBA 64 0x020005 Nov 20 10:00 rlv_VAS3_sybdata08
…
brw-r----- 1 root sys 64 0x020007 Nov 20 10:00 lv_esycomore crw-r----- 1 sybase DBA 64 0x020007 Nov 20 10:00 rlv_esycomore brw-r----- 1 root sys 64 0x020008 Feb 2 10:38 lv_VAS3_sybtempdblog4 crw-r----- 1 sybase DBA 64 0x020008 Feb 2 10:38 rlv_VAS3_sybtempdblog4 brw-r----- 1 root sys 64 0x02000b Nov 20 10:00 lv_VAS3_sybmaster
On trie sur les minors pour trouver celui qui manque dans le VG :
0x020005
…
0x020007
on peut aussi retrouver ces infos en restaurant le device avec TSM.
Puis on recréé le device avec un nom bidon :
server022:/dev/vg_Package1#mknod rtoto c 64 0x020006 server022:/dev/vg_Package1#mknod toto b 64 0x020006 server022:/dev/vg_Package1#ls -l *toto crw-r--r-- 1 root sys 64 0x020006 Feb 2 14:36 rtoto brw-r--r-- 1 root sys 64 0x020006 Feb 2 14:36 toto
On vérifie :
server022:/dev/vg_Package1#pvdisplay -v /dev/dsk/c124t7d6 |grep -c "?"h 0 server022:/dev/vg_Package1#lvdisplay /dev/vg_Package1/toto |head -5 --- Logical volumes --- LV Name /dev/vg_Package1/toto VG Name /dev/vg_Package1 LV Permission read/write LV Status available/syncd
On peut enfin supprimer le LV avec lvremove. Sur un cluster ne pas oublier de synchroniser les maps.
Bravo root.
server502:/appli# ls -l total 48 drwxr-xr-x 16 root sys 8192 Aug 7 2009 Package1 drwxr-xr-x 6 root sys 96 Oct 26 11:12 Package2 drwxr-xr-x 11 root sys 8192 Jul 17 2006 Package3 drwxr-xr-x 8 root sys 8192 Sep 28 2005 Package4 drwxr-xr-x 3 root sys 96 Oct 26 10:40 Package2 ls -lb (-b List nonprinting characters in the octal \ddd notation.) total 48 drwxr-xr-x 16 root sys 8192 Aug 7 2009 Package1 drwxr-xr-x 6 root sys 96 Oct 26 11:12 Package2 drwxr-xr-x 11 root sys 8192 Jul 17 2006 Package3 drwxr-xr-x 8 root sys 8192 Sep 28 2005 Package4 drwxr-xr-x 3 root sys 96 Oct 26 10:40 Packgae2\010\010\010\010age2
ls -lib /appli total 48 3784 drwxr-xr-x 16 root sys 8192 Aug 7 2009 Package1 3774 drwxr-xr-x 6 root sys 96 Oct 26 11:12 Package2 3780 drwxr-xr-x 11 root sys 8192 Jul 17 2006 Package3 3785 drwxr-xr-x 8 root sys 8192 Sep 28 2005 Package4 10869 drwxr-xr-x 3 root sys 96 Oct 26 10:40 Packgae2\010\010\010\010age2
find /appli/ -xdev -inum 10869 /appli/Package2 find /appli/ -xdev -inum 10869 -exec ls -libd {} \; 10869 drwxr-xr-x 3 root sys 96 Oct 26 10:40 /appli/Packgae2\010\010\010\010age2
find /appli/ -xdev -inum 10869 -exec mv {} toto \; ll total 48 drwxr-xr-x 16 root sys 8192 Aug 7 2009 Package1 drwxr-xr-x 6 root sys 96 Oct 26 11:12 Package2 drwxr-xr-x 11 root sys 8192 Jul 17 2006 Package3 drwxr-xr-x 8 root sys 8192 Sep 28 2005 Package4 drwxr-xr-x 3 root sys 96 Oct 26 10:40 toto
Autre technique plus amusante :
printf %b "Packgae2\010\010\010\010age2 toto\n"|xargs -n2 mv