Solution in my case:

  1. boot with tomsrtbt, it fails to load, I don't know why
  2. boot with Damn Small Linux like this: vmlinuz debug=10 (in order to prevent X from launching)
  3. vi /etc/fstab so as to get /dev/hda1 /mnt/hda1 ext3 defaults 1 1
  4. mount /mnt/hda1
  5. chroot /mnt/hda1 /bin/bash
  6. dpkg-reconfigure kernel-image-2.4.20-xfs

Probably /boot/initrd.gz was corrupted in some way... bad shutdown?