误删除/dev/zero等Unix特殊文件的解决方法

今天在折腾Linux的时候,误操作删除了/dev/zero文件。本来以为这个问题很好解决,从其他系统上复制或者创建一个即可,但它例外。

故障现象:

root@localhost [~]# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
dd: opening `/dev/zero': No such file or directory
root@localhost [~]# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.8578e-05 s, 0.0 kB/s

经过查阅资料,发现该文件是Unix下的一个特殊文件,通过普通的方法是无法还原的,只能使用mknod命令创建:

root@localhost [~]# mknod /dev/zero c 1 5
root@localhost [~]# chmod 666 /dev/zero
root@localhost [~]# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 7.63762 s, 141 MB/s

可以看出,在执行了如上高亮的前两行代码后,向/dev/zero填充数据返回成功。

PS:/dev/null也是一个特殊文件,修复方式类似。

还没有评论,快来抢沙发!

发表评论

  • 😉
  • 😐
  • 😡
  • 😈
  • 🙂
  • 😯
  • 🙁
  • 🙄
  • 😛
  • 😳
  • 😮
  • emoji-mrgree
  • 😆
  • 💡
  • 😀
  • 👿
  • 😥
  • 😎
  • ➡
  • 😕
  • ❓
  • ❗
  • 69 queries in 0.399 seconds