Відповіді:
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