Obtendo mensagem - Falha na leitura do controlador de identificação NVMe: NVME_IOCTL_ADMIN_CMD: endereço inválido - ao usar o comando smartctl

Obtendo mensagem - Falha na leitura do controlador de identificação NVMe: NVME_IOCTL_ADMIN_CMD: endereço inválido - ao usar o comando smartctl

Estou tentando verificar determinadas especificações de um disco rígido em um computador sem sistema operacional instalado. Estou usando um disco inicializável Knoppix (v8.6.1) para executar um script bash com a linha

smartctl -i /dev/nvme0

No entanto, continuo recebendo a mesma mensagem:

Falha na leitura do controlador de identificação NVMe: NVME_IOCTL_ADMIN_CMD: endereço inválido

Posso executar este comando perfeitamente em outro computador (mesmo modelo) com uma distribuição Linux diferente já instalada, mas por algum motivo o comando falha ao ser executado no disco Knoppix.

Nota: posso executar comandos como

smartctl -d nvme --scan

quais saídas

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

mas não consigo executar comandos smartctl como

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

ou qualquer outro comando que deva realmente retornar informações sobre o disco rígido. Todos eles produzem a mesma mensagem de “endereço incorreto” mencionada acima.

Responder1

Historicamente, o Knoppix distribuiu um espaço de usuário de 32 bits e um kernel opcional de 64 bits. O changelog para Linux Kernel 5.6.8 inclui um commit que abordou especificamente o uso de ioctls NVME_IOCTL_ADMIN_CMD de um smartctl de 32 bits em um kernel de 64 bits (ref:https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.6.8confirmar 51750ad35f266751e14d6c7e8839b85c8069e27f). Além disso, o Knoppix 8.6.1 acompanha o Linux Kernel 5.3.5 (referência:https://www.knopper.net/knoppix/knoppix861-en.html. Isso foi significativamente antes do lançamento do patch, então causaria esse tipo de erro.

Então, você tem duas soluções:

  1. atualize para o kernel 5.6.8 ou superior para que a interface de compatibilidade zere os bits superiores.
  2. Reconstrua o smartctl e suas dependências para 64 bits.

informação relacionada