mount

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

mount — утиліта командного рядка в Unix системах. Застосовується для монтування файлових систем.

В Unix-подібних операційних системах файлові системи монтуються в загальне дерево директорій, вершиною якого є кореневий каталог «/». Нова файлова система може бути змонтована в будь-яку вже існуючу директорію (точку монтування) будь-де в дереві директорій. FHS передбачає дві директорії для монтування: /media для змінних носіїв (оптичні диски, USB-накопичувачі, карти пам'яті) та /mnt для тимчасово монтованих файлових систем (петлеві пристрої, спільні мережеві ресурси).

Використання[ред. | ред. код]

mount /dev/cdrom /mnt/cdrom

Пристрій /dev/cdrom монтується в каталог /mnt/cdrom, якщо він існує. Відтепер попередній вміст каталога /mnt/cdrom маскується деревом каталогів пристрою /dev/cdrom і, доки користувач не відмонтує файлову систему від цього каталога (або не змонтує туди щось інше), буде недоступним.

Відмонтування командою umount[ред. | ред. код]

Для відмонтування достатньо вказати точку монтування чи ім'я пристрою

umount /mnt/cdrom

або

umount /dev/cdrom

Монтування USB-пристроїв[ред. | ред. код]

Монтування USB-пристроїв звичайно не відрізняється від монтування пристроїв, приєднаних через інші шини (SATA, SAS, SCSI та ін.). Ядро UNIX повинне мати підтримку USB-пристроїв і, можливо, процеси для обробки подій приєднання/від'єднання цих пристроїв.

Монтування пристроїв з іменами файлів з різним кодуванням[ред. | ред. код]

Файлова система DOS (наприклад, на дискетах чи флеш-картах), — має 8-бітне кодування імен файлів, у якому назви файлів українською, російською чи білоруською мовами використовують кодову сторінку 866. Для показу цих назв у операційній системі з іншим кодуванням (його можна визначити, виконавши команду locale) необхідна конверсія. Найуживаніші кодування для української мови — UTF-8, KOI-8U та CP1251.

Так, наприклад, для найпоширенішої файлової системи USB-дисків — FAT32:

mount -t vfat -o iocharset=utf8,codepage=866 /dev/sdc1 /mnt/usb

Ключем -t визначається тип файлової системи, що монтується, ключем -o — параметри монтування. У Лінуксі для монтування файлової системи FAT32 використовується назва типу vfat. В параметрі iocharset вказується кодування командної оболонки або GUI операційної системи. Папаметр codepage визначає кодування назв файлів. Так, codepage=866 — кодова сторінка 866 для такого йменування файлів українською, російською чи білоруською мовами, щоби створені у Linux-системі файли коректно відображалися в старих ОС (наприклад, в DOS),. /dev/sdc1 — пристрій, що монтується, /mnt/usb — точка монтування цього пристрою (куди монтується)

mount -t msdosfs -L uk_UA.KOI8-U -D CP866 /dev/ad1s1 /mnt

Ключем -L визначається кодування командної оболонки, ключем -D — кодування файлової системи, ключем -t — тип ФС (у прикладі — MS-DOS).

Монтування образів файлових систем[ред. | ред. код]

Образи файлових систем (копії) можуть бути змонтованими таким же чином, як і оригінальна файлова система, але деякі параметри команди відрізняються. Приклад монтування образу компакт-диску (iso-файла):

mount -o loop=/dev/loop0 -t iso9660 file.iso /mnt/iso

Визначення спеціального пристрою: loop=/dev/loop0, тип файлової системи: iso9660, ім'я файла образу: file.iso, точка монтування: /mnt/iso.

mdconfig -a -t vnode -f file.iso -u 1
mount -t cd9660 /dev/md1 /mnt/cdrom

Команда mdconfig створює спеціальний пристрій типу vnode з номером 1 (/dev/md1) і асоціює його з файлом образу file.iso. Команда mount монтує спеціальний пристрій /dev/md1 з типом файлової системи cd9660 у точку монтування /mnt/cdrom.


Монтування мережевих дисків NFS[ред. | ред. код]

mount 172.22.2.1:/mnt/iso/ /mnt/CD/

Тут каталог /mnt/iso/ сервера з мережевою адресою 172.22.2.1 монтується в каталог /mnt/CD локальної машини.

Параметри монтування[ред. | ред. код]

У разі потреби при виконанні команди mount можна вказати додаткові параметри монтування.

-t (тип файлової системи)[ред. | ред. код]

Зазвичай при монтуванні тип визначається автоматично або береться з файлу конфігурації (див. нижче). Але бувають випадки, коли потрібно вказувати тип файлової системи явно. Наприклад, при монтуванні DVD диска з файловою системою UDF.

mount /dev/cdrom /mnt/dvd -t udf

Якщо неправильно вказати тип файлової системи, то команда mount видасть повідомлення про помилку:

mount: wrong fs type, bad option, bad superblock on /dev/cdrom,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

і порадить подивитися в кінець файлу системних повідомлень.

Unable to identify CD-ROM format. 

У разі успішного монтування зазвичай повідомляється, що компакт-диск змонтований (типово) в режимі «лише для читання».

mount: block device /dev/cdrom is write-protected, mounting read-only

-o (атрибути доступу)[ред. | ред. код]

  • Доступ «лише для читання» (ro) або на «читання і запис» (rw)
  • Дозвіл або заборона запуску програм (noexec)

mount --bind[ред. | ред. код]

Команда mount з ключем --bind застосовується в системах на ядрі Linux (починаючи з 2.4) для створення синоніма каталога в дереві файлової системи. Наприклад, команда:

mount --bind /mnt/cdrom/Files /var/ftp/cdrom

дозволить звертатися до файлів, розміщених у /mnt/cdrom/Files, через шлях /var/ftp/cdrom, де /var/ftp/cdrom — якийсь уже існуючий (можливо, порожній) каталог (його справжній вміст буде недоступний до моменту размонтування).

Перевагою цього способу створення посилань на каталоги перед символьним посиланням є можливість обходити обмеження доступу до файлової системи, що виникають перед процесами, запущеними в середовищі chroot або серверами, що застосовують принцип chroot. Наприклад, FTP-сервер proftp робить недоступними символьні посилання, вказуючі на файли й каталоги поза певним каталогом. Дія команди mount --bind нагадує DOS-івський subst.

Список змонтованих файлових систем[ред. | ред. код]

При запуску без параметрів виводиться список змонтованих файлових систем:

/dev/md/5 on / type reiserfs (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)
udev on /dev type tmpfs (rw,nosuid)
devpts on /dev/pts type devpts (rw,nosuid,noexec)
/dev/md/4 on /files type xfs (rw,noatime)
/dev/sda3 on /mnt/a type ext3 (rw,noatime)
/dev/sdd2 on /mnt/docs type reiserfs (rw,noatime)
shm on /dev/shm type tmpfs (rw,noexec,nosuid,nodev)
usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,devmode=0664,devgid=85)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
nfsd on /proc/fs/nfs type nfsd (rw,noexec,nosuid,nodev)
//ax2/i on /mnt/smb type smbfs (0)
172.22.2.1:/files on /mnt/files type nfs (rw,addr=172.22.2.1)

