不小心删除了设备节点/dev/sda1

不小心删除了设备节点/dev/sda1

我正在清理我的系统,显然有点得意忘形了。我最终跑了:sudo rm -rf /dev/sda1。我仍然可以看到它正在运行lsblk并且df -h安装/dev/sda1在 上/,但是它不作为特殊设备存在于 下/dev/
我无法重新启动该服务器。

# lsblk
sda       8:0    0    50G  0 disk
├─sda1    8:1    0  49.9G  0 part /

如何解决这个问题?

答案1

首先,不要恐慌

事实上,您并没有擦除整个驱动器。您的所有数据仍然存在,您的系统仍在运行这一事实就证明了这一点。

您所做的就是删除 Linux 与大多数 Unices 一样用于直接识别和寻址该分区的设备文件,并且总的来说,它唯一需要执行此操作的时间是在挂载或修改分区时。

如果您的系统甚至是远程现代的,那么它很可能会在启动时使用udev或类似的自动填充功能/dev/,并且一切将继续正常工作,但为了您自己的保证,我建议您采纳 Jaromanda 的建议并通过运行重新创建节点sudo mknod /dev/sda1 b 8 1

然后使用以下命令确保其权限设置正确:

sudo chown root.disk /dev/sda1
sudo chmod 660 /dev/sda1

编辑根据要求,进一步澄清一下:

mknod命令完全按照锡上的说明进行操作 - 它Akes 设备点头e.在这种特殊情况下,您告诉它创建一个主设备号为 8,次设备号为 1 的块设备,恰好翻译为“作为磁盘呈现的第一个 SCSI 设备的第一个分区”。

(有关设备节点的更多说明,本教程内容丰富,但有点超出了这个问题的范围)

相关内容