mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-03-10 07:59:38 +00:00
The host distro may have an insane default for root_owner and/or root_perms in /etc/mke2fs.conf, so let's make it sane on our own. Note that MKE2FS_CONFIG=/dev/null makes mke2fs refuse to run so we cannot suppress the host mke2fs.conf.
64 lines
2.6 KiB
XML
64 lines
2.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
|
<!ENTITY % general-entities SYSTEM "../general.ent">
|
|
%general-entities;
|
|
]>
|
|
|
|
<sect1 id="ch-tools-creatingminlayout">
|
|
<?dbhtml filename="creatingminlayout.html"?>
|
|
|
|
<title>Creating a Limited Directory Layout in the LFS Filesystem</title>
|
|
|
|
<para>In this section, we begin populating the LFS filesystem with the
|
|
pieces that will constitute the final Linux system. The first step is to
|
|
create a limited directory hierarchy, so that the programs compiled in <xref
|
|
linkend="chapter-temporary-tools"/> (as well as glibc and libstdc++ in <xref
|
|
linkend="chapter-cross-tools"/>) can be installed in their final
|
|
location. We do this so those temporary programs will be overwritten when
|
|
the final versions are built in <xref linkend="chapter-building-system"/>.</para>
|
|
|
|
<para>At first, set the owner and permission mode of the
|
|
<filename class='directory'>$LFS</filename> directory (i.e. the root
|
|
directory in the newly created file system for the LFS system) to
|
|
&root; and <literal>755</literal> in case the host distro has been
|
|
configured to use a different default for <command>mkfs</command>:</para>
|
|
|
|
<screen><userinput>chown root:root $LFS
|
|
chmod 755 $LFS</userinput></screen>
|
|
|
|
<para>Create the required directory layout by issuing the following commands as
|
|
<systemitem class="username">root</systemitem>:</para>
|
|
|
|
<screen><userinput>mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin}
|
|
|
|
for i in bin lib sbin; do
|
|
ln -sv usr/$i $LFS/$i
|
|
done
|
|
|
|
case $(uname -m) in
|
|
x86_64) mkdir -pv $LFS/lib64 ;;
|
|
esac</userinput></screen>
|
|
|
|
<para>Programs in <xref linkend="chapter-temporary-tools"/> will be compiled
|
|
with a cross-compiler (more details can be found in section <xref
|
|
linkend="ch-tools-toolchaintechnotes"/>). This cross-compiler will be installed
|
|
in a special directory, to separate it from the other programs. Still acting as
|
|
&root;, create that directory with this command:</para>
|
|
|
|
<screen><userinput>mkdir -pv $LFS/tools</userinput></screen>
|
|
|
|
<note>
|
|
<para>
|
|
The LFS editors have deliberately decided not to use a
|
|
<filename class="directory">/usr/lib64</filename> directory. Several
|
|
steps are taken to be sure the toolchain will not use it. If for any
|
|
reason this directory appears (either because you made an error in
|
|
following the instructions, or because you installed a binary package that
|
|
created it after finishing LFS), it may break your system.
|
|
You should always be sure this directory does not exist.
|
|
</para>
|
|
</note>
|
|
|
|
</sect1>
|