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

# ls d1 Проверка того, что это изменение можно увидеть

через каталог d1

x y

Во втором примере выполняется связанное монтирование файла в другое местоположение. Показано, что изменения файла в одном каталоге становятся видны и в другой точке монтирования:

# cat > f1 Создание файла, который будет связан

с другим местоположением

Chance is always powerful. Let your hook be always cast.

Нажимаем клавиши Ctrl+D

# touch f2 Это новая точка монтирования

# mount — bind f1 f2 Связывание f1 с f2

# mount | egrep '(d1|f1)' Просмотр того, как выглядит монтирование

/testfs/d1 on /testfs/d2 type none (rw,bind)

/testfs/f1 on /testfs/f2 type none (rw,bind)

# cat >> f2 Меняем файл f2

In the pool where you least expect it, will be a fish.

# cat f1 Изменение можно увидеть и в исходном файле

Chance is always powerful. Let your hook be always cast.

In the pool where you least expect it, will be a fish.

# rm f2 Выполнить невозможно, поскольку это точка монтирования

rm: cannot unlink `f2': Device or resource busy

# umount f2 Поэтому выполняем размонтирование

# rm f2 Теперь можно удалить файл f2

Одним из примеров, в котором можно было бы использовать связанное монтирование, является создание «клетки» системного вызова chroot (см. раздел 18.12). Вместо репликации множества стандартных каталогов (таких как /lib) в «клетку», мы можем всего лишь создать связанные точки монтирования для этих каталогов (которые, возможно, смонтированы только для чтения) внутри данной «клетки».


14.9.5. Рекурсивное связанное монтирование

По умолчанию, если мы создаем связанную точку монтирования для какого-либо каталога с использованием флага MS_BIND, то в новом местоположении будет смонтирован только этот каталог; если в каталоге-источнике присутствуют вложенные точки монтирования, они не будут реплицированы в целевой точке монтирования target. В версии Linux 2.411 добавлен флаг MS_REC, который можно с помощью команды ИЛИ использовать вместе с флагом MS_BIND как часть аргумента flags системного вызова mount(), чтобы вложенные точки монтирования были реплицированы в целевой точке. Такой вариант называется рекурсивным связанным монтированием. Команда mount(8) снабжена параметром — rbind, который позволяет достичь такого же результата из оболочки, как показано в приведенном ниже сеансе работы.

Начнем с создания дерева каталогов (src1), смонтированного в точке top. Это дерево содержит вложенную структуру (src2) в точке монтирования top/sub.

$ su

Password:

# mkdir top Это точка монтирования верхнего уровня

# mkdir src1 Будем монтировать это в точке top

# touch src1/aaa

# mount — bind src1 top Создаем нормальное связанное монтирование

# mkdir top/sub Создаем каталог для вложенного монтирования под точкой top

# mkdir srcБудем монтировать это в точке top/sub

# touch src2/bbb

# mount — bind src2 top/sub Создаем нормальное связанное монтирование

# find top Проверяем содержимое дерева монтирования top

top

top/aaa

top/sub Это вложенное монтирование

top/sub/bbb

Теперь выполним еще одно связанное монтирование (dir1), использовав в качестве источника top. Поскольку это новое монтирование является нерекурсивным, вложенная точка монтирования не реплицируется.

# mkdir dir1

# mount — bind top dir1 Здесь мы используем обычное связанное монтирование

# find dir1

dir1

dir1/aaa

dir1/sub

Отсутствие строки dir1/sub/bbb среди результатов работы команды find говорит о том, что вложенная точка монтирования top/sub не была реплицирована.

Выполним теперь рекурсивное связанное монтирование (dir2), используя точку top как источник.

# mkdir dir2

# mount — rbind top dir2

# find dir2

dir2

dir2/aaa

dir2/sub

dir2/sub/bbb

Наличие строки dir2/sub/bbb среди результатов работы команды find говорит о том, что вложенная точка монтирования top/sub была реплицирована.


14.10. Файловая система виртуальной памяти: tmpfs


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

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

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#.Введите сюда краткую аннотацию

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

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