Article ID: 113107, created on Jan 10, 2012, last review on Sep 30, 2014

  • Applies to:
  • Virtuozzo containers for Linux 4.7

Síntomas

Tras la actualización a PVCfL no es posible acceder al kernel de PVCfL 4.7 en CentOS 5.x si el root está en un dispositivo SCSI.

En la consola del servidor puede observarse una salida similar a la siguiente:

switchroot mount failed: No such file or directory.
3.668771] Kernel panic e not syncing. Attempted to kill init!
3.668887] Pid: 1, comm: init veid2 0 Not tainted 2.6.32—042stab044.11 #1
3.669000] Call Trace2
3.669111] [<ffffffff814ca02c>] ? panic+0x78/0x143
3.669228] [<ffffffff8106f229>] ? do_exit+0x909/0x910
3.669401] [<ffffffff8106f288>] ? do_group_exit+0x58/0xd0
3.669515] [<ffffffff8106f317>] ? sys_exit_group+0x1?/0x20
3.669632] [<ffffffff8100b242>] ? system_call_fastpath+0x16/0x1b

Causa

La incidencia reside en el mecanismo de generación initrd de CentOS/Red Hat, que omite la demora necesaria para la inicialización de dispositivos SCSI si el módulo "scsi_mod" no se utiliza de forma explícita.

Hace tiempo se notificó a CentOS acerca de esta incidencia (http://bugs.centos.org/view.php?id=4050), pero lamentablemente esta se ha marcado como 'wontfix'. De todos modos, en la rama del kernel 2.6.32, la funcionalidad de este módulo se incluye en el kernel.

Resolución

  1. Edite /sbin/mkinitrd de la siguiente forma:

    [root@pvclin46 ~]# cp /sbin/mkinitrd{,.orig}
    [root@pvclin46 ~]# vi /sbin/mkinitrd
    [root@pvclin46 ~]# diff -pruN /sbin/mkinitrd{.orig,}
    --- /sbin/mkinitrd.orig 2012-01-09 18:14:55.000000000 +0700
    +++ /sbin/mkinitrd      2012-01-09 18:17:19.000000000 +0700
    @@ -923,7 +923,7 @@ EOF
        done
        unset usb_mounted
    
    -    if [ -n "$scsi" ]; then
    +    if [ -n "$scsi" -o -n "$scsimodules" ]; then
            emit "echo Waiting for driver initialization."
            emit "stabilized --hash --interval 1000 /proc/scsi/scsi"
        fi
    

    Resumiendo, en una línea 923, localice lo siguiente:

    if [ -n "$scsi" ]; then
    

    A continuación, reemplácelo por lo siguiente:

    if [ -n "$scsi" -o -n "$scsimodules" ]; then       .
    
  2. Vuelva a generar la imagen initrd para el kernel de PVCfL 4.7.

    La forma más fácil de hacerlo es reinstalando el paquete RPM vzkernel apropiado.

NOTA: existe un problema similar en nodos con RAID. Este se describe en el siguiente artículo:

122340 - Kernel panic tras actualizar a PVC 4.7 en un host CentOS 5 con el software RAID

0c05f0c76fec3dd785e9feafce1099a9 d02f9caf3e11b191a38179103495106f e8e50b42231236b82df27684e7ec0beb 2897d76d56d2010f4e3a28f864d69223

Email subscription for changes to this article
Save as PDF