나는 보통 mount
어떤 파일 시스템이 마운트되어 있는지 확인하는 데 이것을 사용합니다. mount
와 사이에 어떤 연관성이 있다는 것도 알고 있지만 /etc/mtab
자세한 내용은 잘 모르겠습니다. 읽고 나서/proc/가 마운트되었는지 확인하는 방법나는 더욱 혼란스러워졌다.
내 질문은: 마운트된 파일 시스템의 가장 정확한 목록을 어떻게 얻을 수 있습니까? 사용 mount
, 읽기 /etc/mtab
또는 콘텐츠 만 사용해야 합니까 /proc/mounts
? 가장 신뢰할 수 있는 결과는 무엇입니까?
답변1
마운트된 파일 시스템의 최종 목록은 에 있습니다 /proc/mounts
.
시스템에 어떤 형태로든 컨테이너가 있는 경우 /proc/mounts
현재 컨테이너의 파일 시스템만 나열됩니다. 예를 들어,chroot, /proc/mounts
마운트 지점이 chroot 내부에 있는 파일 시스템만 나열합니다. (chroot를 탈출하는 방법이 있다는 점에 유의하세요.)
마운트된 파일 시스템 목록도 있습니다 /etc/mtab
. 이 목록은 mount
및 명령에 의해 유지됩니다 umount
. 이는 이러한 명령을 사용하지 않으면(드물게) 작업(설치 또는 제거)이 기록되지 않음을 의미합니다. 실제로 chroot에서 /etc/mtab
시스템 상태와 매우 다른 파일을 자주 찾을 수 있습니다. 또한 chroot 내에서 수행된 마운트는 chroot에 반영되지만 /etc/mtab
main에는 반영되지 않습니다 /etc/mtab
. /etc/mtab
읽기 전용 파일 시스템 에서 수행된 작업도 여기에 기록되지 않습니다.
/etc/mtab
때때로 먼저 또는 추가로 참조하려는 이유 는 마운트 명령줄에 대한 액세스 권한이 있기 때문에 정보가 더 이해하기 쉬운 방식으로 표시될 수 있기 때문입니다. 예를 들어 요청된 마운트 옵션( 목록 및 커널 /proc/mounts
도 표시)이 표시됩니다. 기본값), 바인드 마운트는 ./proc/mounts
mount
/etc/mtab
답변2
버전 2.18 기준(2010년 7월) util-linux
현재 마운트된 파일 시스템 목록을 표시할 수 있는 도구가 포함되어 있습니다.
findmnt
를 사용하여 기본 트리 보기에서 목록 보기로 전환하고, 를 사용하여 -l
출력 열을 -o
정의하고 lsblk
, 를 사용하여 파일 시스템 유형에 따라 결과를 필터링하는 -t
등의 작업을 수행할 수 있습니다.
findmnt -lo 소스, 대상, fstype, 레이블, 옵션, -t ext4 사용
SOURCE TARGET FSTYPE LABEL OPTIONS USED
/dev/sda1 / ext4 ARCH rw,noatime,discard,data=ordered 17.6G
/dev/sdb2 /media/DATA ext4 DATA rw,noatime,discard,data=ordered 44M
~처럼버전 2.27JSON
패스 -J
또는 --json
스위치 출력 도 지원됩니다 .
findmnt -Jo 소스, 대상, 태그, uuid -t ext4
{
"filesystems": [
{
"source": "/dev/nvme0n1p5",
"target": "/",
"label": "ARCH",
"uuid": "f21a53194-b02a-4e92-ad96-fdf9b8bc1db9",
"children": [
{
"source": "/dev/nvme0n1p6",
"target": "/run/media/data",
"label": "DATA",
"uuid": "321e288a-e67c-4b68-8d0b-89720210921f"
}
]
}
]
}
자세한 내용은 해당 man
페이지를 읽고 findmnt --help
사용 가능한 열 목록을 확인하세요.
답변3
어쩌면 이 질문에 대한 답이 나온 지 5년이 지났기 때문에 상황이 달라졌을 수도 있습니다. 이로 cat /proc/mounts
인해 당신이 신경 쓰지 않는 많은 정보가 생성됩니다. 오늘 IMHO, 저는 이것이 궁극적인 해결책이라는 것을 알았습니다.
df -h --output=source,target
매뉴얼 페이지를 읽을 때 수행할 수 있는 다양한 옵션이 있지만 이것이 바로 사용자가 수행하는 작업입니다. 예를 들어, 결과를 추가로 정리하려면 다음을 사용하여 "tmpfs" 파일 유형을 제외할 수 있습니다.
df -hx tmpfs --output=source,target
df
파일 수준이 아닌 파일 시스템 수준에 적용됩니다.
위 명령에는 네트워크 설치도 포함됩니다.
자세한 내용을 보려면 다음 명령을 사용하십시오.
df -hT
노트인터넷 연결이 느린 경우 몇 분 정도 걸릴 수 있습니다!
설치된 네트워크 연결이 없거나 신경쓰지 않는 경우(그리고 루트 액세스 권한이 있는 경우) 더욱 좋습니다.
sudo lsblk -f
답변4
어떤 이유로 설치된 소스에 더 이상 액세스할 수 없는 경우(제 경우에는 도메인 비밀번호가 만료됨) 마운트 지점 디렉터리가 비어 있고 (적어도 저에게는) 설치가 더 이상 /proc/mount
.
나는 이전 자격 증명을 사용하여 내 도메인 계정에 자주(몇 초마다) 액세스하려고 시도하여 계정을 자주 잠그는 일부가 있는 것으로 의심되므로 그러한 설치를 필사적으로 검색하고 있습니다. 그래서 저는 이 문제를 처음에 발견했습니다. 그러나 이것은 /proc/mounts
나에게 해결책이 아닙니다.
다음과 같은 명령을 사용하여 Ubuntu 서버에서 일부 설치를 수행했을 수 있다는 것을 알고 있지만 mount_point_dir
일반 마운트 지점이 설치되지 않은 것 같기 때문에 무엇을 사용할 수 있는지 잘 모르겠습니다.
$ mount.cifs <remotetarget> <mount_point_dir>
마침내 설치 인증 문제가 있다는 확인을 syslog에서 발견했습니다 /var/log/syslog
. 이 로그에는 다음 명령문이 포함된 행이 많이 있습니다.
CIFS VFS: Free previous auth_key.response
Status code returned 0xc0000234 STATUS_ACCOUNT_LOCKED_OUT
이를 통해 내 의심이 확인되었고 /proc/fs/cifs
폴더 아래의 통계 및 디버그 데이터를 보고 추가 확인을 얻을 수 있었습니다.
추가 정보여기.
실제로 대상에 대한 정보를 본 적은 없지만 mount_point_dir
설치 소스만 보면 문제를 해결하는 데 충분했습니다. 서버를 다시 시작하라는 메시지가 표시되고 그 후 설치가 사라지고 계정 잠금 문제가 사라졌기 때문입니다.