summaryrefslogtreecommitdiff
path: root/lfs-12.1-sysv/chapter07/kernfs.html
diff options
context:
space:
mode:
Diffstat (limited to 'lfs-12.1-sysv/chapter07/kernfs.html')
-rw-r--r--lfs-12.1-sysv/chapter07/kernfs.html207
1 files changed, 0 insertions, 207 deletions
diff --git a/lfs-12.1-sysv/chapter07/kernfs.html b/lfs-12.1-sysv/chapter07/kernfs.html
deleted file mode 100644
index f30a70e..0000000
--- a/lfs-12.1-sysv/chapter07/kernfs.html
+++ /dev/null
@@ -1,207 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
- <title>
- 7.3. Подготовка виртуальных файловых систем ядра
- </title>
- <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
- <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" />
- <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
- "text/css" media="print" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- </head>
- <body class="lfs" id="lfs-12.1">
- <div class="navheader">
- <h4>
- Линукс с нуля - Версия 12.1
- </h4>
- <h3>
- Глава 7. Вход в окружение Chroot и создание дополнительных временных
- инструментов
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="changingowner.html" title=
- "Смена владельца">Пред.</a>
- <p>
- Смена владельца
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="chroot.html" title=
- "Вход в окружение Chroot">След.</a>
- <p>
- Вход в окружение Chroot
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter07.html" title=
- "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов">
- Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-tools-kernfs" name="ch-tools-kernfs"></a>7.3. Подготовка
- виртуальных файловых систем ядра
- </h1>
- <div class="sect1" lang="ru" xml:lang="ru">
- <p>
- Приложения, работающие в пользовательском пространстве, используют
- различные файловые системы, созданные ядром, для взаимодействия с
- самим ядром. Эти файловые системы являются виртуальными: для них не
- используется дисковое пространство. Содержимое файловых систем
- находится в памяти. Эти файловые системы должны быть смонтированы в
- дереве каталогов $LFS, чтобы приложения могли найти их в среде
- <span class="command"><strong>chroot</strong></span>.
- </p>
- <p>
- Начните с создания каталогов, в которые будут смонтированы эти
- виртуальные файловые системы:
- </p>
- <pre class="userinput"><kbd class=
- "command">mkdir -pv $LFS/{dev,proc,sys,run}</kbd></pre>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="ch-tools-bindmount" name="ch-tools-bindmount"></a>7.3.1.
- Монтирование и заполнение /dev
- </h2>
- <p>
- Во время обычной загрузки ядро автоматически монтирует файловую
- систему <code class="systemitem">devtmpfs</code> в каталог
- <code class="filename">/dev</code>; ядро создает узлы устройств в
- этой виртуальной файловой системе в процессе загрузки или при
- первом обнаружении устройства, или доступе к нему. Демон udev может
- изменять владельца или разрешения узлов устройств, созданных ядром,
- или создавать новые узлы устройств или символические ссылки, чтобы
- облегчить работу разработчиков дистрибутива или системных
- администраторов. (Подробности смотрите в <a class="xref" href=
- "../chapter09/udev.html#ch-config-udev-device-node-creation" title=
- "9.3.2.2. Создание узла устройства">Раздел&nbsp;9.3.2.2, «Создание
- узла устройства»</a>.) Если ядро хоста поддерживает <code class=
- "systemitem">devtmpfs</code>, мы можем просто смонтировать
- <code class="systemitem">devtmpfs</code> в <code class=
- "filename">$LFS/dev</code> и положиться на ядро для его заполнения.
- </p>
- <p>
- Но в некоторых ядрах хоста отсутствует поддержка <code class=
- "systemitem">devtmpfs</code>, эти хост-дистрибутивы используют
- разные методы для создания содержимого <code class=
- "filename">/dev</code>. Таким образом, единственный независимый от
- хоста способ заполнить каталог <code class=
- "filename">$LFS/dev</code> - это привязка к каталогу <code class=
- "filename">/dev</code> хост-системы. Связное монтирование - это
- особый тип монтирования, который делает дерево каталога или файл
- видимым в каком-либо другом месте. Для этого используйте следующую
- команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">mount -v --bind /dev $LFS/dev</kbd></pre>
- </div>
- <div class="sect2" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="ch-tools-kernfsmount" name="ch-tools-kernfsmount"></a>7.3.2.
- Монтирование виртуальных файловых систем ядра
- </h2>
- <p>
- Теперь смонтируйте оставшиеся виртуальные файловые системы:
- </p>
- <pre class="userinput"><kbd class=
- "command">mount -vt devpts devpts -o gid=5,mode=0620 $LFS/dev/pts
-mount -vt proc proc $LFS/proc
-mount -vt sysfs sysfs $LFS/sys
-mount -vt tmpfs tmpfs $LFS/run</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значение параметров монтирования для devpts:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>gid=5</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр гарантирует, что все узлы устройств, созданные
- devpts, принадлежат группе с идентификатором 5. Это
- идентификатор, который мы будем использовать позже для группы
- <code class="systemitem">tty</code>. Мы используем
- идентификатор группы вместо имени, поскольку хост-система
- может использовать другой идентификатор для своей группы
- <code class="systemitem">tty</code>.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>mode=0620</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр гарантирует, что все узлы устройств, созданные
- devpts, будут иметь права 0620 (доступен для чтения и записи
- пользователем, доступен для записи группе). Вместе с
- вышеуказанной опцией это гарантирует, что devpts создаст узлы
- устройств, соответствующие требованиям grantpt(), а это
- означает, что вспомогательный файл Glibc <span class=
- "command"><strong>pt_chown</strong></span> (который не
- установлен по умолчанию) не требуется.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- В некоторых хост-системах <code class="filename">/dev/shm</code>
- является символической ссылкой на каталог <code class=
- "filename">/run/shm</code>. /run tmpfs был смонтирован выше,
- поэтому сейчас необходимо только создать каталог с правильными
- разрешениями.
- </p>
- <p>
- В других хост-системах <code class="filename">/dev/shm</code>
- является точкой монтирования для tmpfs. В этом случае монтирование
- /dev приведет только к созданию /dev/shm как каталога в среде
- chroot. В этой ситуации мы должны явно смонтировать tmpfs:
- </p>
- <pre class="userinput"><kbd class=
- "command">if [ -h $LFS/dev/shm ]; then
- install -v -d -m 1777 $LFS$(realpath /dev/shm)
-else
- mount -vt tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm
-fi</kbd></pre>
- </div>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="changingowner.html" title=
- "Смена владельца">Пред.</a>
- <p>
- Смена владельца
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="chroot.html" title=
- "Вход в окружение Chroot">След.</a>
- <p>
- Вход в окружение Chroot
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter07.html" title=
- "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов">
- Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- </body>
-</html>