Eu resolvi o problema conforme descrito abaixo (como sugerido por @buddika):
- Primeiro eu tentei com um novo cartão SD compatível, fazendo uma cópia do cartão inteiro.
Para criar uma imagem de disco:
dd if=/dev/sdb conv=sync,noerror status=progress bs=64K | gzip -c > rpi.gz
E para restaurar a imagem:
gunzip -c rpi.gz | dd of=/dev/sdb status=progress
- Depois de verificar o tempo de inicialização normal no novo sd, comecei a verificar o antigo para setores defeituosos.
Para encontrar setores inválidos, usei:
sudo badblocks -vv /dev/sdb2
Depois de encontrar os bad blocks, gravei novamente a imagem do rpi.gz e executei o comando para reparar os blocos:
sudo fsck -cct ext4 /dev/sdb2
Depois disso, o tempo de inicialização é normal novamente.