Durante la aplicación de un conjunto de parches y tras el reinicio correspondente, todo parecía funcionar bien excepto al hacer un lanscan el cual devolvía el prompt sin mostrar nada por pantalla y más extraño aun era lo que devolvía el dmesg:
# lanscan
#
# dmesg
Magic number wrong (namelist mismatch?)
#
El problema existente consiste en que el kernel que está cargado en memoria no es el mismo que existe en /stand/vmunix
En este caso en particular previo al comienzo de la intervención se había hecho un split del vg00 quedando cada lvol dividido en lvolX y lvolXb. De esta manera, se parchea sobre los lvolX y la marcha atrás está asegurada.
El vg00 al contener dos discos y hacer el split, un disco contendrá la totalidad de los lvoles “productivos” y el otro disco contendrá los lvoles “spliteados”.
Veamos sobre que disco están los lvoles que la máquina está usando:
#lvdisplay -v /dev/vg00/lvol1
[...]
— Distribution of logical volume —
PV Name LE on PV PE on PV
/dev/dsk/c2t1d0 16 16
[...]
Comparemoslo con el disco del cual ha arrancado la máquina:
# setboot
Primary bootpath : 0/1/1/0.0.0
Alternate bootpath : 0/1/1/0.1.0
La máquina debería de haber arrancado teóricamente del Primary bootpath si nadie ha intervenido de manera manual durante el arranque, pero vamos a asegurarnos para ver de cual ha arrancado exactamente:
# echo boot_string/s | adb /stand/vmunix /dev/kmem
boot_string:
boot_string: disk(0/1/1/0.0.0.0.0.0.0;0)/stand/vmunix
Parece que coincide el hardware path del cual ha arrancado la máquina y del que hay configurado en el setboot, pero solo conocemos el hardware path del disco, vamos a conocer su fichero de dispositivo:
# ioscan -H 0/1/1/0.0.0 -kfn
Class I H/W Path Driver S/W State H/W Type Description
=====================================================================
disk 1 0/1/1/0.0.0 sdisk CLAIMED DEVICE HP 146 GST3146707LC
/dev/dsk/c2t0d0 /dev/rdsk/c2t0d0
Vaya! así que la máquina ha arrancado del disco /dev/dsk/c2t0d0 pero actualmente tiene montado los lvoles que residen en el /dev/dsk/c2t1d0
¿Que es lo correcto aquí? La máquina debe arrancar de los lvoles sin splitear que residen en /dev/dsk/c2t1d0 como hemos visto anteriormente con lvdisplay, por lo que solo deberemos añadir este HW path como primary boot path y los lvolesb como alternate:
# ioscan -kfn /dev/dsk/c2t1d0
Class I H/W Path Driver S/W State H/W Type Description
=====================================================================
disk 2 0/1/1/0.1.0 sdisk CLAIMED DEVICE HP 146 GST3146707LC
/dev/dsk/c2t1d0 /dev/rdsk/c2t1d0
#setboot -p 0/1/1/0.1.0
#setboot -a 0/1/1/0.0.0
#setboot
Primary bootpath : 0/1/1/0.1.0
Alternate bootpath : 0/1/1/0.0.0
Autoboot is ON (enabled)
Autosearch is ON (enabled)
Tras reiniciar la máquina, el comando dmesg y lanscan vuelven a funcionar correctamente.
Espero que os sirva de ayuda y si os pasa esto mismo, encontreis esta información de una manera rápida, ya que tras una intervención con el tiempo contado, que dejen de funcionar comandos y salgan mensajes “mágicos” no es nada tranquilizador.
Si tenéis alguna pregunta, no dudeis en dejar vuestros comentarios.