summaryrefslogtreecommitdiff
path: root/lfs-12.0-sysv/chapter07/kernfs.html
diff options
context:
space:
mode:
Diffstat (limited to 'lfs-12.0-sysv/chapter07/kernfs.html')
-rw-r--r--lfs-12.0-sysv/chapter07/kernfs.html168
1 files changed, 168 insertions, 0 deletions
diff --git a/lfs-12.0-sysv/chapter07/kernfs.html b/lfs-12.0-sysv/chapter07/kernfs.html
new file mode 100644
index 0000000..0cd8159
--- /dev/null
+++ b/lfs-12.0-sysv/chapter07/kernfs.html
@@ -0,0 +1,168 @@
+<!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 V1.79.1" />
+ <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.0">
+ <div class="navheader">
+ <h4>
+ Линукс с нуля - Версия 12.0
+ </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.0">Начало</a>
+ </li>
+ </ul>
+ </div>
+ <div class="sect1" lang="en" xml:lang="en">
+ <h1 class="sect1">
+ <a id="ch-tools-kernfs" name="ch-tools-kernfs"></a>7.3. Подготовка
+ виртуальных файловых систем ядра
+ </h1>
+ <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="en" xml:lang="en">
+ <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="en" xml:lang="en">
+ <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 -v --bind /dev/pts $LFS/dev/pts
+mount -vt proc proc $LFS/proc
+mount -vt sysfs sysfs $LFS/sys
+mount -vt tmpfs tmpfs $LFS/run</kbd></pre>
+ <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
+ mkdir -pv $LFS/$(readlink $LFS/dev/shm)
+else
+ mount -t 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.0">Начало</a>
+ </li>
+ </ul>
+ </div>
+ </body>
+</html>