在我们的生产服务器中突然/ dev / null成为常规文件,并且由于此sshd服务已停止并且无法登录服务器.我们还尝试以下步骤配置回字符设备文件,
rm -rf /dev/null mknod /dev/null c 1 3
一旦我们运行rm命令,就会在mknod运行之前将/ dev / null重新创建为常规文件.我们无法弄清楚这是如何发生的以及创建此文件的组件.因此,在我们解决此问题之前,我们无法将/ dev / null创建为字符设备文件.
解决方法
当您删除(rm)/ dev / null时,任何正在运行且需要“> / dev / null”或等效的程序/脚本将重新创建具有该名称的新(常规)文件.
那些可以随时产生(有些也可能不断写入)
那些可以随时产生(有些也可能不断写入)
打败他们:
你创建一个新的/ dev / null特殊文件(在不同的名称下)
mknod /dev/newnull c 1 3 chmod 777 /dev/newnull
然后将其移动(以root身份)连续创建的:
mv -f /dev/newnull /dev/null
只有这样你才能重新启动(不要在没有适当的/ dev / null文件的情况下重新启动……通常不容易)[我忘记了这一步,这当然是必要的.谢谢@ Random832的提醒!]
你最后需要重新启动,以摆脱仍然打开“/ dev / null”的现有程序仍然会写入文件系统,即使你之后更换它,一点一点地填充文件系统)(的确),就像删除文件一样,任何仍然打开该文件描述符的程序仍然可以写入前一个inode,即使文件名现在指向新文件名)