Файлова система Linux являє собою єдине велике дерево з коренем /. Проте ми говоримо про файлових системах різних пристроїв і розділів. Зараз ми дозволимо це здається невідповідність. Коренева файлова система монтується в процесі ініціалізації. Всі інші створені нами файлові системи не можуть бути використані системою Linux, поки вони не будуть змонтовані в точку монтування.
Точка монтування - це просто каталог в поточній сукупності змонтованих файлових систем, де файлова система даного пристрою прикріплюється до загального дереву. Монтування - це процес, який робить файлову систему пристрою частиною єдиної файлової системи, доступної для Linux. Наприклад, можна монтувати файлові системи на розділах жорсткого диска, таких як / boot, / tmp або / home, а також на дискетах - / mnt / floppy і на CD-ROM - / media / cdrom1.
Крім файлових систем на розділах, дискетах і CD, існують і інші типи файлових систем. Ми коротко згадували файлову систему tmpfs, що є файлової системою в віртуальної пам'яті. Також можна монтувати одну файлові системи одного комп'ютера на інший комп'ютер, використовуючи мережеві файлові системи, такі як NFS або AFS. Можна створити файл в файловій системі, відформатувати його як файлову систему (можливо, іншого типу) і змонтувати цю нову файлову систему.
Хоча процес монтування фактично монтує файлову систему будь-якого пристрою (або іншого ресурсу), прийнято говорити, що ви "вмонтовуєте пристрій", розуміючи під цим "монтування файлової системи пристрою".
Базова форма команди mount має два параметри: пристрій (або ресурс), що містять монтируемую файлову систему, і точка монтування. Наприклад, змонтуємо наш розділ з системою FAT32 / dev / hda8 в точці монтування / dos, як показано в лістингу 25.
Лістинг 25. Монтування / dos
# Mount / dev / hda8 / dos
Точка монтування повинна існувати перш, ніж в неї що-небудь буде змонтовано. В результаті монтування файли і підкаталоги монтируемой файлової системи стають файлами і підкаталогами точки монтування. Якщо каталог точки монтування вже містив файли і підкаталоги, вони стають невидимими доти, поки файлова система не буде демонтована. Хороший спосіб уникнути цього - використовувати в якості точок монтування тільки порожні каталоги.
Після монтування файлової системи файли і каталоги, створені або скопійовані в точку монтування або в її підкаталог, будуть розташовуватися в змонтованої файлової системи. Так, в нашому прикладі, файл /dos/sampdir/file.txt буде створений в системі FAT32, змонтованої в точці / dos.
Зазвичай команда mount автоматично визначає тип файлової системи. Але іноді може знадобитися явне завдання типу файлової системи, для чого використовується опція -t, як показано в лістингу 26.
Лістинг 26. Монтування з явним завданням типу файлової системи
# Mount -t vfat / dev / hda8 / dos
Щоб побачити, які файлові системи змонтовані, використовуйте mount без параметрів. У лістингу 27 наведено приклад для нашої системи.
/ Dev / hda6 on / type reiserfs (rw)
proc on / proc type proc (rw)
sysfs on / sys type sysfs (rw)
devpts on / dev / pts type devpts (rw, gid = 5, mode = 620)
tmpfs on / dev / shm type tmpfs (rw)
usbfs on / proc / bus / usb type usbfs (rw)
tmpfs on /lib/modules/2.6.12-10-386/volatile type tmpfs (rw, mode = 0755)
/ Dev / hda2 on / boot type ext3 (rw)
/ Dev / hda8 on / dos type vfat (rw)
/ Dev / hda7 on / home type xfs (rw)
/ Dev / hda1 on / media / hda1 type ntfs (rw)
tmpfs on / dev type tmpfs (rw, size = 10M, mode = 0755)
Команда mount має кілька опцій, які змінюють її поведінку в порівнянні з поведінкою за замовчуванням. Наприклад, можна змонтувати файлову систему «тільки для читання», вказавши атрибут -o ro. Якщо файлова система вже змонтована - додайте remount, як показано в лістингу 28.
Лістинг 28. Установка атрибута "тільки читання"
# Mount -o remount, ro / dos
- вказуйте опції через кому;
- при перемонтування вже змонтованої файлової системи досить визначити яку точку монтування, або назву пристрою. Вказувати і те й інше не обов'язково;
- не можна перемонтувати файлову систему, створену тільки для читання, в режим читання / запису. Незмінні носії, наприклад, на CD-ROM, автоматично монтуються тільки для читання.
- для перемонтування пристрої, що допускає запис, в режим читання / запису введіть -o remount, rw
Команди перемонтування не будуть виконані, якщо який-небудь процес має відкриті файли або каталоги в перемонтіруемой файлової системи. Для знаходження відкритих файлів використовується команда lsof. За більш детальною інформацією про додаткові опціях команди lsof звертайтеся до документації man.
З керівництва до теми 102 "Екзамену LPI 101. Установка Linux і управління пакетами", ви дізналися, як за допомогою параметра root = в GRUB і LILO повідомити завантажувачу про те, яка файлова система монтується в якості кореневої. Змонтувавши цю файлову систему, процес установки запускає mount з опцією -a для автоматичного монтування набору файлових систем. Цей набір задається у файлі / etc / fstab. У лістингу 29 показаний файл / etc / fstab для системи Ubuntu, встановленої на файлові системи, створені раніше в цьому посібнику.
Лістинг 29. Приклад використання fstab
file system
Для вищезазначених прикладів ім'я повинно бути задано як / dev / hda1.
mount point
Це точка монтування, розглянута в розділі Монтування файлових систем. Для простору підкачки це поле має значення none. Для файлових систем ext2, ext3 і xfs можна також вказувати мітку тому, наприклад: LABEL = XFSHOME. Це робить систему більш стійкою при установці і видаленні пристроїв.
type
Визначає тип файлової системи. CD / DVD-диски часто мають різні файлові системи - ISO9660 або UDF - тому ви можете перерахувати різні можливості у вигляді списку, розділеного комами. Якщо ви хочете, щоб mount автоматично визначила тип, використовуйте auto, як зроблено в останньому рядку для дискети.
option
Визначає параметри монтування. Для монтування зі значеннями за замовчуванням використовуйте defaults. Кілька корисних опцій:
* Rw і ro вказують монтування файлової системи в режимі читання / запису або тільки для читання.
* Noauto вказує, що файлова система не повинна автоматично монтуватися при завантаженні або при видачі команди mount -a. У нашому прикладі ця опція застосована для знімних пристроїв.
* user
* Визначає, що користувач, який не має прав root, може монтувати або демонтувати дану файлову систему. Це особливо корисно для знімних носіїв. Ця опція повинна бути задана в / etc / fstab, а не в команді mount.
* Exec або noexecопределяют, дозволяти чи виконання файлів з даної файлової системи. Для файлових систем, що монтуються користувачем, за замовчуванням встановлюється значення noexec, якщо тільки після поля user не вказано exec.
* Noatime відключає запис атрибута часу доступу до файлу. Це може підвищити продуктивність.
dump
Визначає, чи буде команда dump включати дану файлову систему ext2 або ext3 в резервні копії. Значення 0 означає, що dump ігнорує цю файлову систему.
pass
Ненульові значення pass визначають порядок перевірки файлових систем під час завантаження, як описано в темі Перевірка файлових систем.
Для монтування файлових систем, перерахованих в / ect / fstab, досить задати або ім'я пристрою, або точку монтування. Обидва параметра одночасно ставити не потрібно.
За більш детальним описом функцій fstab і mount, включаючи не розглянуті тут опції, звертайтеся до документації man.
Розмонтування файлових систем
Всі змонтовані файлові системи зазвичай автоматично размонтіруйте системою при перезавантаженні або виключенні. При размонтировании файлової системи все кешированниє дані файлової системи зберігаються на диск.
Також можна демонтувати файлову систему вручну. Насправді це необхідно робити щоразу, коли ви видаляєте записується знімний носій - дискету, USB-диск або флеш-накопичувач. Перш ніж демонтувати файлову систему, слід переконатися у відсутності працюючих процесів, які мають відкриті файли в цій файлової системи. Потім використовуйте команду umount, вказавши в якості аргументу або ім'я пристрою, або точку монтування. Кілька прикладів успішного і безуспішного размонтирования приведено в лістингу 30.
Лістинг 30. Розмонтування файлових систем
# Lsof / dos
root @ pinguino:
# Umount / dos
root @ pinguino:
# Mount / dos
root @ pinguino:
# Umount / dev / hda8
root @ pinguino:
# Umount / boot
umount: / boot: device is busy
umount: / boot: device is busy
root @ pinguino:
# Lsof / boot
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
klogd 6498 klog 1r REG 3,2 897419 6052 /boot/System.map-2.6.12-10-386
Відключивши файлової системи файли в каталозі, використовувався в якості точки монтування, знову стають видимими.
Ви могли помітити, в описі команди fstab, що простір підкачки не має точки монтування. У процесі завантаження система зазвичай активізує простір підкачки, вказане в / etc / fstab, а то й зазначена опція noauto. Для управління простором підкачки в працюючій системі, наприклад, для додавання нового розділу підкачки, використовуються команди swapon і swapoff. Детальніше див. Документацію man.