it-swarm-tr.com

Bir klasörün hangi fiziksel aygıtta olduğunu nasıl bulabilirim?

Özellikle: Sudo mkdir /work Yaptım ve gerçekten sabit diskimde oturduğunu ve başka bir sürücüye eşlenmediğini doğrulamak istiyorum.

Bu klasörün fiziksel olarak nerede bulunduğunu nasıl kontrol ederim?

120
ripper234

df(1) komutu cihaza bir dosya veya dizinin açık olduğunu bildirir:

_df /work
_

İlk alan, dosyanın veya dizinin açık olduğu aygıta sahiptir.

örneğin.

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

Cihaz mantıksal bir birimse, mantıksal birimin hangi blok cihaz (lar) üzerinde olduğunu belirlemeniz gerekir. Bunun için lvs(8) komutunu kullanabilirsiniz:

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

Son sütun size usr (_/dev/mapper/orthanc-usr_) birim grubundaki orthanc mantıksal hacminin _/dev/sda3_ cihazında olduğunu bildirir. Bir birim grubu birden çok fiziksel birime yayılabileceğinden, listelenen birden çok aygıtınızın olduğunu görebilirsiniz.

Başka bir mantıksal blok cihazı türü, md (Birden Çok Cihaz ve eskiden meta disk olarak adlandırılır) cihazdır, örneğin _/dev/md2_. Bir md cihazının bileşenlerine bakmak için _mdadm --detail_ kullanabilir veya _/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_'in _/dev/sda3_ ve _/dev/sdb3_ cihazlarında olduğunu görebilirsiniz.

Altta yatan blok aygıtını belirlemek için kendi yöntemlerine sahip olacak aygıtların iç içe yerleştirilebileceği (Sigorta, geri döngü dosya sistemleri) başka yöntemler de vardır ve hatta aşağı inmeniz için birden fazla katmanı iç içe yerleştirebilirsiniz. Her vakayı olduğu gibi almanız gerekecek.

154
camh

Bir komut dosyası için şunları kullanabilirsiniz:

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

Bu POSIX uyumludur.

5
Tom Hale

Ubuntu'nun modern dağıtımlarında, dosya/dizininiz ve aygıt arasında ek bir katman (aygıt eşleyici) vardır. /dev/mapper, gerçek özel cihazlara işaret eden sembolik bağlantılar içerir. Örneğin, geçerli dizinde denemek:

$ 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

Böylece, cihazın tam yolunu programlı olarak almak için şunları kullanabilirsiniz:

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

Benim durumum hangisi yazdırır:

/dev/dm-1

realpath GNU coreutils öğesinin bir parçasıdır.

2
arielf