mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-12-27 11:43:52 -05:00
This is a rough draft of LFS w/ OpenRC without SysVinit. This is nowhere close for a merge as I need to confirm this works with LFS. Beyond that, BLFS also must get support, and BLFS will be a battlefield. Until we get to that point, please do not have this merged. This branch has been created because the LSB is getting changed, where SysVinit will not be part of it. However, OpenRC will be. OpenRC also provides technology projects like GNOME use. SysVinit simply will not get those technologies. I believe OpenRC will be the way to go, going forward for an educational alternative to the Systemd version of LFS. SysVinit can act as an init system under OpenRC, which would introduce unneeded complexity. That's why this removes SysVinit. This shall get rendered at https://linuxfromscratch.org/~zeckma/. MLFS support is not planned until merge into trunk. Feedback is appreciated.
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='openrc'><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>
|