MOUNT(8) | Керування системою | MOUNT(8) |
mount — змонтувати файлову систему
mount [-h|-V]
mount [-l] [-t тип_файлової_системи]
mount -a [-fFnrsvw] [-t тип_файлової_системи] [-O список_параметрів]
mount [-fnrsvw] [-o параметри] пристрій|точка_монтування
mount [-fnrsvw] [-t тип_файлової_системи] [-o параметри] пристрій точка_монтування
mount --bind|--rbind|--move старий_каталог новий_каталог
mount --make-[shared|slave|private|unbindable|rshared|rslave|rprivate|runbindable] точка_монтування
Всі файли, доступні в системі Unix, зібрані в одне велике дерево, ієрархію файлів, з коренем в /. Ці файли можуть розташовуватися на різних пристроях. Команда mount служить для приєднання файлової системи, знайденої на деяких пристроях, у велике дерево файлів. І навпаки, команда umount(8) знову їх від'єднує. Файлова система використовується, щоб контролювати, як дані зберігаються на пристрої або наданому у віртуальний спосіб через мережу або інші служби.
Стандартна форма команди mount є:
mount -t тип
пристрій
каталог
Наказує ядру приєднати файлову систему, знайдену на пристрій (що має тип тип) в каталозі каталог. Параметр -t тип є необов'язковим. Команда mount переважно сама може визначити файлову систему. Дозволи root типово необхідні, щоб змонтувати файлову систему. Див. розділ "Монтування для несуперкористувача" нижче щодо подальшої інформації. Попередній вміст (якщо він був) а також власник та режим доступу каталог стають невидимі, і поки система примонтована, шлях каталог вказує на кореневу файлову систему на пристрій.
Якщо надано лише каталог або пристрій, наприклад:
mount
/каталог
тоді mount шукає на точку монтування (і якщо не знайдено, тоді на пристрій) у файлі /etc/fstab. Можна використовувати параметри --target або --source, щоб уникнути неоднозначних інтерпретацій для наданих аргументів. Наприклад:
mount --target
/точка_монтування
Одну й ту ж файлову систему можна змонтувати кілька разів, а в деяких випадках (наприклад, мережеві файлові системи) одну й ту ж файлову систему можна кілька разів змонтувати до однієї точки монтування. Команда mount не реалізує жодної політики для керування цією поведінкою. Уся поведінка керується ядром і зазвичай залежить від драйвера файлової системи. Винятком є --all: у цьому випадку вже змонтовані файлові системи нехтуються (докладніше див. --all нижче).
Списковий режим підтримується лише для сумісності з попередніми версіями.
Для докладнішого та налаштовуваного виведення, особливо у власних скриптах, використовуйте findmnt(8). Зверніть увагу, що символи керування в назві точки монтування замінюються на '?'.
Така команда виведе перелік усіх змонтованих файлових систем (типу тип):
mount [-l] [-t
тип]
Параметр -l додає до цього списку мітки. Див. нижче.
Більшість пристроїв позначаються назвою файлу (блокового спеціального пристрою), як і /dev/sda1, але можливе й інше. Наприклад, у випадку монтування NFS, device може мати вигляд knuth.cwi.nl:/dir.
Назви пристроїв розділів диска нестабільні; зміна конфігурації обладнання, а також додавання чи видалення пристрою може призвести до зміни назв. Тому дуже бажано використовувати ідентифікатори файлових систем або розділів, такі як UUID або LABEL. Наразі підтримуються такі ідентифікатори (теги):
LABEL=мітка
UUID=uuid
Зверніть увагу, що mount використовує UUID як рядки. UUID з командного рядка або з fstab(5) не перетворюються у внутрішнє двійкове подання. В рядковому поданні UUID слід використовувати символи нижнього регістру.
PARTLABEL=мітка
PARTUUID=uuid
ID=ідентифікатор
Команда lsblk --fs надає огляд файлових систем, міток та UUID на доступних блокових пристроях. Команда blkid -p <пристрій> надає детальну інформацію про файлову систему на вказаному пристрої.
Пам'ятайте, що унікальні UUID та міток не гарантована, особливо якщо ви переміщуєте, надаєте спільний доступ або копіюєте пристрій. Щоб переконатися, що UUID у вашій системі дійсно унікальні, скористайтесь lsblk -o +UUID,PARTUUID.
Рекомендований підхід — вжити теги (наприклад UUID=uuid), а не символічні посилання udev /dev/disk/by-{label,uuid,id,partuuid,partlabel} у файлі /etc/fstab. Теги легше читати, є стійкими та переносними. Команда mount(8) внутрішньо використовує символічні посилання udev, тож використання символічних посилань в /etc/fstab не має переваг над тегами. Детальніше можна почитати в libblkid(3).
Файлова система proc не асоційована зі спецпристроєм, і коли її монтуємо, можна вжити довільне ключове слово - наприклад, proc - замість специфікації пристрою. (Звичайний вибір none є менш вдалим: повідомлення помилки 'жодного ще не змонтовано' від mount може спантеличувати).
Файл /etc/fstab (див. fstab(5)), може містити рядки, що описують, які пристрої переважно тут монтуються, за допомогою яких параметрів. Типове розташування файлу fstab(5) можна змінити параметром командного рядка --fstab path (див. нижче про подробиці).
Команда
mount -a [-t тип]
[-O
список_параметрів]
(зазвичай, задають у скрипті завантаження) спричиняє монтування усіх згаданих файлових систем в fstab (належного типу і/або таких, що мають або не мають належні параметри) так, як вказано, окрім тих, у рядку яких міститься ключове слово noauto. Додавання параметра -F призведе до розгалуження mount для паралельного монтування файлових систем.
Коли файлову систему для монтування згадують в fstab або mtab, в командному рядку достатньо вказати лише пристрій або лише точку монтування.
Програми mount і umount(8) традиційно підтримували список поточних змонтованих файлових систем у файлі /etc/mtab. Підтримку звичайного класичного /etc/mtab типово повністю вимкнено під час компіляції, тому що в поточних системах Linux краще зробити /etc/mtab символьним посиланням на /proc/mounts. Звичайний файл mtab, який зберігається в просторі користувача, не може надійно працювати з просторами назв, контейнерами та іншими розширеними функціями Linux. Якщо ввімкнено звичайну підтримку mtab, то можна використовувати як файл, так і символьне посилання.
Якщо аргументів mount не надати, то друкується список змонтованих файлових систем.
Якщо ви хочете змінити параметри монтування з /etc/fstab, потрібно використати параметр -o:
mount device|dir -o options
а потім параметри монтування з командного рядка буде додано до списку параметрів із /etc/fstab. Цю типову поведінку можна змінити за допомогою параметра командного рядка --options-mode. Звичайна поведінка полягає в тому, що останній варіант перемагає, якщо є суперечливі.
Програма mount не читає файлу /etc/fstab, якщо вказано разом пристрій (або LABEL, UUID, ID, PARTUUID або PARTLABEL) і каталог. Наприклад, щоб встановити пристрій foo на /dir:
mount /dev/foo
/каталог
За допомогою параметра командного рядка --options-source-force цю типову поведінку можна змінити, щоб завжди читати конфігурацію з fstab. Для користувачів, які не мають права root, mount завжди читає конфігурацію fstab.
Зазвичай тільки суперкористувач може монтувати файлові системи. Однак, коли fstab містить у рядку параметр user, будь-хто може змонтувати відповідну файлову систему.
Тому, якщо задано рядок
/dev/cdrom /cd iso9660 ro,user,noauto,unhide
будь-який користувач зможе монтувати знайдені на вставленому компакт-диску файлові системи iso9660 за допомогою такої команди:
mount /cd
Зауважте, що mount дуже суворо ставиться до користувачів, які не мають права root, і всі шляхи, зазначені в командному рядку, перевіряються перед аналізом fstab або виконанням допоміжної програми. Дуже бажано використовувати для визначення файлової системи дійсну точку монтування, інакше mount може вийти з ладу. Наприклад, поганою ідеєю є використовувати джерело NFS або CIFS у командному рядку.
Починаючи від util-linux 2.35, mount не завершує роботу, якщо дозволи користувача є недостатніми відповідно до внутрішніх правил безпеки libmount. Натомість, програма скидає дозволи suid і продовжує роботу від імені звичайного користувача без прав root. Цю поведінку реалізовано для випадків, коли права root не потрібні (наприклад, об'єднання файлових систем, просторів назв користувача тощо).
Докладніше див. у fstab(5). Тільки користувач, який змонтував файлову систему, може знову її демонтувати. Щоб це міг зробити будь-який користувач, замість user у рядку fstab скористайтесь users. Параметр owner подібний до варіанту user, з тим обмеженням, що користувач має бути власником спеціального файлу. Це може бути корисно, наприклад, для /dev/fd, якщо скрипт входу робить користувача консолі власником цього пристрою. Варіант group подібний, з обмеженням: користувач має бути членом групи спеціального файлу.
Перемонтування частини файлової ієрархії у якесь інше місце. Виклик:
mount --bind
старий_каталог
новий_каталог
або за допомогою цього запису fstab:
/старий_каталог
/новий_каталог
none bind
Після цього виклику ті самі дані будуть доступними у двох місцях.
Варто зауважити, що «bind» не створює жодних другорядних або спеціальних вузлів у VFS ядра. «bind» є просто ще однією дією для приєднання файлових систем. Не зберігається жодної інформації про те, що саме "bind" приєднав файлову систему. olddir та newdir є незалежними та olddir можна демонтувати.
Можна також перемонтувати окремий файл (до окремого файла). Також можна використати монтування прив'язки, щоб створити точку монтування зі звичайного каталогу, наприклад:
mount --bind foo foo
Виклик монтування з прив'язкою долучає до ієрархії файлової системи лише (частину) окремої файлової системи, а не можливі підлеглі її монтування. Усю ієрархію, разом із підлеглими монтуваннями, може бути долучено на другому кроці за допомогою такої команди:
mount --rbind
старий_каталог
новий_каталог
Зауважте, що параметри монтування файлової системи, супровід яких здійснює ядро системи, лишаться тими самими, що і у початкової точки монтування. Параметри монтування простору користувача (наприклад _netdev) не буде скопійовано mount — їх слід явним чином вказати у параметрах рядка команди mount.
Починаючи з версії util-linux 2.27, mount надає змогу змінювати параметри монтування передаванням відповідних параметрів разом із --bind. Приклад:
mount -o bind,ro foo foo
Ця функція не підтримується ядром Linux; її виконано у просторі користувача за допомогою додаткових системних викликів mount(2). Це рішення не є атомарним.
Альтернативним (класичним) способом створення призначеного лише для читання монтування з прив'язкою є використання дії з перемонтування. Приклад:
mount --bind старий_каталог новий_каталог
mount -o remount,bind,ro
старий_каталог
новий_каталог
Зауважте, що придатна лише для читання прив'язка створить придатну лише до читання точку монтування (запис VFS), але суперблок початкової файлової системи залишиться придатним до запису, що означає, що старий_каталог буде придатним до запису, але новий_каталог буде придатним лише до читання.
Можна також змінити прапорці запису VFS nosuid, nodev, noexec, noatime, nodiratime, relatime та nosymfollow за допомогою дії «remount,bind». Інші прапорці (наприклад прапорці, специфічні для файлової системи) буде без повідомлень проігноровано. Не можна змінювати параметри монтування рекурсивно (наприклад за допомогою -o rbind,ro).
Починаючи з util-linux 2.31, mount ігнорує прапорець bind з /etc/fstab при виконанні дії remount (якщо у рядку команди вказано -o remount). Це необхідно для повного контролю над параметрами монтування при перемонтуванні за допомогою командного рядка. У попередніх версіях завжди застосовувався прапорець прив'язування, і не можна було перевизначити параметри монтування без взаємодії із семантикою прив'язування. Ця поведінка mount не впливає на випадки, коли «remount,bind» вказано у файлі /etc/fstab.
Пересунути змонтовану ієрархію до іншого місця (атомарно). Виклик:
mount --move
старий_каталог
новий_каталог
Результатом буде те, що дані, які раніше можна було прочитати зі старого_каталогу, будуть доступними з нового_каталогу. Фізичне розташування файлів змінено не буде. Зауважте, що старий_каталог має бути точкою монтування.
Зауважте також, що пересування змонтованого каталогу, що перебуває у змонтованому каталозі спільного користування, є некоректним — підтримки такої дії не передбачено. Скористайтеся командою findmnt -o TARGET,PROPAGATION, щоб переглянути поточні прапорці поширення.
Починаючи з Linux 2.6.15, можна позначити монтування та його підлеглі монтування як спільні, приватні, підлеглі або не призначені для прив'язування. Для спільного монтування передбачено можливість створення дзеркал монтування так, щоб монтування і демонтування у будь-якому з дзеркал поширювалися на інші дзеркала. Підлегле монтування отримує поширення від основного, але не навпаки. Приватне монтування не має можливостей поширення. Не призначене для прив'язування монтування є приватним монтуванням, яке не можна клонувати за допомогою дії з прив'язування. Докладну семантику документовано у файлі Documentation/filesystems/sharedsubtree.txt початкових кодів ядра; див. також mount_namespaces(7).
Підтримувані дії:
mount --make-shared точка_монтування mount --make-slave точка_монтування mount --make-private точка_монтування mount --make-unbindable точка_монтування
Наведені нижче команди надають змогу рекурсивно змінювати тип усіх монтування у вказаній точці монтування.
mount --make-rshared точка_монтування mount --make-rslave точка_монтування mount --make-rprivate точка_монтування mount --make-runbindable точка_монтування
mount не читає fstab(5), якщо надіслано запит на дію --make-*. Усі необхідні дані має бути вказано у рядку команди.
Зауважте, що ядро Linux не дозволяє зміни декількох прапорців поширення одним системним викликом mount(2), і прапорці не можна змішувати із іншими параметрами і діями з монтування.
Починаючи з util-linux 2.23, командою mount можна скористатися для внесення додаткових змін із поширенням (топологією) шляхом одного виклику mount(8), а також виконання цієї дії разом із іншими діями з монтування. Прапорці поширення застосовуються додатковими викликами mount(2), якщо попередні дії з монтування були успішними. Зауважте, що таке користування програмою не є атомарним. Вказувати прапорці поширення можна у fstab(5) як параметри монтування (private, slave, shared, unbindable, rprivate, rslave, rshared, runbindable).
Приклад:
mount --make-private --make-unbindable /dev/sda1 /foo
те саме, що і
mount /dev/sda1 /foo mount --make-private /foo mount --make-unbindable /foo
Повний набір параметрів монтування, які використовуються викликом mount, визначається спочатку видобуванням параметрів монтування для файлової системи з таблиці fstab, потім застосуванням будь-яких параметрів, які вказано аргументом -o, і нарешті, застосуванням параметра -r або -w, якщо такий вказано.
Команда mount не передає усі параметри рядка команди допоміжним засобам монтування /sbin/mount.суфікс. Інтерфейс між mount і допоміжними засобами монтування описано нижче у розділі ЗОВНІШНІ ДОПОМІЖНІ ЗАСОБИ.
Доступні параметри рядка команди mount є такими:
-a, --all
Виконання належних функціональних можливостей залежить від /proc (для виявлення вже змонтованих файлових систем) та від /sys (для обробки міток файлової системи, зокрема UUID= або LABEL=). Наполегливо рекомендуємо змонтувати файлові системи /proc і /sys перед виконанням mount -a або вказувати /proc і /sys на початку fstab.
Параметр --all можна вживати для дії перемонтування також. В цьому випадку всі фільтри (-t та -O) застосовуються до таблиці вже змонтованих систем.
З версії 2.35 можна використовувати параметр командного рядка -o, щоб змінити параметр з fstab (див. також --options-mode).
Зауважте, що не варто використовувати mount -a для перевірки fstab. Рекомендованим рішенням є findmnt --verify.
-B, --bind
-c, --no-canonicalize
Зауважте, що mount не передає цей параметр допоміжним засобам /sbin/mount.тип.
-F, --fork
-f, --fake
-i, --internal-only
-L, --label мітка
-l, --show-labels
-M, --move
-m, --mkdir[=режим]
-n, --no-mtab
-N, --namespace простір_назв
mount перемикає до простору назв монтування, коли читає /etc/fstab, записує /etc/mtab: (або записує до _/run/mount) і викликає mount(2), інакше воно працює в початковому просторі назв монтування. Це означає, що простір назв призначення не мусить містити будь-яких бібліотек або інших вимог, потрібних для виконання виклику mount(2).
Щоб дізнатися більше, див. mount_namespaces(7).
-O, --test-opts параметри
mount -a -O no_netdev
монтує всі файлові системи, крім тих, що мають параметр netdev, вказаний у полі параметрів у файлі /etc/fstab.
Відрізняється від -t в тому, що кожний параметр має збігатися точно; переднє no на початку одного параметра не заперечує решту.
Параметри -t та -O мають кумулятивний ефект; тобто команда
mount -a -t ext2 -O _netdev
монтує всі файлові системи ext2 з параметром _netdev, а не всі файлові системи, що є або ext2 або мають вказаний параметр _netdev.
-o, --options параметри
mount LABEL=mydisk -o noatime,nodev,nosuid
Щоб дізнатися більше, див. розділи НЕЗАЛЕЖНІ ВІД ФАЙЛОВОЇ СИСТЕМИ ПАРАМЕТРИ МОНТУВАННЯ та СПЕЦИФІЧНІ ДЛЯ ФАЙЛОВИХ СИСТЕМ ПАРАМЕТРИ МОНТУВАННЯ.
--options-mode режим
--options-source джерело
--options-source-force
-R, --rbind
-r, --read-only
Зауважте, що, залежно від типу файлової системи, стану і поведінки ядра, система може продовжити запис на пристрій. Наприклад, ext3 і ext4 відтворять журнал, якщо якусь дію з файлової системи не завершено. Щоб запобігти цьому типу доступу до запису, ви можете змонтувати файлову систему ext3 або ext4 з використанням параметрів монтування ro,noload або встановити для блокового пристрою режим лише запису, див. команду blockdev(8).
-s
--source пристрій
--target каталог
--target-prefix каталог
mount --all --target-prefix /chroot -o X-mount.mkdir
монтує усе з загальносистемного fstab до /chroot, буде створено усі пропущені точки монтування (через X-mount.mkdir). Див. також --fstab для використання альтернативного fstab.
-T, --fstab шлях
Зауважте, що mount не передає параметр --fstab допоміжним засобам /sbin/mount.тип, що означає, що альтернативні файли fstab будуть невидимими для допоміжних засобів. Це не проблема для звичайних монтувань, але користувацькі (не від імені root) монтування завжди потребують fstab для перевірки прав доступу користувача.
-t, --types тип_файлової_системи
У програмах mount і umount передбачено підтримку підтипів файлових систем. Підтип визначається суфіксом «subtype». Наприклад, «fusesshfs». Рекомендується використовувати підтипи, ніж додавати префікс до джерела монтування (наприклад, «sshfs#example.com» є застарілим).
Якщо параметр -t не задано або якщо вказано тип auto, mount спробує вгадати бажаний тип. Для визначення типу файлової системи mount використовує бібліотеку libblkid(3); якщо бібліотеці не вдасться знайти щось знайоме, mount спробує прочитати файл /etc/filesystems або, якщо файла не існує, /proc/filesystems. Буде виконано спробу скористатися усіма типами файлових системи зі списку, окрім тих, які позначено міткою «nodev» (наприклад, devpts, proc і nfs). Якщо /etc/filesystems завершується рядком із одинарним *, після цього mount прочитає /proc/filesystems. Під час виконання спроб усі типи файлових систем буде змонтовано з параметром монтування silent.
Тип auto може бути корисним для змонтованих користувачем дискет. Створення файла /etc/filesystems може бути корисним для зміни порядку зондування (наприклад, щоб спробу скористатися vfat було виконано перед спробою скористатися msdos або ext3 мала вищий пріоритет, ніж ext2), або якщо ви користуєтеся автоматичним завантаженням модулів ядра.
Для параметра -t, а також для запису в /etc/fstab декілька типів можна вказати у форматі списку значень, які відокремлено комами. До списку типів файлових систем параметра -t можна дописати префікс no, щоб вказати типи файлових систем, для яких не слід виконувати дій. Префікс no не діятиме, що його вказати для запису в /etc/fstab.
З параметром no можна скористатися префіксом no. Наприклад, команда
mount -a -t nomsdos,smbfs
змонтує усі файлові системи, окрім тих, типом яких є msdos або smbfs.
Для більшості типів програмі mount достатньо видати простий системний виклик mount(2) — ніякого докладного знання типу файлової системи не потрібно. Втім, для декількох типів (зокрема nfs, nfs4, cifs, smbfs, ncpfs) потрібен контекстний код. Для файлових систем nfs, nfs4, cifs, smbfs і ncpfs передбачено окрему програму для монтування. Щоб усі типи можна було обробляти в універсальний спосіб, mount виконуватиме програму /sbin/mount.тип (якщо така існує), коли програмі буде вказано тип тип. Оскільки різні версії програми smbmount використовують різні способи виклику, /sbin/mount.smbfs може бути скриптом оболонки, який налаштовує бажаний виклик.
-U, --uuid uuid
-v, --verbose
-w, --rw, --read-write
Синонім -o rw.
Зауважте, що зазначення параметра рядка команди -w наказує mount ніколи не намагатися монтувати захищені від запису пристрої або вже змонтовано у режимі лише читання файлові системи.
-h, --help
-V, --version
Деякі з цих параметрів працюють, лише якщо їх вказано у файлі /etc/fstab.
Деякі з цих параметрів можна типово увімкнути або вимкнути у ядрі системи. Щоб перевірити поточне значення параметра, ознайомтеся із параметрами у /proc/mounts. Зауважте, що файлові системи також мають власні типові параметри монтування (див., наприклад, виведені командою tune2fs -l дані для файлових систем extN).
Наведені нижче параметри стосуються будь-якої файлової системи, яку монтує програма (але не для кожної файлової системи їх буде взято до уваги, — наприклад, параметр sync у поточній версії стосується лише файлових систем ext2, ext3, ext4, fat, vfat, ufs і xfs):
async
atime
noatime
auto
noauto
context=контекст, fscontext=контекст, defcontext=контекст і rootcontext=контекст
Поширеним параметром для портативних носіїв даних є context="system_u:object_r:removable_t".
Параметр fscontext= працює для всіх файлових систем, незалежно від підтримки ними xattr. Параметр fscontext встановлює для загальної мітки файлової системи особливий контекст безпеки. Ця мітка файлової системи є окремою від міток на файлах. Вона представляє всю файлову систему для певних видів перевірок дозволів, наприклад, під час монтування або створення файлу. Окремі мітки файлів також можна отримати зі xattr на самих файлах. Параметр контексту фактично встановлює агрегований контекст, який надає fscontext, на додаток до надання однакової мітки для окремих файлів.
Типовий контекст безпеки для файлів без міток можна встановити за допомогою параметра defcontext=. Це замінить значення, встановлене для файлів без міток у політиці, і вимагає файлової системи, яка підтримує мітки xattr.
Параметр rootcontext= дозволяє явно позначити кореневий індекс монтованої файлової системи до того, як ця файлова система або inode стануть видимими в просторі користувача. Це виявилося корисним для таких речей, як Stateless Linux.
Зауважте, що ядро відхиляє будь-який запит на перемонтування, який містить параметр контексту, навіть якщо він не змінюється з поточного контексту.
Попередження: значення контекст може містити коми. У цьому випадку значення має бути належним чином екрановано (взято у лапки), інакше, mount вважатиме кому роздільником між параметрами монтування. Не забувайте, що командна оболонка прибирає екранування, а тому потрібне подвійне екранування. Приклад:
mount -t tmpfs none /mnt -o \
'context="system_u:object_r:tmp_t:s0:c127,c456",noexec'
Щоб дізнатися більше, див. selinux(8).
defaults
Зауважте, що справжній набір усіх типових параметрів монтування залежить від ядра системи та типу файлової системи. Див. початок цього розділу, щоб дізнатися більше.
dev
nodev
diratime
nodiratime
dirsync
exec
noexec
group
iversion
noiversion
mand
nomand
_netdev
nofail
relatime
Починаючи Linux 2.6.30, типову поведінку ядра змінено на поведінку із цим увімкненим параметром (якщо не вказано noatime). Для отримання традиційної семантики слід вказати параметр strictatime. Крім того, починаючи з Linux 2.6.30, час останнього доступу до файла завжди оновлюється, якщо з моменту попереднього оновлення минула 1 доба.
norelatime
strictatime
nostrictatime
lazytime
Використання цього параметра монтування суттєво зменшує кількість записів до таблиці inode у робочих процесах, які виконують часті випадкові записи до попередньо розміщених у пам'яті файлів.
Часові позначки на диску буде оновлено, лише за таких умов:
nolazytime
suid
nosuid
silent
loud
owner
remount
Дія з повторного монтування разом із прапорцем bind має спеціальну семантику. Див. вище, розділ Монтування з пов'язуванням.
У функціональній можливості повторного монтування реалізовано стандартний спосіб роботи команди mount із параметрами з fstab. Це означає, що mount не читатиме fstab (або mtab), лише якщо одразу вказано пристрій і каталог.
mount -o remount,rw /dev/foo /dir
Після цього виклику усі старі параметри монтування буде замінено, а довільні дані з fstab (або mtab) буде проігноровано, окрім параметра loop=, який буде створено на внутрішньому рівні і який буде супроводжуватися програмою mount.
mount -o remount,rw /dir
Після цього виклику mount читає fstab і об'єднує ці параметри з параметрами з рядка команди (-o). Якщо в fstab не буде знайдено точки монтування, буде дозволено повторне монтування без визначення джерела.
mount уможливлює використання --all для повторного монтування усіх вже змонтованих файлових систем, які відповідають вказаному фільтру (-O і -t). Приклад:
mount --all -o remount,ro -t vfat
повторно монтує усі вже змонтовані файлові системи vfat у режимі лише читання. Кожну файлову системі буде повторно змонтовано із семантикою mount -o remount,ro /каталог. Це означає, що програма mount прочитає fstab або mtab і об'єднає ці параметри з параметрами з рядка команди.
ro
rw
sync
user
nouser
users
X-*
x-*
Зауважте, що до util-linux версії 2.30 параметри x-* не супроводжуються libmount і зберігаються у просторі користувача (функціональні можливості у поточній версії ті самі, що і для X-*), але через зростання кількості випадків (у initrd, systemd тощо) функціональні можливості було розширено для підтримання придатності наявних налаштувань fstab без змін.
X-mount.mkdir[=режим]
X-mount.subdir=каталог
nosymfollow
У цьому розділі наведено список параметрів, які є специфічними для певних файлових систем. Де це можливо, вам слід спочатку ознайомитися із специфічними для файлової системи сторінками підручників, щоб мати повнішу картину. Деякі є частиною списку з наведеної нижче таблиці.
Файлові системи | Сторінка підручника |
btrfs | btrfs(5) |
cifs | mount.cifs(8) |
ext2, ext3, ext4 | ext4(5) |
fuse | fuse(8) |
nfs | nfs(5) |
tmpfs | tmpfs(5) |
xfs | xfs(5) |
Зауважте, що деякі зі сторінок з наведеного вище списку можуть бути доступним, лише після встановлення відповідних інструментів.
Вказані нижче параметри є застосовними лише для деяких файлових систем. Ми впорядкували ці параметри за файловими системами. Усі параметри слід вказувати після прапорця -o.
Перелік підтримуваних параметрів залежить певним чином від використаного ядра системи. Докладніші відомості можна отримати зі специфічних для файлової системи файлів у каталозі початкових кодів ядра Documentation/filesystems.
uid=значення і gid=значення
ownmask=значення і othmask=значення
uid=значення і gid=значення
setuid=значення і setgid=значення
mode=значення
protect
usemp
verbose
prefix=рядок
volume=рядок
reserved=значення
root=значення
bs=значення
grpquota|noquota|quota|usrquota
Файлова система debugfs є фіктивною файловою системою, яку традиційно монтують до /sys/kernel/debug. На момент виходу ядра версії 3.4 debugfs використовує такі параметри:
uid=n, gid=n
mode=значення
Файлова система devpts є фіктивною файловою системою, яку традиційно буде змонтовано до /dev/pts. Для отримання псевдотермінала процес відкриває /dev/ptmx; після цього номер псевдотермінала стане доступним процесу. Доступ до підлеглого засобу псевдотермінала можна здійснювати за адресою /dev/pts/<номер>.
uid=значення і gid=значення
mode=значення
newinstance
Усі монтування devpts без цього параметра newinstance матимуть спільний набір індексів псевдотерміналів (тобто працюватимуть у застарілому режимі). Кожне монтування devpts з параметром newinstance матиме власний набір індексів псевдотерміналів.
Цей параметр, в основному, призначено для забезпечення підтримки контейнерів у ядрі Linux. Його реалізовано у ядрах Linux, починаючи з версії 2.6.29. Крім того, цей параметр монтування є чинним, лише якщо у налаштуваннях ядра увімкнено CONFIG_DEVPTS_MULTIPLE_INSTANCES.
Щоб ефективно скористатися цим параметром, /dev/ptmx має бути символічним посиланням на pts/ptmx. Див. Documentation/filesystems/devpts.txt у ієрархії початкового коду ядра Linux, щоб дізнатися більше.
ptmxmode=значення
Якщо реалізовано підтримку декількох екземплярів devpts (див. параметр newinstance вище), кожен екземпляр має конфіденційний вузол ptmx у корені файлової системи devpts (типово, /dev/pts/ptmx).
Для сумісності із застарілими версіями ядра системи типовим режимом доступу до нового вузла ptmx є 0000. ptmxmode=значення визначає корисніший режим доступу до вузла ptmx. Наполегливо рекомендуємо, якщо вказано параметр newinstance.
Цей параметр реалізовано лише у ядрах Linux, починаючи з версії 2.6.29. Крім того, цей параметр є чинним, лише якщо у налаштуваннях ядра увімкнено CONFIG_DEVPTS_MULTIPLE_INSTANCES.
(Зауваження: fat не є окремою файловою системою, а лише частиною файлових систем msdos, umsdos і vfat.)
blocksize={512|1024|2048}
uid=значення і gid=значення
umask=значення
dmask=значення
fmask=значення
allow_utime=значення
20
2
Типове значення буде встановлено на основі параметра «dmask». (Якщо каталог є придатним до запису, також можна скористатися utime(2). Приклад: ~dmask & 022)
Зазвичай, utime(2) перевіряє, чи є поточний процес власником файла, і чи має він можливість CAP_FOWNER. Втім, файлові системи FAT не мають UID/GID на диску, тому звичайна перевірка є надто негнучкою. За допомогою цього параметра ви можете оптимізувати її.
check=значення
r[elaxed]
n[ormal]
s[trict]
codepage=значення
conv=режим
cvf_format=модуль
cvf_option=параметр
debug
discard
dos1xfloppy
errors={panic|continue|remount-ro}
fat={12|16|32}
iocharset=значення
nfs={stale_rw|nostale_ro}
stale_rw: використання цього параметра призводить до підтримання покажчика (кешу) inode каталогів, який буде використано пов'язаним із NFS кодом для удосконалення пошуку. Передбачено підтримку повного набору дій з файлами (читання/запис), але із заміщенням кешу на сервері NFS, це може призвести до паразитних помилок ESTALE.
nostale_ro: використання цього варіанта призводить до того, що номер inode та дескриптор файла буде засновано на розташування файла на диску у записі каталогу FAT. Це забезпечить те, що ESTALE не буде повернуто, після того, як файл буде заміщено з кешу inode. Втім, це означає, що дії, подібні до перейменування, створення та скасування символічних посилань, можуть спричинити те, що дескриптори файлів, які раніше вказували на один файл, вказуватимуть на інший, що може призвести до пошкодження даних. З цієї причини використання цього варіанта також призводить до монтування файлової системи у режимі лише читання.
Для підтримання зворотної сумісності також є прийнятним -o nfs. Типовий варіантом є stale_rw.
tz=UTC
time_offset=хвилини
quiet
rodir
Якщо вам потрібен атрибут ATTR_RO як прапорець лише читання навіть для каталогів, встановіть цей параметр.
showexec
sys_immutable
flush
usefree
dots, nodots, dotsOK=[yes|no]
creator=cccc, type=cccc
uid=n, gid=n
dir_umask=n, file_umask=n, umask=n
session=n
part=n
quiet
uid=значення і gid=значення
umask=значення
case={lower|asis}
conv=режим
nocheck
ISO 9660 — це стандарт, що описує структуру файлової системи, яка буде використовуватися на компакт-дисках. (Цей тип файлової системи також можна побачити на деяких DVD-дисках. Див. також файлову систему udf.)
Звичайні назви файлів iso9660 мають формат 8.3 (тобто обмеження довжини назви файлу нагадують DOS), і, крім того, всі символи пишуться у верхньому регістрі. Також немає полів для власника файлу, захисту, кількості посилань, надання блокових/символьних пристроїв тощо.
Rock Ridge — це розширення для iso9660, яке надає всі ці функції, подібні до UNIX. Загалом, для кожного запису каталогу є розширення, які надають всю додаткову інформацію, і за використання Rock Ridge файлова система не відрізняється від звичайної файлової системи UNIX (звичайно, за винятком того, що вона доступна лише для читання).
norock
nojoliet
check={r[elaxed]|s[trict]}
uid=значення і gid=значення
map={n[ormal]|o[ff]|a[corn]}
mode=значення
unhide
block={512|1024|2048}
conv=режим
cruft
session=x
sbsector=xxx
Подальші параметри такі ж, як і для vfat, і вказувати їх має сенс лише за використання дисків, закодованих за допомогою розширень Joliet від Microsoft).
iocharset=значення
utf8
iocharset=назва
resize=значення
nointegrity
integrity
errors={continue|remount-ro|panic}
noquota|quota|usrquota|grpquota
Див. параметри монтування для FAT. Якщо файлова система msdos виявляє неузгодженість, вона повідомляє про помилку та встановлює для файлової системи режим лише для читання. Файлову систему можна знову зробити придатною для запису, перемонтувавши її.
Як і nfs, реалізація ncpfs очікує двійкового аргументу (struct ncp_mount_data) для системного виклику mount(2). Цей аргумент створено ncpmount(8), а поточна версія mount (2.12) нічого не знає про ncpfs.
iocharset=назва
nls=назва
utf8
uni_xlate={0|1|2}
posix=[0|1]
uid=значення, gid=значення і umask=значення
Починаючи від Linux 3.18, накладна псевдофайлова система реалізує об'єднане монтування для інших файлових систем.
Накладна файлова система поєднує дві файлові системи - файлову систему верхню і файлову систему нижню. Якщо назва існує в обох файлових системах, об'єкт у верхній файловій системі буде видимим, а об'єкт у нижній файловій системі або прихованим, або, у випадку каталогів, об'єднаним із верхнім об'єктом.
Нижньою файловою системою може бути будь-яка файлова система, яку підтримує Linux, можливо, недоступна для запису. Нижня файлова система може бути навіть іншою накладною файловою системою. Верхня файлова система зазвичай доступна для запису, і, якщо так, вона має підтримувати створення розширених атрибутів trusted.* і надавати дійсний тип d_type у відповідях readdir, тому NFS для цього не підходить.
Накласти лише для читання можна дві файлові системи, доступні лише для читання, будь-якого типу. Параметри lowerdir і upperdir об'єднуються в спільний каталог за допомогою:
mount -t overlay overlay \
-olowerdir=/lower,upperdir=/upper,workdir=/work /merged
lowerdir=каталог
upperdir=каталог
workdir=каталог
userxattr
redirect_dir={on|off|follow|nofollow}
on
off
follow
nofollow
index={on|off}
uuid={on|off}
nfs_export={on|off}
Якщо доступною є можливість «nfs_export» виконання copy_up над будь-яким нижчим об'єктом призведе до створення запису покажчика у каталозі покажчика. Назва запису покажчика є шістнадцятковим представленням скопійованого початкового дескриптора файла. Для об'єкта, який не є каталогом, запис покажчика є жорстким посиланням на вищий inode. Для об'єкта каталогу запис покажчика має розширений атрибут «{trusted|user}.overlay.upper» із закодованим дескриптором файла inode вищого каталогу.
При кодуванні дескриптора файла з накладеного об'єкта файлової системи виконуються такі правила
Дескриптор закодованого файла-накладки включає
Цей формат кодування є ідентичним до засобів обробки формату кодування, які збережено у розширеному атрибуті «{trusted|user}.overlay.origin». При декодуванні засобу обробки файла-накладки буде виконано наступні кроки
Декодування дескриптора файла, який не є каталогом, може повернути від'єднаний dentry. copy_up цього від'єднаного dentry створить верхній запис покажчика без верхньої альтернативи.
Якщо у накладеній файловій системі є декілька нижніх шарів, каталог середнього шару може мати «переспрямування» на нижчий каталог. Оскільки «переспрямування» середнього шару не буде індексовано, дескриптором нижнього файла, який було закодовано з початкового каталогу «переспрямування», не можна скористатися для пошуку каталогу середнього або вищого шару. Так само, дескриптором нижнього файла, який було закодовано з нащадка початкового каталогу «переспрямування», не можна скористатися для відтворення шляху до з'єднаної накладки. Щоб усунути проблеми із каталогами, які не може бути декодовано з дескриптора нижнього файла, ці каталоги буде скопійовано на закодоване і закодовано як дескриптор верхнього файла. На накладеній файловій системі без верхнього шару це рішення не може бути використано. Експортування NFS при цих налаштуваннях потребує вимикання переходу за переспрямуваннями (наприклад, «redirect_dir=nofollow»).
У накладеній файловій системі не передбачено підтримки дескрипторів придатних до з'єднання файлів, які не є каталогами, тому експортування за допомогою налаштування exportfs subtree_check призводитиме до помилок під час спроби пошуку файлів у NFS.
Якщо увімкнено можливість експортування NFS, усі записи покажчика каталогу буде перевірено під час монтування, що переконатися, що дескриптори вищих файлів не є застарілими. Така перевірка може у деяких випадках призводити до значних затримок обробки.
Зауваження: параметри монтування index=off,nfs_export=on конфліктують між собою у режимі монтування для читання-запису і призводять до помилки.
xino={on|off|auto}
Докладний опис наслідків використання цього параметра наведено у <https://www.kernel.org/doc/html/latest/filesystems/overlayfs.html?highlight=overlayfs>
metacopy={on|off}
Іншими словами, це відкладена дія з надкопіювання даних і дані буде надкопійовано, якщо виникне потреба у справжньому внесенні змін до даних.
volatile
Перевагою монтування із параметром «volatile» є те, що усі форми викликів синхронізації до вищої файлової системи буде пропущено.
Щоб уникнути фальшивого відчуття безпеки, семантика syncfs (і fsync) тимчасових монтувань є дещо відмінною від використаної у решті VFS. Якщо у вищій файловій системі станеться будь-яка помилка зворотного запису після тимчасового монтування, усі функції синхронізації повернуть помилку. Щойно буде досягнуто цього стану, файлова система не відновиться, а будь-який наступний виклик синхронізації поверне помилку, навіть якщо вищий каталог не матиме нових помилок з часу останнього виклику синхронізації.
Якщо накладку змонтовано з параметром «volatile», буде створено каталог «$workdir/work/incompat/volatile». Під час наступного монтування накладка шукатиме цей каталог і відмовиться монтуватися, якщо його буде знайдено. Це потужний індикатор, що користувачеві слід відкинути старий вищий і робочий каталоги і створити нові. У дуже обмеженій кількості випадків, коли користувач знає, що роботу системи не було завершено аварійно і вміст вищого каталогу не зазнав змін, каталог «volatile» можна вилучити.
Reiserfs є журнальованою файловою системою.
conv
hash={rupasov|tea|r5|detect}
rupasov
tea
r5
detect
hashed_relocation
no_unhashed_relocation
noborder
nolog
notail
replayonly
resize=число
user_xattr
acl
barrier=none / barrier=flush
UBIFS — файлова система для флеш-носіїв, які працюють на базі томів UBI. Зауважте, що підтримки atime не передбачено, і цей параметр завжди вимкнено.
Назву пристрою можна вказати як
ubiX_Y
ubiY
ubiX:НАЗВА
ubi:НАЗВА
Можна використовувати альтернативний роздільник ! замість :.
Можна скористатися одним з таких параметрів монтування:
bulk_read
no_bulk_read
chk_data_crc
no_chk_data_crc
compr={none|lzo|zlib}
UDF — скорочення від «Universal Disk Format» (універсальний формат дисків). Цю файлову систему стандартизовано OSTA, Optical Storage Technology Association (Асоціацією технології оптичного зберігання даних). Файлову систему часто використовують для DVD-ROM у формі гібриду із файловою системою UDF/ISO-9660. Втім, файловою системою цілком можна користуватися для дискових носіїв даних, флеш-носіїв та інших блокових пристроїв. Див. також iso9660.
uid=
gid=
umask=
mode=
dmode=
bs=
Щоб ознайомитися із іншими подробицями, прочитайте сторінку підручника mkudffs(8) 2.0+, див. розділи СУМІСНІСТЬ і РОЗМІР БЛОКУ.
unhide
undelete
adinicb
noadinicb
shortad
longad
nostrict
iocharset=
utf8
novrs
session=
anchor=
lastblock=
uid=ignore
gid=ignore
volume=
partition=
fileset=
rootdir=
ufstype=значення
old
44bsd
ufs2
5xbsd
sun
sunx86
hp
nextstep
nextstep-cd
openstep
onerror=значення
panic
[lock|umount|repair]
Див. параметри монтування для msdos. Параметр dotsOK явним чином знищується umsdos.
Перш за все, буде розпізнано параметри монтування для fat. Параметр dotsOK буде явним чином прибрано вибором vfat. Далі, є
uni_xlate
posix
nonumtail
utf8
shortname=режим
lower
win95
winnt
mixed
devuid=uid і devgid=gid, і devmode=режим
busuid=uid і busgid=gid, і busmode=режим
listuid=uid і listgid=gid, і listmode=режим
Ціль device-mapper verity надає доступ до читання із прозорою перевіркою цілісності даних блокових пристроїв з використанням шифрувального програмного інтерфейсу ядра системи. Програма mount здатна відкривати пристрої dm-verity і виконувати перевірку цілісності даних до монтування файлової системи пристрою. Потребує libcryptsetup у libmount (можна з використанням dlopen(3)). Якщо у libcryptsetup передбачено підтримку видобування хеш-суми кореня вже змонтованого пристрою, наявні пристрої, якщо вони є відповідними, буде використано автоматично. Параметри монтування dm-verity:
verity.hashdevice=шлях
verity.roothash=шістнадцяткове_число
verity.roothashfile=шлях
verity.hashoffset=відступ
verity.fecdevice=шлях
verity.fecoffset=відступ
verity.fecroots=значення
verity.roothashsig=шлях
verity.oncorruption=ignore|restart|panic
Передбачено підтримку з util-linux v2.35.
Наприклад, такі команди:
mksquashfs /etc /tmp/etc.squashfs dd if=/dev/zero of=/tmp/etc.hash bs=1M count=10 veritysetup format /tmp/etc.squashfs /tmp/etc.hash openssl smime -sign -in <hash> -nocerts -inkey private.key \ -signer private.crt -noattr -binary -outform der -out /tmp/etc.roothash.p7s mount -o verity.hashdevice=/tmp/etc.hash,verity.roothash=<hash>,\ verity.roothashsig=/tmp/etc.roothash.p7s /tmp/etc.squashfs /mnt
створять образ squashfs з каталогу /etc, пристрій хешів істинності та змонтують перевірений образ файлової системи до /mnt. Ядро перевірить, чи кореневий хеш підписано ключем зі сховища ключів ядра, якщо використано roothashsig.
Одним із подальших можливих типів є монтування через петльовий пристрій. Наприклад, команда
mount /tmp/disk.img /mnt -t vfat -o loop=/dev/loop3
налаштує петльовий пристрій /dev/loop3, який відповідає файлу /tmp/disk.img, а потім змонтує цей пристрій до /mnt.
Якщо петльовий пристрій не вказано явним чином (а задано лише параметр '-o loop'), mount спробує знайти невикористаний петльовий пристрій і скористатися ним. Приклад
mount /tmp/disk.img /mnt -o loop
Команда mount автоматично створює петльовий пристрій зі звичайного файла, якщо не вказано тип файлової системи або файлова система є відомою libblkid. Приклад:
mount /tmp/disk.img /mnt
mount -t ext4 /tmp/disk.img /mnt
Для цього типу монтування передбачено три параметри, а саме, loop, offset і sizelimit, які насправді є параметрами losetup(8). (Ці параметри можна використати для доповнення специфічних для типу файлової системи параметрів.)
Починаючи від Linux 2.6.25 підтримується автоматичне знищення петльових пристроїв, тобто, будь-який петльовий пристрій, виділений за допомогою mount, буде вивільнено за допомогою umount незалежно від /etc/mtab.
Петльовий пристрій також можна вивільнити вручну, скориставшись losetup -d або umount -d.
Починаючи від util-linux версії 2.29, mount повторно використовує петльовий пристрій, а не ініціалізує новий пристрій, якщо для певного петльового пристрою вже використовується той самий резервний файл з таким самим зміщенням і обмеженням розміру. Це необхідно, щоб уникнути пошкодження файлової системи.
Для mount передбачено такі значення стану виходу (біти станів може бути поєднано логічним АБО):
0
1
2
4
8
16
32
64
Команда mount -a повертає 0 (усі успішно), 32 (усі невдало) або 64 (деякі невдало, деякі успішно).
Синтаксис зовнішніх допоміжних засобів монтування такий:
/sbin/mount.суфікс spec dir [-sfnv] [-N простір_назв] [-o параметри] [-t тип.підтип]
де суфікс - це тип файлової системи, а параметри -sfnvoN мають таке ж значення, що й звичайні параметри монтування. Параметр -t використовується для файлових систем із підтримкою підтипів (наприклад, /sbin/mount.fuse -t fuse.sshfs).
Команда mount не передає параметрів монтування unbindable, runbindable, private, rprivate, slave, rslave, shared, rshared, auto, noauto, comment, x-*, loop, offset і sizelimit допоміжним засобам mount.<суфікс>. Усі інші параметри використовуються в списку, розділеному комами, як аргумент для параметра -o.
LIBMOUNT_FSTAB=<шлях>
LIBMOUNT_MTAB=<шлях>
LIBMOUNT_DEBUG=all
LIBBLKID_DEBUG=all
LOOPDEV_DEBUG=all
Див. також вище розділ "Файли /etc/fstab, /etc/mtab і /proc/mounts".
/etc/fstab
/run/mount
/etc/mtab
/etc/mtab~
/etc/mtab.tmp
/etc/filesystems
Команда mount існувала у AT&T UNIX версії 5.
Пошкоджена файлова система може призвести до збою.
Деякі файлові системи Linux не підтримують -o sync і -o dirsync (файлові системи ext2, ext3, ext4, fat і vfat підтримують синхронні оновлення (як у BSD), якщо їх змонтовано з параметром sync).
-o remount може бути не в змозі змінити параметри монтування (всі специфічні для ext2fs параметри, крім sb, можна змінити за допомогою перемонтування, наприклад, але не можна змінити gid або umask для fatfs).
Можливо, файли /etc/mtab та /proc/mounts не збігаються в системах зі звичайним файлом mtab. Перший файл заснований лише на параметрах команди mount, але вміст другого файлу також залежить від ядра та інших налаштувань (наприклад, на віддаленому сервері NFS — у деяких випадках команда mount може повідомляти ненадійну інформацію про точку монтування NFS, а файл /proc/mount зазвичай містить більш надійну інформацію.) Це ще одна причина замінити файл mtab символьним посиланням на файл /proc/mounts.
Перевірка у файлових системах NFS файлів, на які посилаються дескриптори файлів (тобто сімейства функцій fcntl і ioctl), може призвести до невідповідних результатів через відсутність перевірки узгодженості в ядрі, навіть якщо використовується параметр монтування noac.
Параметр loop із використаними параметрами offset або sizelimit може спричинити помилку за використання старих ядер, якщо команда mount не може підтвердити, що розмір блокового пристрою налаштовано відповідно до запиту. Цю ситуацію можна обійти за допомогою ручного введення команди losetup(8) перед викликом mount для налаштованого петльового пристрою.
Karel Zak <kzak@redhat.com>
mount(2), umount(2), filesystems(5), fstab(5), nfs(5), xfs(5), mount_namespaces(7), xattr(7), e2label(8), findmnt(8), losetup(8), lsblk(8), mke2fs(8), mountd(8), nfsd(8), swapon(8), tune2fs(8), umount(8), xfs_admin(8)
Для звітування про вади використовуйте систему стеження помилками на <https://github.com/util-linux/util-linux/issues>.
mount є частиною пакунка util-linux, який можна отримати з Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
Український переклад цієї сторінки посібника виконано Andriy Rysin <arysin@gmail.com>, lxlalexlxl <lxlalexlxl@ukr.net> і Yuri Chornoivan <yurchor@ukr.net>
Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3. НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ.
Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: trans-uk@lists.fedoraproject.org.
4 серпня 2022 року | util-linux 2.38.1 |