/dev/null 和 /dev/zero误删除重建方法

一台服务器同事反馈/dev/null使用不正常,登陆发现,其由一个块设备文件变成了一个普通方件,看这个情况应该是被删除后,重新直接touch了一个文件掩盖。重建/dev/null和/dev/zero的方法如下:

[root@localhost /]# mknod /dev/null c 1 3
[root@localhost /]# chmod 666 /dev/null
然后执行命令查看/dev/null 文件,如下所示,已经成功修复/dev/null文件
[root@localhost /]# ls -la /dev/null
同样/dev/zero也类似:
[root@localhost /]# mknod /dev/zero c 1 5
[root@localhost /]# chmod 666 /dev/zero

两者的作用:

/dev/null 在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。/dev/null 被称为位桶(bit bucket)或者黑洞(black hole)。空设备通常被用于丢弃不需要的输出流,或作为用于输入流的空文件。这些操作通常由重定向完成。

/dev/zero /dev/zero 是一个特殊的文件,当你读它的时候,它会提供无限的空字符(NULL, ASCII NUL, 0x00)。其中的一个典型用法是用它提供的字符流来覆盖信息,另一个常见用法是产生一个特定大小的空白文件。BSD就是通过mmap把/dev/zero映射到虚地址空间实现共享内存的。可以使用mmap将/dev/zero映射到一个虚拟的内存空间,这个操作的效果等同于使用一段匿名的内存(没有和任何文件相关)。(引自:/dev/zero - 维基百科)
比如我们经常会使用如下命令创建一个空文件:

# dd if=/dev/zero of=test bs=1M count=100 oflag=dsync




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: Linux/unix/mac 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.