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:
- atualize para o kernel 5.6.8 ou superior para que a interface de compatibilidade zere os bits superiores.
- Reconstrua o smartctl e suas dependências para 64 bits.