mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-01-18 04:57:38 +00:00
ea93c117f2
"gcc(1)" is really not a file name. Use <ulink> and link to the online man page on https://man.archlinux.org/ so the user can refer to the man pages more easily. The change is done via a sed command and long lines are wrapped manually.
202 lines
10 KiB
XML
202 lines
10 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-partitioning-creatingpartition">
|
|
<?dbhtml filename="creatingpartition.html"?>
|
|
|
|
<title>Creating a New Partition</title>
|
|
|
|
<para>Like most other operating systems, LFS is usually installed on a
|
|
dedicated partition. The recommended approach to building an LFS system
|
|
is to use an available empty partition or, if you have enough unpartitioned
|
|
space, to create one.</para>
|
|
|
|
<para>A minimal system requires a partition of around 10 gigabytes (GB).
|
|
This is enough to store all the source tarballs and compile the packages.
|
|
However, if the LFS system is intended to be the primary Linux system,
|
|
additional software will probably be installed which will require additional
|
|
space. A 30 GB partition is a reasonable size to provide for growth. The LFS
|
|
system itself will not take up this much room. A large portion of this
|
|
requirement is to provide sufficient free temporary storage as well as
|
|
for adding additional capabilities after LFS is complete. Additionally, compiling
|
|
packages can require a lot of disk space which will be reclaimed after the
|
|
package is installed.</para>
|
|
|
|
<para>Because there is not always enough Random Access Memory (RAM) available
|
|
for compilation processes, it is a good idea to use a small disk partition as
|
|
<systemitem class="filesystem">swap</systemitem> space. This is used by the
|
|
kernel to store seldom-used data and leave more memory available for active
|
|
processes. The <systemitem class="filesystem">swap</systemitem> partition for
|
|
an LFS system can be the same as the one used by the host system, in which
|
|
case it is not necessary to create another one.</para>
|
|
|
|
<para>Start a disk partitioning program such as <command>cfdisk</command>
|
|
or <command>fdisk</command> with a command line option naming the hard
|
|
disk on which the new partition will be created—for example
|
|
<filename class="devicefile">/dev/sda</filename> for the primary
|
|
disk drive. Create a Linux native partition and a
|
|
<systemitem class="filesystem">swap</systemitem> partition, if needed. Please
|
|
refer to <ulink role='man' url='&man;cfdisk.8'>cfdisk(8)</ulink> or
|
|
<ulink role='man' url='&man;fdisk.8'>fdisk(8)</ulink> if
|
|
you do not yet know how to use the programs.</para>
|
|
|
|
<note><para>For experienced users, other partitioning schemes are possible.
|
|
The new LFS system can be on a software <ulink
|
|
url="&blfs-book;postlfs/raid.html">RAID</ulink> array or an <ulink
|
|
url="&blfs-book;postlfs/aboutlvm.html">LVM</ulink> logical volume.
|
|
However, some of these options require an <ulink
|
|
url="&blfs-book;postlfs/initramfs.html">initramfs</ulink>, which is
|
|
an advanced topic. These partitioning methodologies are not recommended for
|
|
first time LFS users.</para></note>
|
|
|
|
<para>Remember the designation of the new partition (e.g., <filename
|
|
class="devicefile">sda5</filename>). This book will refer to this as
|
|
the LFS partition. Also remember the designation of the <systemitem
|
|
class="filesystem">swap</systemitem> partition. These names will be
|
|
needed later for the <filename>/etc/fstab</filename> file.</para>
|
|
|
|
<sect2>
|
|
<title>Other Partition Issues</title>
|
|
|
|
<para>Requests for advice on system partitioning are often posted on the LFS mailing
|
|
lists. This is a highly subjective topic. The default for most distributions
|
|
is to use the entire drive with the exception of one small swap partition. This
|
|
is not optimal for LFS for several reasons. It reduces flexibility, makes
|
|
sharing of data across multiple distributions or LFS builds more difficult, makes
|
|
backups more time consuming, and can waste disk space through inefficient
|
|
allocation of file system structures.</para>
|
|
|
|
<sect3>
|
|
<title>The Root Partition</title>
|
|
|
|
<para>A root LFS partition (not to be confused with the
|
|
<filename class="directory">/root</filename> directory) of
|
|
twenty gigabytes is a good compromise for most systems. It provides enough
|
|
space to build LFS and most of BLFS, but is small enough so that multiple
|
|
partitions can be easily created for experimentation.</para> </sect3>
|
|
|
|
<sect3>
|
|
<title>The Swap Partition</title>
|
|
|
|
<para>Most distributions automatically create a swap partition. Generally
|
|
the recommended size of the swap partition is about twice the amount of
|
|
physical RAM, however this is rarely needed. If disk space is limited,
|
|
hold the swap partition to two gigabytes and monitor the amount of disk
|
|
swapping.</para>
|
|
|
|
<para>If you want to use the hibernation feature (suspend-to-disk) of Linux,
|
|
it writes out the contents of RAM to the swap partition before turning off
|
|
the machine. In this case the size of the swap partition should be at
|
|
least as large as the system's installed RAM.</para>
|
|
|
|
<para>Swapping is never good. For mechanical hard drives you can generally
|
|
tell if a system is swapping by just listening to disk activity and
|
|
observing how the system reacts to commands. With an SSD you will not
|
|
be able to hear swapping, but you can tell how much swap space is being used
|
|
by running the <command>top</command> or <command>free</command> programs. Use of
|
|
an SSD for a swap partition should be avoided if possible. The first
|
|
reaction to swapping should be to check for an unreasonable command such as
|
|
trying to edit a five gigabyte file. If swapping becomes a normal
|
|
occurrence, the best solution is to purchase more RAM for your
|
|
system.</para> </sect3>
|
|
|
|
<sect3>
|
|
<title>The Grub Bios Partition</title>
|
|
|
|
<para>If the <emphasis>boot disk</emphasis> has been partitioned with a
|
|
GUID Partition Table (GPT), then a small, typically 1 MB, partition must be
|
|
created if it does not already exist. This partition is not formatted, but
|
|
must be available for GRUB to use during installation of the boot
|
|
loader. This partition will normally be labeled 'BIOS Boot' if using
|
|
<command>fdisk</command> or have a code of <emphasis>EF02</emphasis> if
|
|
using the <command>gdisk</command> command.</para>
|
|
|
|
<note><para>The Grub Bios partition must be on the drive that the BIOS
|
|
uses to boot the system. This is not necessarily the drive that holds
|
|
the LFS root partition. The disks on a system may use different
|
|
partition table types. The necessity of the Grub Bios partition depends
|
|
only on the partition table type of the boot disk.</para></note>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Convenience Partitions</title>
|
|
|
|
<para>There are several other partitions that are not required, but should
|
|
be considered when designing a disk layout. The following list
|
|
is not comprehensive, but is meant as a guide.</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>/boot – Highly recommended. Use this partition to
|
|
store kernels and other booting information. To minimize potential boot
|
|
problems with larger disks, make this the first physical partition on
|
|
your first disk drive. A partition size of 200 megabytes is
|
|
adequate.</para></listitem>
|
|
|
|
<listitem><para>/boot/efi – The EFI System Partition, which is
|
|
needed for booting the system with UEFI. Read
|
|
<ulink url="&blfs-book;postlfs/grub-setup.html">the BLFS page</ulink>
|
|
for details.</para></listitem>
|
|
|
|
<listitem><para>/home – Highly recommended. Share your home
|
|
directory and user customization across multiple distributions or LFS
|
|
builds. The size is generally fairly large and depends on available disk
|
|
space.</para></listitem>
|
|
|
|
<listitem><para>/usr – In LFS,
|
|
<filename class="directory">/bin</filename>,
|
|
<filename class="directory">/lib</filename>, and
|
|
<filename class="directory">/sbin</filename> are symlinks to their
|
|
counterparts in <filename class="directory">/usr</filename>.
|
|
So <filename class="directory">/usr</filename> contains all the binaries
|
|
needed for the system to run. For LFS a separate partition for
|
|
<filename class="directory">/usr</filename> is normally not needed.
|
|
If you create it anyway, you should make a partition large enough to
|
|
fit all the programs and libraries in the system. The root partition can be
|
|
very small (maybe just one gigabyte) in this configuration, so it's
|
|
suitable for a thin client or diskless workstation (where
|
|
<filename class="directory">/usr</filename> is mounted from a remote
|
|
server). However, you should be aware that an initramfs (not covered by
|
|
LFS) will be needed to boot a system with a separate
|
|
<filename class="directory">/usr</filename> partition.</para></listitem>
|
|
|
|
<listitem><para>/opt – This directory is most useful for
|
|
BLFS, where multiple large packages like KDE or Texlive can
|
|
be installed without embedding the files in the /usr hierarchy. If
|
|
used, 5 to 10 gigabytes is generally adequate.</para>
|
|
</listitem>
|
|
|
|
<listitem revision='sysv'><para>/tmp – A separate /tmp partition
|
|
is rare, but useful if configuring a thin client. This partition, if
|
|
used, will usually not need to exceed a couple of
|
|
gigabytes. If you have enough RAM, you can mount a
|
|
<systemitem class='filesystem'>tmpfs</systemitem> on /tmp to make
|
|
access to temporary files faster.</para></listitem>
|
|
|
|
<listitem revision='systemd'><para>/tmp – By default, systemd
|
|
mounts a <systemitem class='filesystem'>tmpfs</systemitem> here.
|
|
If you want to override that behavior, follow
|
|
<xref linkend='systemd-no-tmpfs'/> when configuring the LFS
|
|
system.</para></listitem>
|
|
|
|
<listitem><para>/usr/src – This partition is very
|
|
useful for providing a location to store BLFS source files and
|
|
share them across LFS builds. It can also be used as a location
|
|
for building BLFS packages. A reasonably large partition of 30-50
|
|
gigabytes provides plenty of room.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>Any separate partition that you want automatically mounted when the
|
|
system starts must be specified in the <filename>/etc/fstab</filename> file.
|
|
Details about how to specify partitions will be discussed in <xref
|
|
linkend="ch-bootable-fstab"/>.</para>
|
|
|
|
</sect3>
|
|
</sect2>
|
|
</sect1>
|