Obteniendo mensaje: Error al leer el controlador de identificación NVMe: NVME_IOCTL_ADMIN_CMD: Dirección incorrecta: al usar el comando smartctl

Obteniendo mensaje: Error al leer el controlador de identificación NVMe: NVME_IOCTL_ADMIN_CMD: Dirección incorrecta: al usar el comando smartctl

Estoy intentando verificar ciertas especificaciones de un disco duro en una computadora sin sistema operativo instalado. Estoy usando un disco de arranque Knoppix (v8.6.1) para ejecutar un script bash con la línea

smartctl -i /dev/nvme0

Sin embargo, sigo recibiendo el mismo mensaje:

Error al leer el controlador de identificación NVMe: NVME_IOCTL_ADMIN_CMD: dirección incorrecta

Puedo ejecutar este comando perfectamente en otra computadora (mismo modelo) con una distribución de Linux diferente ya instalada, pero por alguna razón el comando falla cuando se ejecuta en el disco Knoppix.

Nota: puedo ejecutar comandos como

smartctl -d nvme --scan

que salidas

/dev/nvme0 -d nvme # /dev/nvme0, dispositivo NVMe

pero no puedo ejecutar comandos smartctl como

smartctl -i /dev/nvme0
smartctl -x /dev/nvme0
smartctl -a /dev/nvme0
smartctl -H /dev/nvme0

o cualquier otro comando que realmente debería devolver información sobre el disco duro. Todos producen el mismo mensaje de "dirección incorrecta" indicado anteriormente.

Respuesta1

Históricamente, Knoppix incluía un espacio de usuario de 32 bits y un kernel opcional de 64 bits. El registro de cambios para el kernel de Linux 5.6.8 incluye una confirmación que abordó específicamente el uso de ioctls NVME_IOCTL_ADMIN_CMD desde un smartctl de 32 bits en un kernel de 64 bits (ref:https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.6.8confirmar 51750ad35f266751e14d6c7e8839b85c8069e27f). Además, Knoppix 8.6.1 se envió con el kernel de Linux 5.3.5 (referencia:https://www.knopper.net/knoppix/knoppix861-en.html. Eso es mucho antes de que llegara el parche, por lo que causaría este tipo de error.

Entonces, tienes dos soluciones:

  1. actualice al kernel 5.6.8 o superior para que la interfaz de compatibilidad ponga a cero los bits superiores.
  2. Reconstruya smartctl y sus dependencias para 64 bits.

información relacionada