물리적으로 마운트된 파일 시스템이 몇 개인지 확인하는 방법은 무엇입니까?

물리적으로 마운트된 파일 시스템이 몇 개인지 확인하는 방법은 무엇입니까?

나는 최근에 논리적 파일 시스템과 물리적 파일 시스템이라는 두 가지 다른 유형의 파일 시스템을 마운트할 수 있다는 것을 알게 되었습니다.

제가 이해한 바에 따르면, 물리적 파일 시스템은 머신에 물리적으로 연결된 디스크에 있는 하드웨어입니다.

논리 파일 시스템은 원격 어딘가에 존재하며 네트워크를 통해 마운트됩니다.

하루 전에 서버에 SSH를 통해 명령을 실행 mount | wc -l하고 17이라는 응답을 받았습니다. 오늘 나는 같은 명령을 실행했고 70을 얻었습니다. mount물리적 및 논리적으로 마운트된 파일 시스템이 모두 나열되어 있는 것 같습니다 .

마운트된 물리적 파일 시스템의 수만 계산하는 방법이 있습니까? 짧은 명령을 사용하는 것이 더 낫습니까?

답변1

"논리적" 파일 시스템은 반드시 네트워크에 마운트될 필요는 없습니다. 예를 들어 70개의 파일 시스템이 마운트된 시스템에서 대부분은 네트워크 파일 시스템이 아닌 커널 기능에 해당하는 파일 시스템일 수 있습니다. 논리 파일 시스템에는 sysfs, proc, 모든 cgroup 파일 시스템, , tmpfs등 이 포함되며 devtmpfs모두 "로컬" 파일 시스템입니다.

"비물리적" 파일 시스템은 를 /proc/filesystems사용할 때 커널에서 인식되므로 nodev다음을 사용하여 "물리적" 파일 시스템만 나열할 수 있습니다 findmnt.

findmnt -t $(grep -v nodev /proc/filesystems | paste -sd, - | tr -d \\t)

파일 시스템 수를 계산하려면 헤더를 제거하고 출력을 다음에 공급합니다 wc -l.

findmnt -n -t $(grep -v nodev /proc/filesystems | paste -sd, - | tr -d \\t) | wc -l

이미지 파일, 기타 비장치 파일 또는 네트워크의 원격 블록 장치에서 이러한 파일 시스템 유형을 마운트할 수 있지만 이 접근 방식은 대부분의 시스템에서 좋은 결과를 제공합니다.

또 다른 접근 방식은 디스크 장치 자체에서 시작하는 것입니다 lsblk. ;를 사용하면 lsblk -f실제 마운트된 파일 시스템에 도달하는 데 필요한 수준 수에 관계없이 물리적 장치 트리가 출력됩니다. 당신은 결합할 수 있습니다저것물리적 파일 시스템에 대한 위의 정보를 사용하여 시스템의 블록 장치와 일치하는 파일 시스템만 나열하십시오.

lsblk -f | grep -F -f <(grep -v nodev /proc/filesystems | tr -d \\t)

원하는 결과를 계산합니다.

lsblk -f | grep -F -f <(grep -v nodev /proc/filesystems | tr -d \\t) | wc -l

관련 정보