폴더가있는 실제 장치는 어떻게 찾습니까?


110

특히 : 나는 sudo mkdir /work그것을하고 실제로 하드 드라이브에 있고 다른 드라이브에 매핑되지 않았는지 확인하고 싶습니다.

이 폴더가 실제로 어디에 있는지 확인하려면 어떻게합니까?


답변:


148

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

기본 블록 장치를 결정하기위한 고유 한 방법이있는 블록 장치를 중첩 (퓨즈, 루프백 파일 시스템) 할 수있는 다른 방법이 있으며 여러 계층을 중첩하여 처리해야합니다. 각각의 경우에 따라 처리해야합니다.


4
+1. 흥미 롭군 나는 df그렇게 적응하는 것을 몰랐다 .
Faheem Mitha

좋아, 나는 그것을했고 내 파일 시스템으로 / dev / mapper / fun-root를 얻었다. 이제 뭐? (내 컴퓨터의 이름은 'fun'입니다)
ripper234

1
그렇다면 아마도 LVM을 사용하고 있습니까? lvdisplay아니면 lvs친구가 될 것입니다.
phunehehe

5
LVM 및 / 또는 MD가 중첩 된 경우에도 경로 또는 파티션의 기본 장치를 반환하는 "rawdev"명령의 기반으로이 답변에 깊은 인상을 받았습니다. 그것은 Github에서 볼 수있다 : github.com/BMDan/rawdev .
BMDan

5

스크립트의 경우 다음을 사용할 수 있습니다.

$ df -P <pathname> | awk 'END{print $1}'

POSIX 호환입니다.


<pathname>이 btrfs 스냅 샷에 있으면 '-'가보고됩니다.
Elliptical view

1

현대 우분투 배포판에는 파일 / 디렉토리와 장치 사이에 추가 계층 (장치 매퍼)이 있습니다. /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경로를 표시합니다 .
Dan Dascalescu

@ DanDascalescu 페어 포인트. 이 질문에 부딪 칠 때 찾고 있던 실제 하드웨어 장치를 알고 싶을 때 / 유용 할 수 있습니다.
arielf
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.