Як знайти, на якому фізичному пристрої знаходиться папка?


110

Конкретно: я так sudo mkdir /workі хотів би переконатися, що він дійсно сидить на моєму жорсткому диску і не відображається на іншому диску.

Як перевірити, де ця папка фізично розміщена?


дивіться unix.stackexchange.com/q/149660/4778 findmnt -T /work
ctrl-alt-delor

Відповіді:


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. Оскільки група томів може охоплювати кілька фізичних томів, ви можете виявити, що у вас є кілька пристроїв, перелічених у списку.

Інший тип логічного блоку пристрою є мД (кілька пристроїв, і називалося мета-диск , я думаю) пристрій, наприклад /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 як свою файлову систему. А тепер що? (Ім'я мого комп’ютера - "весело")
ripper234

1
Тоді, можливо, ви використовуєте LVM? lvdisplayабо lvsбуде вашим другом.
phunehehe

5
Мене настільки вразила ця відповідь, що я використав її як основу для команди «rawdev», яка повертає базові пристрої (і) шляху або розділу, навіть у випадках, коли LVM та / або MD вкладені. Він доступний на Github: github.com/BMDan/rawdev .
BMDan

5

Для сценарію ви можете використовувати:

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

Це сумісність POSIX.


Працює більшу частину часу, однак якщо <pathname> знаходиться у зйомці btrfs у цьому звіті "-".
Еліптичний вигляд

1

У сучасних дистрибутивах Ubuntu існує додатковий шар (картографічний пристрій) між вашим файлом / каталогом та пристроєм. /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шлях.
Дан Даскалеску

@DanDascalescu справедливий пункт. Це може бути корисно, коли / якщо ви хочете знати власне апаратний пристрій, саме це я шукав під час потрапляння цього питання.
аріельф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.