Linux, how to change HDD state from ReadOnly after temporarly crash?

try with blockdev --setrw or hdparm -r 0


Like Jose Luis Martin suggested use blockdev, my 2cent is to do a remount rw and forcefsck

(assuming sda is your disk)

blockdev --setrw /dev/sda
mount /dev/sda -o remount,rw
touch /forcefsck

Check this wiki page, it explains the error thrown by libata :

https://ata.wiki.kernel.org/index.php/Libata_error_messages

From what I see above, you got a timeout issue and as per the document mentioned :

Controller failed to respond to an active ATA command. This could be any number of causes. Most often this is due to an unrelated interrupt subsystem bug (try booting with 'pci=nomsi' or 'acpi=off' or 'noapic'), which failed to deliver an interrupt when we were expecting one from the hardware.

You may want to disable ACPI ( check how to based on your distro) or check you kernel for known bugs and possibly update it if it is not the latest ( or downgrade it).