/proc/가 마운트되었는지 확인하는 방법

/proc/가 마운트되었는지 확인하는 방법

/proc/가 마운트되었는지 확인하는 방법은 무엇입니까?

  • /etc/mtab은 일관성이 없을 수 있으므로 사용하지 않는 것이 좋습니다.

  • /proc/mounts를 사용하는 것도 옵션이 아닙니다. /proc/가 마운트되지 않으면 존재하지 않을 수도 있기 때문입니다. (그러나 존재 여부를 확인하는 것도 이 확인을 수행하는 한 가지 방법일 수 있습니다.)

이 검사를 수행하는 가장 좋은 방법은 무엇입니까?

답변1

mount인수 없이 명령을 실행하여 현재 설치된 설치 목록을 가져올 수 있습니다. 파일에는 유사한 데이터가 있어야 하지만, 말씀하신 대로 /etc/mtab파일 시스템이 엉망이거나 쓸 수 없거나 다른 프로그램이 문제를 일으키는 경우 실제로 설치된 데이터와 일치하지 않을 수 있습니다. /etc다음과 같이 모든 유형의 마운트를 나열하도록 요청하여 프로세스 마운트에 대한 특정 정보를 얻을 수 있습니다 .mountproc

mount -l -t proc

편집하다:폴더 stat의 장치를 다음 /proc과 비교하여 /루트 파일 시스템 이외의 다른 것이 마운트되었는지 최소한 알 수 있는 것 같습니다.

[[ $(stat -c %d%D /proc) != $(stat -c %d%D /) ]] && echo "Something is mounted at /proc"

답변2

그것이 존재하는지 테스트하십시오 /proc/mounts. 설치되어 있지 않으면 에서 시작되기 때문에 실행하는 것은 mount좋지 않습니다 ./proc/etc

이론적으로는 다른 것이 있을 수도 있습니다 /proc. 그러나 실제로는 그럴 가능성이 거의 없습니다. 파일 시스템이 /proc/mounts존재하고 파일 시스템 /proc이 아닌 proc경우 환경에 대한 어떤 정보도 신뢰할 수 없습니다. 정말 걱정된다면 파일 시스템 유형이 다음과 같은지 확인할 수 있습니다 proc. ( df -PT /proc | awk 'NR==2 && $2=="proc" {print 1}'Linux 유틸리티가 필요하며 dfBusybox에는 해당 옵션이 없습니다.) 대신 이론적으로는 다른 위치에 마운트된 proc 파일 시스템이 있을 수 있습니다. 쉘 명령을 사용하여 이를 쉽게 찾을 수 있는 방법은 없습니다( 열거된 파일 시스템 df읽기 ). /proc/mounts실제로는 /proc/mounts.

답변3

/proc의 파일 시스템이 실제로 proc이고 이와 유사한 다른 파일 시스템이나 디렉토리 구조가 아니라는 것을 (다소간) 보장하려면 다음을 호출할 수 있습니다.statfs()0x9fa0그리고 proc의 값인 유형을 확인하세요 .

답변4

mountpoint많은 Linux 설치에는 "사용 가능"이라는 도구가 있습니다. 첫 번째 인수가 마운트 지점인 경우 종료 코드는 0입니다.

관련 정보