Puesto al día el 24 de setiembre de 2019.
modo de sólo lectura (read-only)
si el dispositivo desaparece de pronto o no se puede escribir en él, primero hay que comprobar que el sistema operativo sigue detectándolo mediante lsblk:
lsblk
sdb 8:16 1 1,9G 0 disk
└─sdb1 8:17 1 1,9G 0 part 24M 0 rom
donde sdb1 es la identidad del dispositivo. con la siguiente orden,
mount | grep sdb1
/dev/sdb1 on /media/ernesto/HISTORIAS type vfat (ro,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
se comprueba que el dispositivo sdb1 está montado en /media/ernesto/HISTORIAS y, en este caso, como sistema de archivos de sólo lectura (ro), lo que significa que ya no se permite la grabación de datos en el dispositivo.
en ocasiones, el sistema operativo puede cambiar el acceso al sistema de archivos de un dispositivo de escritura (rw) a sólo lectura (ro, que equivale a read-only) por cuestiones de seguridad. se trata de errores graves como, por ejemplo, fallos durante la escritura en el hardware (el dispositivo físico).
dosfsck
el comando dosfsck se ocupa de recuperar sistemas de archivo MS-DOS:
man dosfsck
fsck.fat – check and repair MS-DOS filesystems
luego, si se quiere revisar el sistema de archivos del dispositivo,
sudo dosfsck -V /dev/sd1
donde -V
equivale a una verificación del sistema de archivos:
Perform a verification pass. The filesystem check is repeated after the first run. The second pass should never report any fixable errors. It may take considerably longer than the first pass, because the first pass may have generated long list of modifications that have to be scanned for each disk read.
mount -o remount
sólo después de recuperar el sistema de archivos, es decir, después de reparar el error que provocó que el sistema operativo cambiase de rw a ro, se puede tratar de volver a montar el dispositivo:
mount -o remount,rw /dev/sdb1
formateo del dispositivo
si el dispositivo da problemas serios de lectura-escritura, puede que la única solución para recuperarlo consista en volver a darle formato. aunque esta operación supone la pérdida de todo su contenido, puede salvar el dispositivo físico.
en primer lugar, hay que identificar el dispositivo mediante lsblk:
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 1,9G 0 disk
└─mmcblk0p1 179:1 0 1,9G 0 part
comando dd
luego, si se quiere dar formato al dispositivo mmcblk0p1,
sudo dd if=/dev/zero of=/dev/mmcblk0p1
donde dd graba ceros de principio a fin.
dd verboso
dado que dd se toma su tiempo en escribir todos sus ceros en el dispositvo y, además, es muy callado de por sí, se puede recurrir a pv para obtener alguna información sobre el proceso:
sudo dd if=/dev/zero |
pv
|dd of=/dev/mmcblk0p1
pv se ocupa de «concatenate FILE(s), or standard input, to standard output, with monitoring». en suma, consigue que dd que sea más expresivo (valga por verbose).
limpieza del master boot record
si sólo se desea limpiar el MBR del dispositivo, hay que añadir las opciones bs=512 y count=1
a la orden del comando dd:
sudo dd if=/dev/zero of=/dev/mmcblk0p1 bs=512 count=1
de esa manera, se elimina el MBR y la tabla de particiones del dispositivo.
fuente
- «Uso del comando dd» en desdelinux.