dd: escribiendo '/ dev / null': no ​​queda espacio en el dispositivo

Estoy leyendo un file de 550 MB en / dev / null y me estoy poniendo

dd: writing '/dev/null': No space left on device 

Me sorprendió. Pensé que / dev / null es un agujero negro donde puedes enviar todo lo que quieras (porque es un fs virtual).

Sí, mi disco está casi lleno cuando recibo este error. ¿Qué puedo hacer aparte de eliminar contenido del disco?

  ls -l /dev/null -rw-r--r-- 1 root root 0 July 7 21:58 /dev/null 

En lugar de

  crw-rw-rw- 1 root root 1, 3 July 7 02:58 /dev/null 

Comando que estoy usando:

 time sh -c "dd if=$filename of=/dev/null" 

/dev/null es un file especial, de tipo dispositivo de caracteres. El controller de ese dispositivo de caracteres ignora todo lo que intente escribir en el dispositivo y las escrituras siempre son exitosas. Si una escritura en /dev/null falla, significa que de alguna manera ha logrado eliminar el /dev/null adecuado y replacelo por un file normal. Es posible que haya eliminado accidentalmente /dev/null ; luego, el próximo … >/dev/null lo habría recreado como un file normal.

Ejecute ls -l /dev/null y verifique que la línea se vea algo así como

 crw-rw-rw- 1 root root 1, 3 Sep 13 2011 /dev/null 

Debe comenzar con crw-rw-rw- : c para un dispositivo de caracteres y permissions que permitan a todos leer y escribir. El file debe ser propiedad de root, aunque no es muy importante. Los dos numbers después del propietario y el grupo identifican el dispositivo ( número de dispositivo principal y secundario ). Arriba, muestro los valores bajo Linux; diferentes variantes de Unix tienen diferentes valores. La date suele ser la date en que se instaló el sistema o la date del último reinicio y no importa.

Si necesita recrear el file, algunos sistemas proporcionan un MAKEDEV MAKEDEV, ya sea en la RUTA de la raíz o en /dev . Ejecute cd /dev; ./MAKEDEV std cd /dev; ./MAKEDEV std o algo así para recrear los dispositivos básicos estándar como /dev/null . O cree el dispositivo manualmente, proporcionando los numbers de dispositivo correctos; en Linux, eso es

 mknod -m 666 /dev/null c 1 3