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:
- actualice al kernel 5.6.8 o superior para que la interfaz de compatibilidad ponga a cero los bits superiores.
- Reconstruya smartctl y sus dependencias para 64 bits.