..scsi1 : ata_piix
ata2.00: failed to IDENTIFY (I/O error, err_mask=0x1)
The err_mask is AC_ERR_DEV indicating that the device raised aborted the
IDENTIFY command. I wonder what's going on.
Can you change "#undef ATA_DEBUG" in include/linux/libata.h to "#define
ATA_DEBUG" and report the resulting dmesg? There will be a LOT of
messages so you probably want to increase printk buffer size and detach
other devices if possible. It would be best if your root device isn't
driven by libata so that you can just insert the module and store the
resulting dmesg.