El error “blk_update_request: I/O error dev fd0 sector 0” demora tremendamente el arranque en las distribución GNU/Linux. El motivo por el que surge me da la impresión que puede ser muy diverso. A mi se me presentó hace unos días en Debian Stretch. Estuve buscando en internet y finalmente utilice un procedimiento simple que encontré en https://support.quest.com/kb/205943. Lo he aplicado y problema resuelto. Así que lo expongo, por si a alguien que pase por aquí le pueda ser útil.
Contenidos
1. ¿Cómo me surgió el error?
Por si puede ser de interés comentaré primero cómo creo que me surgió el error. Fue en Debian Stretch y justo después de instalar en otra partición Debian Testing. Sólo tengo una partición swap que es compartida por las distribuciones que tengo instaladas. Yo diría que el motivo fue que durante la instalación de Testing no deshabilite por despiste el formateo de la partición swap. Y así lo creo porque al arrancar Debian Stretch me encontré con dos errores:
Primero: [16.6789] blk_update_request: I/O error, dev fd0, sector 0. Que es el objeto de este artículo.
Y segundo, otro que ya tengo controlado y relacionado con la partición swap. Este lo tenemos documentado en el blog:
A start job is running for dev-disk-by ……device (1 min 30s)
Ahora bien, no me pregunten cuales son los mecanismos que llevan a que se produzca el error de marras. No tengo ni idea.
2. ¿Cuál es el problema?
Al parecer, al arrancar la computadora el núcleo (kernel) detecta erróneamente que existe un dispositivo floppy (el antiguo disquete), o simplemente crea una referencia inexistente, porque mi computadora no tiene en realidad esta unidad. El programa de administración de discos entonces busca en los dispositivos de bloques disponibles, con la consiguiente demora en el arranque del sistema operativo.
Podemos comprobar si este es el problema con el siguiente comando:
# lsmod | grep -i floppy
La salida será, si es el caso, algo así como: floppy 95465 0
3. ¿Cuál es la solución a ese error dev fd0 sector 0?
Como mi computadora no tiene unidad de disquete (que puede ser también el tuyo), lo que corresponde, y así se recomienda, es eliminar y poner en la lista negra del núcleo el módulo correspondiente al floppy, con objeto de que no interfiera en el futuro.
3.1 En distribuciones Debian/Ubuntu
Todos los comandos los tenemos que ejecutar como superusuario (su) o como usuario con privilegios de root (sudo)
1) Eliminamos el módulo (controlador) correspondiente al disquete en el kernel
# rmmod floppy
2) Creamos el archivo blacklist-floppy.conf en /etc/modprobe.d/ con la línea de texto blacklist floppy, mediante la siguiente línea de comandos:
# echo "blacklist floppy" > /etc/modprobe.d/blacklist-floppy.conf
Nota: La inclusión de un módulo (floppy, en este caso) en un archivo blacklist (blacklist-floppy.conf) evita que se cargue en el arranque.
3) Hacemos una copia de seguridad de initrd.img (que sera algo así como initrd.img-4.9.0-5-amd64, aunque esto lo averigua “uname -r”) que está en /boot/; por lo que pueda pasar, pero nada debe pasar:
# cp /boot/initrd.img-$(uname -r) /boot/initrd.img-$(uname -r).backup
Nota: El disco RAM inicial o initrd es un sistema de archivos temporal usado por el núcleo Linux durante el inicio del sistema. Es usado para hacer los arreglos necesarios antes de que el sistema de archivos raíz sea montado (https://es.wikipedia.org/wiki/Initrd).
4) Actualizamos initramfs
# update-initramfs -u
5) Reiniciamos y comprobamos que no se muestra el error. Ahora, si es así, el arranque del sistema será veloz como el rayo (al menos en Debian):
# reboot
3.2. En otras distribuciones
Según la web que consulté, para las distribuciones siguientes sólo cambia el comando del punto 4) que en:
SLES (SuSE Linux Enterprise Server)
# mkinitrd
CentOS/RHEL (Red Hat Enterprise Linux)
# dracut -f /boot/initramfs-$(uname -r).img
Yo tomo buena nota de SLES, ya que utilizo también openSUSE y, bueno, siempre me puedo topar con esta eventualidad. No obstante, si algunas de estas distribuciones es tu caso visita https://support.quest.com/kb/205943
Saludos flamencos,