Bagaimana cara menemukan di perangkat fisik mana folder berada?


Jawaban:


148

The df(1)perintah akan memberitahu Anda perangkat yang file atau direktori adalah pada:

df /work

Bidang pertama memiliki perangkat tempat file atau direktori aktif.

misalnya

$ df /root
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1              1043289    194300    795977  20% /

Jika perangkat adalah volume logis, Anda perlu menentukan perangkat blok mana yang volume logis aktif. Untuk ini, Anda dapat menggunakan lvs(8)perintah:

# 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)

Kolom terakhir memberi tahu Anda bahwa volume logis usrdalam grup volume orthanc( /dev/mapper/orthanc-usr) ada di perangkat /dev/sda3. Karena grup volume dapat menjangkau beberapa volume fisik, Anda mungkin menemukan bahwa Anda memiliki beberapa perangkat yang terdaftar.

Jenis lain dari perangkat blok logis adalah perangkat md (Beberapa Perangkat, dan dulu disebut meta-disk saya pikir), seperti /dev/md2. Untuk melihat komponen perangkat md, Anda dapat menggunakan mdadm --detailatau melihat/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

Anda dapat melihat yang /dev/md2ada di perangkat /dev/sda3dan /dev/sdb3.

Ada metode lain yang memblokir perangkat yang dapat disarangkan (sekering, sistem file loopback) yang akan memiliki metode mereka sendiri untuk menentukan perangkat blok yang mendasarinya, dan Anda bahkan dapat membuat sarang berlapis-lapis sehingga Anda harus turun. Anda harus mengambil setiap kasing ketika datang.


4
+1. Menarik. Saya tidak tahu dfsangat membantu.
Faheem Mitha

OK, saya melakukan itu dan mendapat / dev / mapper / fun-root sebagai Filesystem saya. Sekarang apa? (Nama komputer saya 'menyenangkan')
ripper234

1
Maka mungkin Anda menggunakan LVM? lvdisplayatau lvsakan menjadi temanmu.
phunehehe

5
Saya sangat terkesan dengan jawaban ini sehingga saya menggunakannya sebagai dasar untuk perintah, "rawdev", yang mengembalikan perangkat yang mendasari path atau partisi, bahkan dalam kasus di mana LVM dan / atau MD bersarang. Ini tersedia di Github: github.com/BMDan/rawdev .
BMDan

5

Untuk skrip, Anda dapat menggunakan:

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

Ini kompatibel dengan POSIX.


Bekerja sebagian besar waktu, namun jika <pathname> berada dalam snapshot btrfs, laporan ini '-'.
Tampilan elips

1

Dalam distribusi modern Ubuntu ada lapisan tambahan (device mapper) antara file / direktori Anda dan perangkat. /dev/mapperberisi tautan simbolik yang menunjuk ke perangkat khusus yang sebenarnya. Misalnya, mencoba di direktori saat ini:

$ 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

Jadi untuk mendapatkan path lengkap perangkat secara terprogram, Anda dapat menggunakan:

$ realpath $(df . | grep '^/' | cut -d' ' -f1)

Yang merupakan cetakan kasus saya:

/dev/dm-1

realpath adalah bagian dari GNU coreutils.


Bagus, tetapi kapan jalan penuh bermanfaat? dfakan tetap menampilkan mapperpath.
Dan Dascalescu

@DanDascalescu titik adil. Mungkin bermanfaat ketika / jika Anda ingin mengetahui perangkat perangkat keras yang sebenarnya yang saya cari ketika memukul pertanyaan ini.
arielf
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.