Linux ENXIO (errno 6) — No Such Device or Address
About Linux ENXIO (errno 6)
Linux ENXIO error occurs when a device node exists but there is no driver loaded or the device has been removed from the system. This guide covers everything you need to know about this topic, including common causes, step-by-step solutions, and answers to frequently asked questions.
Here are the key things to understand: ENXIO (errno 6) means the device special file exists but no device driver claims it. The device node in /dev exists but the actual hardware or driver is not present. Common with hot-removed USB devices, ejected disk drives, or unloaded kernel modules. Also occurs when opening the slave side of a pseudo-terminal that has no master. lsblk and fdisk show the device but I/O operations fail with ENXIO. Understanding these fundamentals will help you diagnose and resolve this issue more effectively.
The most common reasons this occurs include: Device physically removed but device node not cleaned up. Kernel module for the device not loaded. SCSI/SATA device offline or in error state. Multipath device with all paths down. Device being accessed after forceful removal. Identifying the root cause is the first step toward finding the right solution.
To resolve this, follow these recommended steps: Check if device is present: lsblk and lspci / lsusb to verify hardware presence. Check kernel module: lsmod | grep driver_name and modprobe driver_name to load it. For disappeared disk: echo '- - -' > /sys/class/scsi_host/hostX/scan to rescan SCSI bus. Check dmesg for device removal or error messages. For multipath: multipath -ll to check path status. If these steps do not resolve the issue, consider consulting additional resources or a qualified professional.
This article is part of our Linux Error Codes collection on Error Codes Wiki. We provide comprehensive, up-to-date information to help you find solutions quickly.
Quick Answer
Why does the device file exist but I cannot access it?
Device files in /dev are just interface points. ENXIO means no driver or hardware is behind that interface.
Overview
Linux ENXIO error occurs when a device node exists but there is no driver loaded or the device has been removed from the system.
Key Details
- ENXIO (errno 6) means the device special file exists but no device driver claims it
- The device node in /dev exists but the actual hardware or driver is not present
- Common with hot-removed USB devices, ejected disk drives, or unloaded kernel modules
- Also occurs when opening the slave side of a pseudo-terminal that has no master
- lsblk and fdisk show the device but I/O operations fail with ENXIO
Common Causes
- Device physically removed but device node not cleaned up
- Kernel module for the device not loaded
- SCSI/SATA device offline or in error state
- Multipath device with all paths down
- Device being accessed after forceful removal
Steps
- 1Check if device is present: lsblk and lspci / lsusb to verify hardware presence
- 2Check kernel module: lsmod | grep driver_name and modprobe driver_name to load it
- 3For disappeared disk: echo '- - -' > /sys/class/scsi_host/hostX/scan to rescan SCSI bus
- 4Check dmesg for device removal or error messages
- 5For multipath: multipath -ll to check path status