Fix and unify the commands creating the link target of /dev/shm

$(realpath /dev/shm) will return the absolute path of the target of
/dev/shm, thus the command will work for both absolute symlink and
relative symlink.
This commit is contained in:
Poltern 2024-02-06 15:12:27 +05:00
parent f4918d0720
commit 0f038fb272
2 changed files with 24 additions and 21 deletions

View File

@ -60,50 +60,53 @@
<para>Теперь смонтируйте оставшиеся виртуальные файловые системы:</para>
<screen><userinput>mount -v --bind /dev/pts $LFS/dev/pts
<!-- Do not put any option after $LFS/${mountpoint} or jhalfs cannot
handle it! -->
<screen><userinput>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</userinput></screen>
<!--
<variablelist>
<title>The meaning of the mount options for devpts:</title>
<title>Значение параметров монтирования для devpts:</title>
<varlistentry>
<term><parameter>gid=5</parameter></term>
<listitem>
<para>This ensures that all devpts-created device nodes are owned by
group ID 5. This is the ID we will use later on for the <systemitem
class="groupname">tty</systemitem> group. We use the group ID instead
of a name, since the host system might use a different ID for its
<systemitem class="groupname">tty</systemitem> group.</para>
<para>Этот параметр гарантирует, что все узлы устройств, созданные devpts, принадлежат
группе с идентификатором 5. Это идентификатор, который мы будем использовать позже для
группы <systemitem class="groupname">tty</systemitem>. Мы используем идентификатор группы
вместо имени, поскольку хост-система может использовать другой идентификатор для своей
группы <systemitem class="groupname">tty</systemitem>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>mode=0620</parameter></term>
<listitem>
<para>This ensures that all devpts-created device nodes have mode 0620
(user readable and writable, group writable). Together with the
option above, this ensures that devpts will create device nodes that
meet the requirements of grantpt(), meaning the Glibc
<command>pt_chown</command> helper binary (which is not installed by
default) is not necessary.</para>
<para>Этот параметр гарантирует, что все узлы устройств, созданные devpts, будут иметь
права 0620 (доступен для чтения и записи пользователем, доступен для записи группе).
Вместе с вышеуказанной опцией это гарантирует, что devpts создаст узлы устройств,
соответствующие требованиям grantpt(), а это означает, что вспомогательный файл Glibc
<command>pt_chown</command> (который не установлен по умолчанию) не требуется.</para>
</listitem>
</varlistentry>
</variablelist>
-->
<para>В некоторых хост-системах <filename>/dev/shm</filename> является
символической ссылкой на <filename class="directory">/run/shm</filename>.
/run tmpfs был смонтирован выше, поэтому нужно создать только каталог.</para>
<para>В некоторых хост-системах <filename>/dev/shm</filename> является
символической ссылкой на каталог <filename class="directory">/run/shm</filename>.
/run tmpfs был смонтирован выше, поэтому сейчас необходимо только создать каталог
с правильными разрешениями.</para>
<para>В других хост-системах <filename>/dev/shm</filename> является точкой
монтирования для tmpfs. В этом случае монтирование /dev приведет только к созданию
монтирования для tmpfs. В этом случае монтирование /dev приведет только к созданию
/dev/shm как каталога в среде chroot. В этой ситуации мы должны явно смонтировать
tmpfs:</para>
<screen><userinput>if [ -h $LFS/dev/shm ]; then
(cd $LFS/dev; mkdir $(readlink shm))
install -v -d -m 1777 $LFS$(realpath /dev/shm)
else
mount -vt tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm
fi</userinput></screen>

View File

@ -122,7 +122,7 @@ mounttype proc proc proc
mounttype sys sysfs sysfs
mounttype run tmpfs run
if [ -h $LFS/dev/shm ]; then
mkdir -pv $LFS/$(readlink $LFS/dev/shm)
install -v -d -m 1777 $LFS$(realpath /dev/shm)
else
mounttype dev/shm tmpfs tmpfs -o nosuid,nodev
fi