존재하지 않는 특수 장치 프로세스를 다시 마운트하는 방법은 무엇입니까?

존재하지 않는 특수 장치 프로세스를 다시 마운트하는 방법은 무엇입니까?

나는 이걸했다:

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.

나는 디렉토리가 여전히 inode 번호를 가지고 있기 때문에 기술적으로 여전히 존재한다고 말합니다. (그리고 inode는 여전히 타임스탬프와 권한 모드 등을 저장합니다.)

# 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.

관련 정보