如何创建/ dev / null?


65

我删除了/ dev / null。如何恢复?


6
我曾经发现/ dev / null被普通文件替换,只有root可以写入。我想了一会儿,我将不得不重新安装所有内容,但是,如下所述,如果您知道窍门,那么恢复很简单。
斯图尔特·伍德沃德

1
当在脚本中运行rm命令时,通过在$和&周围翻转错误使管道错误,从而设法删除了/ dev / null。哎哟!
flickerfly 2015年

Answers:


81
mknod /dev/null c 1 3
chmod 666 /dev/null

使用这些命令可以创建/dev/null或使用手册null(4)页以获得进一步的帮助。


5
为了完整起见,我注意到这适用于所有基于linux的系统。其他系统可能具有不同的编号。
Random832

2
同样,这仅设置设备文件本身,不会恢复其权限。您将不得不chmod go+w手动操作。
Attila O.

7
野兽的数量!
wefwefa3

7
mknod -m 0666 /dev/null c 1 3-同一件事,但更短
fnkr

1
mknod -m 0666 /dev/null c 1 3完美地在CentOS 7上还原/ dev / null只是让其他人知道。
Bozzy

32

在许多传统的unice中,您可以使用MAKEDEV脚本使用其默认权限重新创建设备。传统上,此脚本/dev位于/sbinUbuntu中,但位于Ubuntu中。向其传递一个参数,该参数指示您要创建的设备;在Ubuntu上std(您也可以编写MAKEDEV null,可以创建null许多其他设备)。

在运行udev的现代Linux系统下,您可以通过以下命令告诉udev根据可用的驱动程序和连接的硬件重新创建所有或某些设备udevadm trigger

udevadm trigger --sysname-match=null

这个答案仍然是最新的吗?我使用的是CentOS 7,我只是错误地覆盖了/ dev / null,这个udevadm trigger --sysname-match=null技巧对我没有用,但mknod -m 0666 /dev/null c 1 3效果很好。
Bozzy

@Bozzy我知道它可以与预先系统化的udev一起使用。我最近没有尝试过,但据我所知这仍然可以工作。如果添加--verbose,它会列出/sys/devices/virtual/mem/null 吗?
吉尔斯

是的,它列出了这一点。我试图在我的开发机上再次覆盖/ dev / null,但奇怪的是,我在这里无法执行此操作,因此我现在无法进行更深入的分析...
Bozzy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.