Читаем Linux API. Исчерпывающее руководство полностью

• MNT_EXPIRE (начиная с версии Linux 2.6.8) — помечает точку монтирования как просроченную. Если исходный системный вызов umount2() осуществлен с указанием данного флага и точка монтирования не занята, то такой вызов завершается ошибкой EAGAIN, однако при этом точка монтирования помечается как просроченная. (Если точка монтирования занята, то тогда системный вызов завершается ошибкой EBUSY, а точка монтирования не помечается как просроченная.) Точка монтирования остается просроченной до тех пор, пока ее не использует никакой из процессов. Второй системный вызов umount2() с указанием флага MNT_EXPIRE размонтирует просроченную точку монтирования. Так обеспечивается механизм размонтирования файловой системы, которая не использовалась в течение некоторого интервала времени. Данный флаг нельзя указывать совместно с флагом MNT_DETACH или MNT_FORCE.

• MNT_FORCE — осуществляет принудительное размонтирование, даже если устройство занято (только для точек монтирования NFS). Использование этого флага может вызвать потерю данных.

• UMOUNT_NOFOLLOW (начиная с версии Linux 2.6.34) — не разыменовывает аргумент target, если это символическая ссылка. Флаг предназначен для использования в некоторых программах set-user-ID-root, которые разрешают непривилегированным пользователям выполнять размонтирование, для того чтобы избежать проблем с безопасностью, которые могли бы возникнуть в том случае, если символическая ссылка target изменена и указывает на другое местоположение.


14.9. Дополнительные функции монтирования


Теперь мы рассмотрим некоторые усовершенствованные функции, которые можно применять при монтировании файловых систем. Разберем использование большинства из них на примере команды mount(8). Таких же результатов можно добиться, если какая-либо программа осуществит системный вызов mount(2).


14.9.1. Монтирование файловой системы в нескольких точках монтирования

В ядре Linux версий до 2.4 файловую систему можно было монтировать только в одной точке монтирования. Начиная с версии 2.4, файловую систему можно монтировать в нескольких местах внутри файловой системы. Поскольку каждая точка монтирования отображает одно и то же поддерево, изменения, сделанные посредством одной точки монтирования, становятся видны и в остальных, как показано в следующем сеансе работы в оболочке:

$ su Привилегии, необходимые для использования mount(8)

Password:

# mkdir /testfs Создание двух каталогов для точек монтирования

# mkdir /demo

# mount /dev/sda12 /testfs Монтирование файловой системы

в первой точке монтирования

# mount /dev/sda12 /demo Монтирование файловой системы

во второй точке монтирования

# mount | grep sda12 Проверка установки

/dev/sda12 on /testfs type ext3 (rw)

/dev/sda12 on /demo type ext3 (rw)

# touch /testfs/myfile Осуществление изменений посредством

первой точки монтирования

# ls /demo Просмотр файлов во второй точке монтирования

lost+found myfile

Из вывода команды ls понятно, что изменение, выполненное посредством первой точки монтирования (/testfs), видно через вторую точку монтирования (/demo).

В подразделе 14.9.4 при описании связанных точек монтирования приводится один пример, демонстрирующий удобство монтирования файловой системы в нескольких точках.

Именно потому, что устройство можно смонтировать в нескольких точках, системный вызов umount() не может принимать имя устройства в качестве аргумента, начиная с версии Linux 2.4.


14.9.2. Создание стека монтирования в одной точке

В версиях ядра до 2.4 точку монтирования можно было использовать только один раз. Начиная с версии ядра 2.4, Linux позволяет создавать стек из нескольких точек монтирования в единичной точке монтирования. При каждом новом монтировании скрывается поддерево каталогов, которое было видимым ранее в данной точке монтирования. При размонтировании точки, размещенной на вершине стека, становится видимой скрытая ранее точка, как показано в следующем сеансе работы в оболочке:

$ su Привилегии, необходимые для использования mount(8)

Password:

# mount /dev/sda12 /testfs Создание первой точки монтирования в /testfs

# touch /testfs/myfile Создание файла в данном поддереве

# mount /dev/sda13 /testfs Помещение второй точки в стек /testfs

Перейти на страницу:

Похожие книги

C++ Primer Plus
C++ Primer Plus

C++ Primer Plus is a carefully crafted, complete tutorial on one of the most significant and widely used programming languages today. An accessible and easy-to-use self-study guide, this book is appropriate for both serious students of programming as well as developers already proficient in other languages.The sixth edition of C++ Primer Plus has been updated and expanded to cover the latest developments in C++, including a detailed look at the new C++11 standard.Author and educator Stephen Prata has created an introduction to C++ that is instructive, clear, and insightful. Fundamental programming concepts are explained along with details of the C++ language. Many short, practical examples illustrate just one or two concepts at a time, encouraging readers to master new topics by immediately putting them to use.Review questions and programming exercises at the end of each chapter help readers zero in on the most critical information and digest the most difficult concepts.In C++ Primer Plus, you'll find depth, breadth, and a variety of teaching techniques and tools to enhance your learning:• A new detailed chapter on the changes and additional capabilities introduced in the C++11 standard• Complete, integrated discussion of both basic C language and additional C++ features• Clear guidance about when and why to use a feature• Hands-on learning with concise and simple examples that develop your understanding a concept or two at a time• Hundreds of practical sample programs• Review questions and programming exercises at the end of each chapter to test your understanding• Coverage of generic C++ gives you the greatest possible flexibility• Teaches the ISO standard, including discussions of templates, the Standard Template Library, the string class, exceptions, RTTI, and namespaces

Стивен Прата

Программирование, программы, базы данных
1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных