Простенький скрипт для проверки причин подвисания. Запускаем, смотрим. Если вылазит слишком много ошибок, разбираемся. Выход по Ctrl+C
testiowait.sh:
#!/bin/sh
echo "Press Ctrl+C to exit"
while true; do date; ps auxf|awk '{if($8=="D") print $0;}'; sleep 1; done
И не забудьте дать права на исполнение!