birds like wires

Feed the Birds

No to HDIO_GET_IDENTITY failed!

This one has been annoying me for a while and nobody has explicitly waved a simple solution around for it; so now that I’ve found it, I’m going to do the waving. In building Ubuntu Precise 12.04 for the Joggler, this error was popping up on boot:

ata_id[1605]: HDIO_GET_IDENTITY failed for '/dev/sda': Invalid argument

It occurs because ata_id is being called upon by udev to provide some information about the ATA device. However, on the Joggler these devices are almost always connected via USB and in almost every case ata_id will fail to return anything useful. Tada – we have an error. It’s harmless, but annoying.

To fix it, you need to dive into /lib/udev/rules.d/ and edit 60-persistent-storage.rules. You will see the following from line 37:

# Run ata_id on non-removable USB Mass Storage (SATA/PATA disks in enclosures)
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", ATTR{removable}=="0", SUBSYSTEMS=="usb", IMPORT{program}="ata_id --export $tempnode"
# Otherwise fall back to using usb_id for USB devices
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id"

Ah-ha! There it is! It runs ata_id, which errors out, and then picks up the slack using usb_id. Stick a lovely great # on that ata_id line.

You’ll then need to rebuild your initrd gubbins. For the Joggler you do it like this:

cd /boot
sudo update-initramfs -u

Reboot and you should find that the error is gone and everything still works as it should.

Finally!

← Recent Articles
, , , ,