|
@@ -60,7 +60,62 @@ with a series of short descriptions of these.</para>
|
|
|
|
|
|
</sect1>
|
|
</sect1>
|
|
|
|
|
|
-&c6-mountproc;
|
|
|
|
|
|
+
|
|
|
|
+<sect1 id="ch-system-proc">
|
|
|
|
+<title>Mounting the proc and devpts file systems</title>
|
|
|
|
+<?dbhtml filename="proc.html" dir="chapter06"?>
|
|
|
|
+
|
|
|
|
+<para>In order for certain programs to function properly, the
|
|
|
|
+<emphasis>proc</emphasis> and <emphasis>devpts</emphasis> file systems must be
|
|
|
|
+available within the chroot environment. The proc file system is the process
|
|
|
|
+information pseudo file system through which the kernel provides information
|
|
|
|
+about the status of the system. And the devpts file system is nowadays the most
|
|
|
|
+common way pseudo terminals (PTYs) are implemented. Since kernel version 2.4, a
|
|
|
|
+file system can be mounted as many times and in as many places as you like,
|
|
|
|
+thus it's not a problem that these file systems are already mounted on your
|
|
|
|
+host system, especially so because they are virtual file systems.</para>
|
|
|
|
+
|
|
|
|
+<para>First become <emphasis>root</emphasis>, as only <emphasis>root</emphasis>
|
|
|
|
+can mount file systems in unusual places. Then check again that the LFS
|
|
|
|
+environment variable is set correctly by running <userinput>echo
|
|
|
|
+$LFS</userinput> and making sure it shows the path to your LFS partition's
|
|
|
|
+mount point, which is <filename class="directory">/mnt/lfs</filename> if you
|
|
|
|
+followed our example.</para>
|
|
|
|
+
|
|
|
|
+<para>Now make the mount points for these filesystems:</para>
|
|
|
|
+
|
|
|
|
+<screen><userinput>mkdir -p $LFS/{proc,dev/pts}</userinput></screen>
|
|
|
|
+
|
|
|
|
+<para>Mount the <emphasis>proc</emphasis> file system with:</para>
|
|
|
|
+
|
|
|
|
+<screen><userinput>mount proc $LFS/proc -t proc</userinput></screen>
|
|
|
|
+
|
|
|
|
+<para>And mount the <emphasis>devpts</emphasis> file system with:</para>
|
|
|
|
+
|
|
|
|
+<screen><userinput>mount devpts $LFS/dev/pts -t devpts</userinput></screen>
|
|
|
|
+
|
|
|
|
+<para>This last command might fail with an error like:</para>
|
|
|
|
+
|
|
|
|
+<blockquote><screen>filesystem devpts not supported by kernel</screen></blockquote>
|
|
|
|
+
|
|
|
|
+<para>The most likely cause for this is that your host system's kernel was
|
|
|
|
+compiled without support for the devpts file system. You can check which file
|
|
|
|
+systems your kernel supports by peeking into its internals with
|
|
|
|
+<command>cat /proc/filesystems</command>. If a file system type named
|
|
|
|
+<emphasis>devfs</emphasis> is listed there, then we'll be able to work around
|
|
|
|
+the problem by mounting the host's devfs file system on top of the new
|
|
|
|
+<filename>/dev</filename> structure which we'll create later on in the section
|
|
|
|
+on <xref linkend="ch-system-MAKEDEV"/>. If devfs was not listed, do not worry
|
|
|
|
+because there is yet a third way to get PTYs working inside the chroot
|
|
|
|
+environment. We'll cover this shortly in the aforementioned
|
|
|
|
+<xref linkend="ch-system-MAKEDEV"/> section.</para>
|
|
|
|
+
|
|
|
|
+<para>Remember that if for any reason you stop working on your LFS, and start
|
|
|
|
+again later, it's important to check that these file systems are mounted again
|
|
|
|
+before entering the chroot environment, otherwise problems could occur.</para>
|
|
|
|
+
|
|
|
|
+</sect1>
|
|
|
|
+
|
|
|
|
|
|
<sect1 id="ch-system-chroot">
|
|
<sect1 id="ch-system-chroot">
|
|
<title>Entering the chroot environment</title>
|
|
<title>Entering the chroot environment</title>
|