В цьому прикладі вказано багато змонтованих файлових систем (ФС):

  • перший рядок повідомляє, що коренева ФС — це RAID-массив, тип її — reiserfs, параметри монтування: доступ на читання й запис (rw) та вказівка не оновлювати атрибут часу останнього доступу (noatime)
  • sysfs, udev, devpts — це стандартні (для систем Linux) віртуальні ФС
  • /dev/sda3 — це розділ SATA диска
  • usbfs — це змотований USB Flash-диск
  • //ax2/i — це шлях до мережевого диска SMB
  • 172.22.2.1:/files — шлях до мережевого диска NFS, що знаходиться на сервері з IP-адресою 172.22.2.1

Файл конфігурації[ред. | ред. код]

Щоби полегшити процедуру монтування, можна внести до файлу конфігурації /etc/fstab відповідні рядки. Зразок цього файлу в форматі Лінуксу:

# <fs>                  <mountpoint>    <type>          <opts>          <dump/pass>

#/dev/BOOT              /boot           ext2            noauto,noatime  1 2
/dev/sda5               /               reiserfs        noatime         0 1
/dev/sda1               none            swap            sw              0 0
/dev/cdrom              /mnt/cdrom      iso9660         noauto,ro       0 0
#/dev/fd0               /mnt/floppy     auto            noauto          0 0
proc                    /proc           proc            defaults        0 0
shm                     /dev/shm        tmpfs           nodev,nosuid,noexec     0 0

Надалі можна вказувати в команді mount лиш ім'я пристрою або точку монтування — всі додаткові параметри братимуться з файлу конфігурації. Наприклад, стосовно вказаної конфігурації, команда

mount /mnt/cdrom

буде еквівалентна виконанню команди

mount /dev/cdrom /mnt/cdrom -t iso9660 -o noauto,ro

Інше призначення файлу конфігурації — автоматичне монтування файлових систем при завантаженні системи. Якщо при цьому не потрібно монтувати певні файлові системи, то для них у файлі конфігурації потрібно вказати параметр noauto.

Джерела[ред. | ред. код]