Відповіді:
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
.
Є й інші методи, які блокують пристрої, які можуть бути вкладені (запобіжник, файлові системи із зворотним зв'язком), які матимуть власні методи визначення базового блокового пристрою, і ви навіть можете вкладати декілька шарів, так що вам доведеться працювати вниз. Вам доведеться сприймати кожен випадок, коли він потрапляє.
df
так вміщує.
lvdisplay
або lvs
буде вашим другом.
Для сценарію ви можете використовувати:
$ df -P <pathname> | awk 'END{print $1}'
Це сумісність POSIX.
У сучасних дистрибутивах 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
шлях.
findmnt -T /work