답변:
이 df(1)
명령은 장치에 파일 또는 디렉토리가 있음을 알려줍니다.
df /work
첫 번째 필드에는 파일 또는 디렉토리가있는 장치가 있습니다.
예 :
$ df /root
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 1043289 194300 795977 20% /
장치가 논리 볼륨 인 경우 논리 볼륨이 켜져있는 블록 장치를 결정해야합니다. 이를 위해 다음 lvs(8)
명령을 사용할 수 있습니다 .
# df /usr
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/orthanc-usr
8256952 4578000 3259524 59% /usr
# lvs -o +devices /dev/mapper/orthanc-usr
LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices
usr orthanc -wi-ao 8.00g /dev/sda3(0)
마지막 열은 usr
볼륨 그룹 orthanc
( /dev/mapper/orthanc-usr
) 의 논리 볼륨 이 장치에 있음을 알려줍니다 /dev/sda3
. 볼륨 그룹은 여러 물리 볼륨에 걸쳐있을 수 있으므로 여러 장치가 나열되어있을 수 있습니다.
다른 유형의 논리 블록 장치는 다음과 같은 md (Multiple Devices, 그리고 생각했던 메타 디스크라고 불렀습니다) 장치 /dev/md2
입니다. md 장치의 구성 요소를 보려면 사용 mdadm --detail
하거나 살펴볼 수 있습니다/proc/mdstat
# df /srv
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/md2 956626436 199340344 757286092 21% /srv
# mdadm --detail /dev/md2
...details elided...
Number Major Minor RaidDevice State
0 8 3 0 active sync /dev/sda3
1 8 19 1 active sync /dev/sdb3
및 장치 /dev/md2
에있는 것을 볼 수 있습니다 ./dev/sda3
/dev/sdb3
기본 블록 장치를 결정하기위한 고유 한 방법이있는 블록 장치를 중첩 (퓨즈, 루프백 파일 시스템) 할 수있는 다른 방법이 있으며 여러 계층을 중첩하여 처리해야합니다. 각각의 경우에 따라 처리해야합니다.
df
그렇게 적응하는 것을 몰랐다 .
lvdisplay
아니면 lvs
친구가 될 것입니다.
스크립트의 경우 다음을 사용할 수 있습니다.
$ df -P <pathname> | awk 'END{print $1}'
POSIX 호환입니다.
현대 우분투 배포판에는 파일 / 디렉토리와 장치 사이에 추가 계층 (장치 매퍼)이 있습니다. /dev/mapper
실제 특수 장치를 가리키는 기호 링크가 포함되어 있습니다. 예를 들어, 현재 디렉토리에서 시도 :
$ df . | grep '^/' | cut -d' ' -f1
/dev/mapper/kubuntu--vg-root
$ ls -l /dev/mapper/kubuntu--vg-root
lrwxrwxrwx 1 root root 7 Nov 22 18:02 /dev/mapper/kubuntu--vg-root -> ../dm-1
프로그래밍 방식으로 장치의 전체 경로를 얻으려면 다음을 사용할 수 있습니다.
$ realpath $(df . | grep '^/' | cut -d' ' -f1)
내 사건은 다음 중 어느 것입니까?
/dev/dm-1
realpath
GNU coreutils의 일부입니다.
df
여전히 mapper
경로를 표시합니다 .
findmnt -T /work