linux mmap /dev/zero,/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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值