如何重新挂载不存在的特殊设备进程?

如何重新挂载不存在的特殊设备进程?

我这样做了:

root# mkdir /tmp/test && mount --bind /tmp/test/ /proc/
root# rm -rf /tmp/test
root# mount -t proc proc /proc

但后来我遇到了这个:

mount:特殊设备进程不存在

[root@srv ~]# umount /proc
umount: /proc: umount failed: No such file or directory
[root@srv ~]# umount /proc
umount: /proc: umount failed: No such file or directory
[root@srv ~]# mount -t proc proc /proc
mount: special device proc does not exist
[root@srv ~]# ls -al /proc
total 0

[root@srv ~]# uname -r
3.10.0-693.11.6.el7.x86_64
[root@srv ~]# mount -V
mount from util-linux 2.23.2 (libmount 2.23.0: selinux, debug, assert)
[root@srv ~]# umount -V
umount from util-linux 2.23.2 (libmount 2.23.0: selinux, debug, assert)

如何/proc 在不重新启动的情况下重新挂载?

答案1

您对第一个安装所做的操作与原始安装重叠/proc。不要删除/tmp/test但卸载它:

leap:~ # mount -o bind /tmp/test/ /proc/
leap:~ # mount |  grep proc
mount: failed to read mtab: No such file or directory
leap:~ # umount /proc
leap:~ # mount |  grep proc
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=23,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13202)

如果您在卸载之前删除了该目录,则必须重新启动,我不确定,但我不认为您可以从该状态重新安装 /proc。

答案2

为了避免出现此错误消息,您需要先运行另一个命令:

root# mkdir /tmp/test && mount --bind /tmp/test/ /proc/
root# rm -rf /tmp/test
root# umount /proc/
root# mount -t proc proc /proc

但您可能是从proc安装在/proc.在这种情况下,最后一个命令将显示一条新消息:

mount: /proc: proc already mounted on /proc

如果运行,您可以避免新的错误消息umount /proc/ 两次,然后再次尝试安装它。但是,您没有说出您想要这样做的任何原因:-)。也许您只想运行上面的前三个命令:-)。然后您可以像往常一样继续使用/proc文件系统。


您无法运行您尝试过的命令(在 Linux 上)。原因是删除目录后,就不能再将其用作目录了。当您尝试使用已删除的目录时,Linux 返回错误代码ENOENT。该错误代码的描述是“没有这样的文件或目录”。

从技术上讲,错误代码令人困惑,因为该目录从技术上讲仍然存在。但它比任何其他错误代码都更适合:-)。

# mkdir dir
# cd dir
# rmdir ../dir
# mkdir subdir
mkdir: cannot create directory ‘subdir’: No such file or directory

同样,您也不允许在已删除的目录之上挂载文件系统。

# mount --bind /proc .
mount: .: mount(2) system call failed: No such file or directory.

我说该目录在技术上仍然存在,因为它仍然有一个索引节点号(并且索引节点仍然存储时间戳和权限模式等):

# ls -l -i -d .
5521426 drwxr-xr-x. 0 root root 0 Oct 18 13:09 .
# chmod a-x .
# ls -l -d .
drw-r--r--. 0 root root 0 Oct 18 13:09 .

您的mount命令没有打印错误代码的一般描述:“没有这样的文件或目录”。该mount程序尝试准确猜测可能导致错误代码的原因。不幸的是,这意味着它有时会猜测错误:-)。 “特殊设备过程”没有问题。问题出在安装点上/proc

相关内容