Text updates for cross2 Chapter 5
[linux_from_scratch.git] / chapter02 / creatingpartition.xml
blob672c2efb595094ce71d49c40c0ed5e234e73ac2c
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4   <!ENTITY % general-entities SYSTEM "../general.ent">
5   %general-entities;
6 ]>
8 <sect1 id="ch-partitioning-creatingpartition">
9   <?dbhtml filename="creatingpartition.html"?>
11   <title>Creating a New Partition</title>
13   <para>Like most other operating systems, LFS is usually installed on a
14   dedicated partition. The recommended approach to building an LFS system
15   is to use an available empty partition or, if you have enough unpartitioned
16   space, to create one.</para>
18   <para>A minimal system requires a partition of around 10 gigabytes (GB).
19   This is enough to store all the source tarballs and compile the packages.
20   However, if the LFS system is intended to be the primary Linux system,
21   additional software will probably be installed which will require additional
22   space. A 30 GB partition is a reasonable size to provide for growth.  The LFS
23   system itself will not take up this much room.  A large portion of this
24   requirement is to provide sufficient free temporary storage as well as
25   for adding additional capabilities after LFS is complete. Additionally, compiling
26   packages can require a lot of disk space which will be reclaimed after the
27   package is installed.</para>
29   <para>Because there is not always enough Random Access Memory (RAM) available
30   for compilation processes, it is a good idea to use a small disk partition as
31   <systemitem class="filesystem">swap</systemitem> space. This is used by the
32   kernel to store seldom-used data and leave more memory available for active
33   processes. The <systemitem class="filesystem">swap</systemitem> partition for
34   an LFS system can be the same as the one used by the host system, in which
35   case it is not necessary to create another one.</para>
37   <para>Start a disk partitioning program such as <command>cfdisk</command>
38   or <command>fdisk</command> with a command line option naming the hard
39   disk on which the new partition will be created&mdash;for example
40   <filename class="devicefile">/dev/sda</filename> for the primary 
41   disk drive. Create a Linux native partition and a
42   <systemitem class="filesystem">swap</systemitem> partition, if needed. Please
43   refer to <filename>cfdisk(8)</filename> or <filename>fdisk(8)</filename> if
44   you do not yet know how to use the programs.</para>
46   <note><para>For experienced users, other partitioning schemes are possible.
47   The new LFS system can be on a software <ulink
48   url="&blfs-book;postlfs/raid.html">RAID</ulink> array or an <ulink
49   url="&blfs-book;postlfs/aboutlvm.html">LVM</ulink> logical volume.
50   However, some of these options require an <ulink
51   url="&blfs-book;postlfs/initramfs.html">initramfs</ulink>, which is
52   an advanced topic.  These partitioning methodologies are not recommended for
53   first time LFS users.</para></note>
55   <para>Remember the designation of the new partition (e.g., <filename
56   class="devicefile">sda5</filename>). This book will refer to this as
57   the LFS partition. Also remember the designation of the <systemitem
58   class="filesystem">swap</systemitem> partition. These names will be
59   needed later for the <filename>/etc/fstab</filename> file.</para>
61   <sect2>
62   <title>Other Partition Issues</title>
64   <para>Requests for advice on system partitioning are often posted on the LFS mailing
65   lists. This is a highly subjective topic.  The default for most distributions
66   is to use the entire drive with the exception of one small swap partition.  This
67   is not optimal for LFS for several reasons.  It reduces flexibility, makes
68   sharing of data across multiple distributions or LFS builds more difficult, makes
69   backups more time consuming, and can waste disk space through inefficient
70   allocation of file system structures.</para>
72     <sect3>
73     <title>The Root Partition</title>
75     <para>A root LFS partition (not to be confused with the
76     <filename class="directory">/root</filename> directory) of
77     twenty gigabytes is a good compromise for most systems.  It provides enough
78     space to build LFS and most of BLFS, but is small enough so that multiple
79     partitions can be easily created for experimentation.</para> </sect3>
81     <sect3>
82     <title>The Swap Partition</title>
84     <para>Most distributions automatically create a swap partition.  Generally
85     the recommended size of the swap partition is about twice the amount of
86     physical RAM, however this is rarely needed.  If disk space is limited,
87     hold the swap partition to two gigabytes and monitor the amount of disk
88     swapping.</para>
90     <para>If you want to use the hibernation feature (suspend-to-disk) of Linux,
91     it writes out the contents of RAM to the swap partition before turning off 
92     the machine. In this case the size of the swap partition should be at
93     least as large as the system's installed RAM.</para>
95     <para>Swapping is never good. For mechanical hard drives you can generally
96     tell if a system is swapping by just listening to disk activity and
97     observing how the system reacts to commands.  For an SSD drive you will not
98     be able to hear swapping but you can tell how much swap space is being used
99     by the <command>top</command> or <command>free</command> programs.  Use of
100     an SSD drive for a swap partition should be avoided if possible.  The first
101     reaction to swapping should be to check for an unreasonable command such as
102     trying to edit a five gigabyte file. If swapping becomes a normal
103     occurrence, the best solution is to purchase more RAM for your
104     system.</para> </sect3>
106     <sect3>
107     <title>The Grub Bios Partition</title>
109     <para>If the <emphasis>boot disk</emphasis> has been partitioned with a
110     GUID Partition Table (GPT), then a small, typically 1 MB, partition must be
111     created if it does not already exist.  This partition is not formatted, but
112     must be available for GRUB to use during installation of the boot
113     loader. This partition will normally be labeled 'BIOS Boot' if using
114     <command>fdisk</command> or have a code of <emphasis>EF02</emphasis> if
115     using <command>gdisk</command>.</para>
117     <note><para>The Grub Bios partition must be on the drive that the BIOS 
118     uses to boot the system.  This is not necessarily the same drive where the 
119     LFS root partition is located. Disks on a system may use different
120     partition table types.  The requirement for this partition depends
121     only on the partition table type of the boot disk.</para></note>
122     </sect3>
124     <sect3>
125     <title>Convenience Partitions</title>
127     <para>There are several other partitions that are not required, but should
128     be considered when designing a disk layout.  The following list
129     is not comprehensive, but is meant as a guide.</para>
131     <itemizedlist>
133       <listitem><para>/boot &ndash; Highly recommended.  Use this partition to
134       store kernels and other booting information.  To minimize potential boot
135       problems with larger disks, make this the first physical partition on
136       your first disk drive.  A partition size of 200 megabytes is quite
137       adequate.</para></listitem>
139       <listitem><para>/home &ndash; Highly recommended.  Share your home
140       directory and user customization across multiple distributions or LFS
141       builds.  The size is generally fairly large and depends on available disk
142       space.</para></listitem>
144       <listitem><para>/usr &ndash; A separate /usr partition is generally used
145       if providing a server for a thin client or diskless workstation.  It is
146       normally not needed for LFS.  A size of ten gigabytes will handle most
147       installations.</para></listitem>
149       <listitem><para>/opt &ndash; This directory is most useful for
150       BLFS where multiple installations of large packages like Gnome or KDE can
151       be installed without embedding the files in the /usr hierarchy.  If
152       used, 5 to 10 gigabytes is generally adequate.</para>
153       </listitem>
155       <listitem><para>/tmp &ndash; A separate /tmp directory is rare, but
156       useful if configuring a thin client.  This partition, if used, will
157       usually not need to exceed a couple of gigabytes.</para></listitem>
159       <listitem><para>/usr/src &ndash; This partition is very
160       useful for providing a location to store BLFS source files and
161       share them across LFS builds.  It can also be used as a location
162       for building BLFS packages.  A reasonably large partition of 30-50
163       gigabytes allows plenty of room.</para></listitem>
165     </itemizedlist>
167     <para>Any separate partition that you want automatically mounted upon boot
168     needs to be specified in the <filename>/etc/fstab</filename>.  Details
169     about how to specify partitions will be discussed in <xref
170     linkend="ch-bootable-fstab"/>.  </para>
172     </sect3>
173   </sect2>
174 </sect1>