Попытайтесь заменить Ваш grep
строка с awk
сценарий, который сбрасывает его вывод.
xev | \
awk '/state 0x.*, keycode / { print $4; fflush() }' | \
while read keycode ; do
# etc.
done
Вы можете попробовать в Boot-Repair-Disk , чтобы он отремонтировал ваш grub. Это очень хорошо работало для меня в прошлом.