LDP/LDP/howto/linuxdoc/Network-Install-HOWTO.sgml

1854 lines
84 KiB
Plaintext

<!doctype linuxdoc system[]>
<ARTICLE>
<TITLE>Network Install HOWTO
<AUTHOR>Graham White, <TT>gwhite@uk.ibm.com</TT>
<NEWLINE>IBM Hursley, UK
<DATE>v1.0, 12th September 2002
<ABSTRACT>
<NIDX>network install</NIDX>
This HOWTO describes how to install Linux over a Local Area Network (LAN). It
covers setting up and administrating the install server machine as well as
installing client machines from your server. Since Network Installation is
distribution dependent it covers SuSE, Redhat and Debian installs but also
includes a generic Linux network install guide.
</ABSTRACT>
<TOC>
<!--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-->
<SECT>Introduction
<P>
<NIDX>network install!introduction</NIDX>
I was first prompted to write this document after reading a request for such a
document on the LDP suggestions page. I realised that this was within my area
of expertise and approached the LDP about creating a new HOWTO document for the
project. I took the LDP standard template and have modified that in order to
come up with the structure of this document. Using both the template and a few
SGML references, I have written the SGML source, that I have since found to be
a particularly convenient type for converting into many different document
formats.
About the author - I started working with Linux 2 years ago (at the time of
writing) when I joined IBM &reg in a Linux support role. I started IBM with no
previous administration experience and learned my skills on the job. A year
after I joined I was certified as a Redhat Expert (RHCE). During my second
year I implemented a Linux network install server that I am still managing and
from which I hope to draw my knowledge to write this document.
<SECT1>Copyright
<P>
<NIDX>network install!copyright</NIDX>
<EM>(C) Copyright IBM Corp. 2002.</EM>
<SECT1>Disclaimer
<P>
<NIDX>network install!disclaimer</NIDX>
This document is provided "AS IS," with no express or implied warranties. Use the information
in this document at your own risk.
The following terms are registered trademarks of International Business Machines corporation in the United States
and/or other countries: IBM. A full list of U.S. trademarks owned by IBM may be found at http://www.ibm.com/legal/copytrade.shtml.
Linux is a trademark of Linus Torvalds
Other company, produce, and service names may be trademarks or service marks of others.
Naming of particular products or brands should not be seen as endorsements.
This document may be reproduced or distributed in any form without prior permission provided the copyright notice is retained on all copies.
Modified versions of this document may be freely distributed provided that they are cloearly identified as such, and this copyright is included intact.
You are strongly recommended to take a backup of your system before
major installation, and backups at regular intervals.
<SECT1>Credits
<P>
<NIDX>network install!credits</NIDX>
I am always open to putting more names in this section so if you want to get in
here then please send me feedback or write your own section for a different
Linux &reg distribution that is not included yet.
Thanks to my proof readers of version 0.9:<NEWLINE>
- Adrian Fewings<NEWLINE>
- Beth Carey<NEWLINE>
- Paul Milner
<SECT1>Translations
<P>
<NIDX>network install!translations</NIDX>
Currently this document is only available in English. If you would like to be a
translator for it then please mail me.
<SECT1>Change Log
<P>
<NIDX>network install!change log</NIDX>
You can always find the latest copy of this document at the <URL URL="http://www.tldp.org/" NAME="Linux Documentation Project"> homepage.
<TABLE LOC="h">
<TABULAR CA="lll">
<BF/VERSION/|<BF/DATE/ |<BF/CHANGE/@<hline>@
0.1 |27th July 2002 |Started writing the first draft@
| |Wrote the Introduction Section.@
0.2 |2nd August 2002 |Finalised the document structure.@
| |Written the SuSE Server Setup.@
0.3 |20th August 2002 |Tidied up source to work better with PDF docs@
| |Written SuSE Client Install@
0.4 |21st August 2002 |Written Redhat Server Setup@
0.5 |22nd August 2002 |Written Redhat Client Install@
0.6 |23rd August 2002 |Written Debian Server Setup@
0.7 |30th August 2002 |Written Debian Client Install@
0.8 |1st September 2002 |Written Quick Install Section@
0.9 |2nd September 2002 |Written Structure Section & Tidied up loose ends@
1.0 |12th September 2002 |Proof read and made refinements@
| |Submit to the LDP@
</TABULAR>
</TABLE>
<!--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-->
<SECT>Document Structure
<P>
<NIDX>network install!document structure</NIDX>
This document is split up into various sections that are designed to make it
easy to read and learn from. There are major sections that allow the reader to
skip to parts of the HOWTO that will be relevant for them. The entire document
is not designed to be relevant to every reader and you may wish to skip out
entire major sections of it. Each major section will consist of a set of
subsections, so if you think a major section is relevant to what you are
reading this HOWTO for then please read <EM>ALL</EM> the subsections.
This HOWTO covers different distributions of Linux and I try to be generic
across different versions of a particular distribution. It contains two basic
high-level structures to it for each distribution that it contains, these are
(a) sections on setting up Linux install <REF ID="server" NAME="server">
server machines, and (b) sections on setting up <REF ID="client" NAME="clients">
using an install server. In addition to these two types of main section there
are also a few other sections that are designed for reference purposes to
other documents, and how to use this document.
<SECT1>Server Setup Structure <LABEL ID="server">
<P>
<NIDX>network install!server setup structure</NIDX>
This is a rough list of points that you will need to follow in order to setup a
Linux machine as a network install server. The HOWTO sections on setting up
servers roughly adhere to this list:
<ENUM>
<ITEM>Install a machine with Linux to be a server machine</ITEM>
<ITEM>Check you have enough disk space free to serve Linux installs</ITEM>
<ITEM>Set up the filespace you want to use to serve the Linux installs</ITEM>
<ITEM>Copy the install media to your filespace</ITEM>
<ITEM>Enable one or more remote access methods to your filespace</ITEM>
<ITEM>Customise your server images</ITEM>
</ENUM>
<SECT1>Client Install Structure <LABEL ID="client">
<P>
<NIDX>network install!client install structure</NIDX>
This is a rough list of points that you will need to follow in order to install
a Linux distribution from a network install server. The HOWTO sections on
installing client machines roughly adhere to this list:
<ENUM>
<ITEM>Install config program on a machine</ITEM>
<ITEM>Use config program to create config files</ITEM>
<ITEM>Edit the config file to include customisable options</ITEM>
<ITEM>Create a bootable media</ITEM>
<ITEM>Provide access to the config file</ITEM>
<ITEM>Boot your machine and read the config file</ITEM>
<ITEM>Client contacts server machine</ITEM>
<ITEM>Manually supply any requested arguments</ITEM>
<ITEM>Client installs and reboots to new operating system</ITEM>
</ENUM>
<SECT1>Reading plan
<P>
<NIDX>network install!reading plan</NIDX>
Although this is not the biggest reference guide in the world you can still help
yourself for quicker reading by following the guidelines below. I have tried to
write the HOWTO in such a way that it will be useful to all skill levels in
Linux.
<DESCRIP>
<TAG>Expert</TAG> (aka the elite). If you are familiar with Linux as well as
installation over networks then you will probably be able to do most of your
setup using the quick guide section, you will also find some useful references
in the appendices for further reading purposes. For distribution specific
details of a network install then you should be able to reference the
appropriate subsection.
<TAG>Experienced</TAG> (aka competent). If you are familiar with Linux but new to
network installations then you should be able to make good use of the various
distribution independent sections. Read carefully through the sections that you
think are relevant for your purposes but you should be able to skip through the
commands quite easily. You will also find good references in the appendices for
further reading.
<TAG>Newbie</TAG> (mostly harmless). You will find some excellent installation
references listed in the appendices that I would thoroughly recommend reading
before attempting network installations. Make sure you are completely happy
with a basic non-network Linux installation before you attempt networked
installs. Once you think you are ready then read very thoroughly through the
sections for the distribution you are interested in and make sure you read the
non-distribution specific sections carefully too. You should find the command
references in this HOWTO very helpful.
</DESCRIP>
<!--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-->
<SECT>Quick Guide <LABEL ID="quickguide">
<P>
<NIDX>network install!Quick Guide</NIDX>
This chapter gives some overview information about installing Linux over a
network. All examples and information here can be considered generic between
different Linux distributions. If you want more specific information for a
particular distribution then please read one of the following relevant chapters.
<SECT1>Advantages & Disadvantages
<P>
The following is a list of advantages and disadvantages of installing Linux over
a network and the automatic installation features available with many
distributions of Linux. The list is in no specific order:
<SECT2>Advantages
<P>
<ITEMIZE>
<ITEM>Fastest installation (on a good network)</ITEM>
<ITEM>Automatic configuration available (unattended installation)</ITEM>
<ITEM>Very quick installation of many systems</ITEM>
<ITEM>No need for physical installation media</ITEM>
<ITEM>Customisable installation with packages not available from the standard distribution</ITEM>
<ITEM>Once the install system is setup and working installations are very simple</ITEM>
<ITEM>Multiple system configurations available for automatic installation with different config files</ITEM>
<ITEM>Simultaneous installation from a single source</ITEM>
<ITEM>No need for an install media library, space-saving</ITEM>
<ITEM>Very easy to update</ITEM>
<ITEM>No problems with reading install media</ITEM>
</ITEMIZE>
<SECT2>Disadvantages
<P>
<ITEMIZE>
<ITEM>Slow installation (on a bad network)</ITEM>
<ITEM>Added complexity of installation</ITEM>
<ITEM>Time needed initially to set up an install server</ITEM>
<ITEM>Relies on network and connectivity</ITEM>
<ITEM>Uses network bandwidth</ITEM>
<ITEM>A server machine is required (expensive)</ITEM>
</ITEMIZE>
<SECT1>Automatic vs Manual Installation
<P>
This section briefly compares the differences between automatic (or unattended)
installations with the more common manual installations available. This should
give you a good idea of which system is right for your usage.
<SECT2>Automatic Installation
<P>
Automated or unattended installation is probably less used and less well known
for installing systems than manual installation. This instantly gives rise to
the challenges of trying to educate people about what it is and how to use it.
Once you understand the basics of networked installation then automatic
installation is a natural next step to take when installing and configuring
your systems.
Automatic installation has the major drawback of a longer setup period required
at the start of your process. This is to set up the install server (which you
need to do for any network install environment) but you must also make up one or
more configuration files for your install client to read. It is this setup
time and slight added complexity that you must weigh up before deciding whether
to do manual or automatic installations. Basically, as a rule of thumb, the
more machines you have to install, the more time will be saved by using
automatic installation techniques.
Automated installations are very easy to perform once you have the initial setup
completed. You boot your client system in any way shape or form you like
(usually by floppy disk) but you also provide access to your configuration file
to the client at install time (usually either on the floppy disk or over the
network connection). The configuration file contains all the required
information that your client will need for installation, from what
mouse/keyboard to use right through to the packages that you want installed on
your system.
Another large bonus point of using the automated installation techniques is that
most Linux distributions also provide means to add customised packages to the
system at install time. This means that you can install packages that are not
provided by the particular Linux distribution you are installing. There are
normally also further configuration steps available such as the ability to write
scripts for your installation that will get performed before, during, or after
the install is complete. This all adds up to providing much faster installation
of a complete system that is already setup in a customised way for your
particular environment.
<SECT2>Manual Installation
<P>
This is the method of Operating System (OS) installation that most people are used
to. Commonly we install our base OS using CDROM disks and boot from CDROM or
floppy disk before proceeding through a program of menus that allow us to
customise certain options. This is probably the greatest benefit of Manual
Installation i.e. most people are familiar with the process. However, it can
bring other benefits too such as a quick/easy/simple installation and this
method of installation is used more (therefore tested more) than other
methods of installation so it might just be more reliable too.
The problems with manual installation come when you update your system very
regularly, you are installing a large number of systems, or you want to have a
particularly customised setup. Manual installation will not allow you to add
extra programs to your OS at install time, you will have to install the OS then
boot it before configuring the programs you want in the way that you would like.
Also, this method can be quite time consuming if you are installing lots of
systems, particularly if you only have a few sets of CDs.
Manual installation can still be done using a networked install environment.
You can do this on any compatible OS that allows you to boot your client
machine ready for installation before loading your network drivers and
contacting your install server. All the data that would otherwise have been
copied from CD images is now sent over the network instead.
<SECT1>Hardware
<P>
You do not require any special hardware in order to install Linux over a network
in either manual or automated mode. The basic requirements are:
<ENUM>
<ITEM>That you have a server machine available to you that has enough storage
space on it to hold the install image that you want to transfer over the
network.</ITEM>
<ITEM>Ensure that this server is powerful enough to cope with the load that is
going to be placed upon it.</ITEM>
<ITEM>A network connection between your server and the client you want to
install.</ITEM>
<ITEM>A client machine with the appropriate hardware for the installation that
you are intending to do.</ITEM>
</ENUM>
Some examples where you might require specific hardware may be if you have a
specialised network or if you need to attach more storage to your server, for
example. In the example of attaching storage to your server, it does not matter
in any way to the installation process where the install image is held, it can
be on a local hard disk, in a RAID array, on a distributed filesystem or anywhere
that the server machine can access reliably and quickly.
It goes without saying that if you don't have a network or your network is
unreliable or slow then do not attempt network installations as they may fail
or take a very long time to complete.
<SECT1>Software/Services
<P>
You will require a basic understanding of some of the services that run on a
Linux based machine in order to setup your install server. These are services
that make your install image available over your local network to the client
machines that you want to install. In addition you will also need basic Linux
administration skills in order to set up and maintain your server well.
Most Linux distributions have a network installation method that makes use of
between one and three methods of transferring data cross a network. These
services may or may not have an impact on the installation you are going to
perform at the client end. The differences between the services will depend on
the Linux distribution you are installing and any distinctions that this
distribution makes between these services.
The three data transfer services are NFS (Network Filesystem), HTTP (Hypertext
Transfer Protocol) and FTP (File Transfer Protocol). Each of these services
is slightly different in the way that it operates, the function that it is
designed for, and the way that you administrate it. Basic guidance is provided
throughout this HOWTO about what these differences are but you are recommended
to familiarise yourself with each of them so that you can manage your system
responsibly and make informed choices about the services that you run.
<SECT1>Generic Server Setup Guide
<P>
This section gives a brief run down of setting up an install server for a
'general' Linux distribution. The terms and theory here are as general to all
Linux distributions as they can be and are designed specifically to give you a
very quick overview of what network installations involve. If you want to
perform network installations on your own machines then you are advised to read
the relevant sections of this HOWTO in full. If the HOWTO does not contain a
section for the distribution that you want to install then you can either change
the distribution you are installing over the network to match the HOWTO or use
the following as a very rough guide on how to do it.
<SECT2>Begin Setup
<P>
This section explains how to set up your server machine to be an install server
for a generic Linux distribution. For most distributions you can use any other
distribution as the install server. For example, you can install Redhat over
your network using a server installed with SuSE.
This guide starts from the point where you have a machine installed with Linux
which is already up and running and connected to your network. If you require
help with installing Linux on your server then please consult the Further
Information section of this HOWTO in <REF ID="AppendixA" NAME="Appendix A">.
<SECT2>Setting Up Filespace
<P>
<NIDX>network install!generic</NIDX>
In order to set up an install server you will need to put on all the required
data that will be needed to perform a full installation of the Linux
distribution you are going to serve. For example, if you are used to installing
Linux using CDs then you will need space on your server to copy <EM>ALL</EM>
the contents of each CD onto your server.
So, before you even think about setting up your machine as an install server,
you must check that you have the required space available. This sounds like a
trivial thing to check but it is very important and easily forgotten when you're
setting up.
<SECT3>How much space will you need?
<P>
A guide for the amount of space that you will require will be the amount of
space on your install media that you are intending to copy from later. This
might be one of the following approximate examples:
<ITEMIZE>
<ITEM>Number of CDs x 650Mb</ITEM>
<ITEM>Number of ISO images x 650Mb</ITEM>
</ITEMIZE>
<SECT3>How much space do you have?
<P>
You will need the appropriate amount of space available to your system on some
local filesystem. It does not matter what form this takes, whether it's a RAID
device, local disk (either SCSI or IDE), etc. Ensure that the space you intend
to use is formatted with your chosen filesystem and is mounted.
You can check this space with the command: <VERB>df -h</VERB>
If this output shows you have enough space to copy your install media then
great, you can continue installation. If not then it's time to think about an
upgrade to your intended server machine!
<SECT2>Copy Installation Media
<P>
Once you know you have enough space available it's time to start copying your
install media to your chosen filesystem and directory. This might involve
copying the entire contents of all your CDs to one install directory on your
server or copying the data over the network by some method, etc.
<SECT2>Enable Remote Access
<P>
Time to make your install data available to other machines on the network.
Most distributions allow installation over the network using NFS, HTTP and FTP
protocols. You can select which of these will be used at install time on the
client. If one of the services is not setup on the machine then it will still
be available for selection by the client but the install will not work.
Therefore, it is either best to enable all three services on your server (so
they all work on each client machine) or if you don't enable all three then
advertise the fact very well and say which service should be used for your
particular install server.
<SECT3>NFS
<P>
To install over NFS you need to meet certain conditions on the server:
<ITEMIZE>
<ITEM>Your install directory is exported</ITEM>
<ITEM>NFS is installed and running</ITEM>
<ITEM>Portmap is running</ITEM>
</ITEMIZE>
To export your install directory edit the <TT>/etc/exports</TT> file and add an
entry for your installation target directory to it. If you are not sure about
exporting filesystems then see your man page for the exports file at
exports (5).
<SECT3>FTP
<P>
To install over FTP you need to allow FTP access to the directory that you have
setup on the server as the installation directory. This can be either anonymous
FTP access or access through a named account with a password. Anonymous access
is probably best unless you have a reason to protect your install server via
a password.
If you want anonymous FTP to point to a different directory then you can use
sym links to point to the directory that you have set up as the install
directory on the server. This will allow FTP into a chrooted environment but
still give you access to the install images in a different location.
<SECT3>HTTP
<P>
If you have a web server running and want to enable HTTP access to your install
server then add sym links from your document root to the install server
directory and this will grant access. If you are not familiar with web servers
or are not comfortable with this approach then leave out HTTP access from your
install server as it provides no benefits over NFS or FTP installs which may
be simpler to set up.
If you do choose to use HTTP then basically all you have to do is make the
install directory visible to your web server by making it appear under the
document root by some means.
<SECT2>Basic Setup Complete
<P>
You have now completed the basic setup of your install server. Different
distributions will grant you different options for further customisation
techniques of the installation process. The most commonly found customisation
is the option to install packages that do not come as standard with the
distribution you are installing. However, there may be further customisations
you want to do on your particular server or that are available for your
particular Linux distribution.
<SECT1>Generic Client Install Guide
<P>
This section gives a brief run down of setting up a client machine using your
install server. The terms and theory here are as general to all Linux
distributions as I can be and are designed specifically to give you a very
quick overview of what network installations involve. If you want to perform
network installations on your own machines then you are advised to read the
relevant sections of this HOWTO in full. If the HOWTO does not contain a
section for the distribution that you want to install then you can either
change the distribution you are installing over the network to match the HOWTO
or use the following as a very rough guide on how to do it.
<SECT2>Create Config Files
<P>
You only need to read/follow this section if you are intending to use an
automated install process, if you intend to do a manual installation over
your network then skip this section. Here we go through the process of creating
configuration files that the installer will read in order to create the
configuration of our client machines we are installing during an unattended
network installation.
<SECT3>Configuration Program Installation
<P>
In order to start creating your config files you will need to install the
relevant config file editor. Each distribution that is capable of installing
in unattended mode over the network will provide some means of editing config
files. Make sure you have these installed on some Linux machine that will
allow you to create and save all the different configurations you might want
to install on your network.
<SECT3>Create A Basic Config File <LABEL ID="genericbasicconfig">
<P>
Once you have confirmed that you have the configuration program package
installed, you can start to create configuration files. For most situations
the basic configuration described here will be sufficient to perform your
installations.
Start the configuration program that you have on your system. In most cases,
you will now be presented with a window that allows you to configure most of
your installation options as if you were installing a new machine or performing
an upgrade. You can proceed through each menu, configuring your options for a
particular system or set of similar systems that you wish to automatically
install.
Once you have progressed through each configuration screen, you are ready to
save out your configuration file to disk. Click the save button and choose a
location on your system to store configuration files. If you are creating lots
of different configurations then it might be worthwhile creating your own
configuration repository - don't forget to name the files sensibly so you know
which is which.
<SECT3>Advanced Config File Setup
<P>
Before attempting advanced configuration please make sure that you have first
created a valid basic configuration file as described <REF ID="genericbasicconfig" NAME="above">.
It is perfectly possible to create your own configuration files from scratch
but it is far easier to use the tools provided to do the job for you!
Once you have your configuration file saved, you can open it in your favourite
text editor. You can use or modify any of the existing tags in your file, just
so long as the tags, options, and syntax you use are legal. Once you have
edited the file manually then save it back out in text format again. The best
use of editing the configuration file manually is probably for adding your own
customised packages to the installation.
<SECT2>Boot the Machine
<P>
The most common method of booting a client ready for installation over a network
is to use a floppy disk.
<ENUM>
<ITEM>If you have not already created a boot floppy then do it now (you only
need to do this step once, when you have a boot floppy you can install as many
machines as you like with a single floppy):
<ITEMIZE>
<ITEM>Locate the floppy image that you need to use.</ITEM>
<ITEM>Copy the image to your floppy disk (make sure you have one
inserted in the drive, but not mounted) using the following command:
<VERB>dd if=your-file.img of=/dev/fd0</VERB></ITEM>
</ITEMIZE>
<ITEM>If you are doing an automated install (with the config file) then you
should follow this step (otherwise skip to next step):
<ITEMIZE>
<ITEM>Copy your config file to the root directory of the floppy</ITEM>
</ITEMIZE>
</ITEM>
<ITEM>Insert your floppy disk into the client machine that you want to install.
Make sure that the floppy disk is in the boot list of your BIOS and turn on your
machine to boot from the floppy.</ITEM>
<ITEM>At the boot prompt:
<ITEMIZE>
<ITEM>If you are doing an automated install then start the automated
process</ITEM>
<ITEM>If you're not using config files then press ENTER for the
default installation</ITEM>
</ITEMIZE>
</ITEM>
<ITEM>Finish the installation.</ITEM>
</ENUM>
Don't forget that some distributions will allow you to boot from other media as
well as floppy images to perform network installations. Also, each distribution
normally has a set of extra boot options that you can use if the above method
does not work on your hardware. These extra configuration options are normally
for less common hardware but are provided to make sure you can perform network
installs.
<!--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-->
<SECT>SuSE Server Setup
<P>
<NIDX>network install!suse server setup</NIDX>
This section explains how to set up your server machine to be an install server
for SuSE Linux. You can set up any Linux distribution to be a SuSE Linux
install server, this machine does not necessarily have to be running SuSE Linux
itself.
This guide starts from the point where you have a machine installed with Linux
which is already up and running and connected to your network. If you require
help with installing Linux on your server then please consult the Further
Information section of this HOWTO in <REF ID="AppendixA" NAME="Appendix A">.
<SECT1>Setting Up Filespace
<P>
In order for your server to act as a SuSE Network Install server you will need
to put on all the required data that will be needed to perform a full
installation of the SuSE version you are serving. For example, if you are used
to installing SuSE using CDs then you will need space on your server to copy
<EM>ALL</EM> the contents of each CD onto your server.
So, before you even think about setting up your machine as an install server,
you must check that you have the required space available. This sounds like a
trivial thing to check but it is very important and easily forgotten when you're
setting up.
<SECT2>How much space will you need?
<P>
A guide for the amount of space that you will require will be the amount or
space of install media that you are intending to copy from later. This might be
one of the following examples:
<ITEMIZE>
<ITEM>Number of CDs x 650Mb</ITEM>
<ITEM>Number of ISO images x 650Mb</ITEM>
<ITEM>One DVD which might be roughly 5Gb</ITEM>
</ITEMIZE>
<SECT2>How much space do you have?
<P>
You will need the appropriate amount of space available to your system on some
local filesystem. It does not matter what form this takes, whether it's a RAID
device, local disk (either SCSI or IDE), etc. Ensure that the space you intend
to use is formatted with your chosen filesystem and is mounted.
You can check this space with the command: <VERB>df -h</VERB>
If this output shows you have enough space to copy your install media then
great, you can continue installation. If not then it's time to think about an
upgrade to your intended server machine!
<SECT1>Copy Installation Media
<P>
Once you know you have enough space available it's time to start copying your
install media to your chosen filesystem and directory. For the purposes of this
HOWTO we will use the following example to represent the directory from which
our install server will be setup and running: <VERB>/install</VERB>
Copy your install media to <TT>/install</TT>. The following example shows you how to do
this for copying your SuSE CD images to <TT>/install</TT>:
<ENUM>
<ITEM>Mount your CD<NEWLINE>e.g. <TT>mount /mnt/cdrom</TT></ITEM>
<ITEM>Copy the data from CD<NEWLINE>e.g. <TT>cp -av /mnt/cdrom /install</TT></ITEM>
<ITEM>Unmount the CD<NEWLINE>e.g. <TT>umount /mnt/cdrom</TT></ITEM>
<ITEM>Now swap CDs and repeat from step 1 for each of your CDs you have.</ITEM>
<ITEM>Ensure that you have the dot files from the root directory of each CD copied over to <TT>/install</TT></ITEM>
</ENUM>
Now you should have all you need in <TT>/install</TT> but if you have copied
from CD then as far as SuSE is concerned the <TT>/install</TT> directory still
represents a set of CD images that you have copied. You need to change this
such that the set of CD images appears as a single installation medium. Use
the following Perl command to do this:
<VERB>perl -pi -e 's/InstPath:\t\d+/InstPath:\t01/' /install/suse/setup/descr/common.pkd</VERB>
<SECT1>Enable Remote Access
<P>
Time to make your install data available to other machines on the network.
<SECT2>NFS
<P>
SuSE is best installed over the network using NFS since support for the HTTP and
FTP protocols is not necessarily supported during installation, even though later
system updates may be applied over HTTP or FTP.
To install over NFS you need to meet certain conditions on the server:
<ITEMIZE>
<ITEM>Your install directory is exported</ITEM>
<ITEM>NFS is installed and running</ITEM>
<ITEM>Portmap is running</ITEM>
</ITEMIZE>
To export your install directory edit the <TT>/etc/exports</TT> file and add an
entry for <TT>/install</TT> to it. In our example, we would use the folowing
line: <VERB>/install *(ro)</VERB>
When you have saved your exports file you must then get your NFS daemon to read
its configuration file again in order to export the directory you just added.
Do this by running the command: <VERB>exportfs -r</VERB>
This gives us the most simple read-only export to all hosts on our network. If
you want to include more advanced options in your export e.g. only exporting to
certain hosts on the network or a certain subnet, etc then see your man page for
the exports file at exports (5).
You have now completed the basic setup of your install server.
<SECT1>Package Customisation <LABEL ID="susecustomrpm">
<P>
You can, if you wish, add your own packages to the SuSE distribution so that
they are installed along with SuSE over the network when you install your
clients. The advantage of this is that you don't have to spend time
configuring each machine for packages that you may want installed that are
not included with SuSE. Examples of this might be your own RPM packages that
you have created or some specialised package.
Simply copy your RPM package files into the following directory
<VERB>/install/suse/custom</VERB>
<EM>NOTE: you may need to create this directory if it does not exist</EM>
Your custom RPM packages should now be available to the clients.
<!--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-->
<SECT>SuSE Client Install
<P>
<NIDX>network install!suse client install</NIDX>
You should have already decided by now using the <REF ID="quickguide" NAME="Quick Guide"> section
of this HOWTO whether you are going to install your machine using the automated
process or a manual process. The automated process under SuSE is known as
AutoYaST and in short provides you with a configuration file for the machine
that you are going to install so that you can perform unattended installs of
client machines.
<SECT1>Create AutoYaST Config Files
<P>
You only need to read/follow this section if you are intending to use an
automated install process, if you intend to do a manual installation over
your network then skip this section. Here we go through the process of creating
configuration files that the installer will read in order to create the
configuration of our client machine we are installing during an unattended
network installation.
<SECT2>YaST 2 Module Installation
<P>
In order to start creating your config files you will need to install the
AutoYaST module for YaST2 on your SuSE machine. You will need three RPMs for
this, all of which are on your SuSE source media e.g. CDs. The three RPMs are:
<ITEMIZE>
<ITEM>yast2-trans-autoinst</ITEM>
<ITEM>yast2-config-autoinst</ITEM>
<ITEM>yast2-module-autoinst</ITEM>
</ITEMIZE>
Check to see if you already have them installed with the command: <VERB>rpm -q {rpm package name}</VERB>
If these packages are not installed then install with the command: <VERB>rpm -Uvh {rpm package name}</VERB>
<SECT2>Create A Basic Config File <LABEL ID="susebasicconfig">
<P>
Once you have confirmed that you have the AutoYaST packages installed on your
system, you can now start to create configuration files. For most situations
the basic configuration described here will be sufficient to perform your
installations.
Start the YaST2 Autoinstall configuration GUI with the command: <VERB>yast2 autoyast</VERB>
You will now be presented with a window that allows you to configure most of
your installation options as if you were installing a new machine or performing
an upgrade. You can proceed through the menu system configuring your options
for a particular system or set of similar systems that you wish to automatically
install. Alternatively, you can create class definitions which allows you to
save different parts of the configuration setup and then use different classes
for different sets of machines.
The use of classes is particularly good when you have a set of systems that are
similar but that you would like installed in slightly different ways. For
example, you could create a class definition for the hardware setup of all your
client machines and create a separate class for the packages you want installed
on them, whether they are server machines, test machines, workstations, etc.
You can then choose which classes are used by which machines when they are
installed. In our example here, all the machines would use the same hardware
setup, but the workstation machines could install our workstation class of
packages, test machines the test class, etc.
Once you have progressed through each configuration screen in the config setup
GUI from YaST2 you are ready to save out your configuration file to disk. <EM>
NOTE: it is outside the boundaries of this document to take you through each
configuration option for installation, we are just concerned with the principles
of network installs here. Please consult your SuSE documentation or
the <URL URL="http://www.suse.com" NAME="SuSE Website"> for this information.</EM>
When you save your configuration files they will be stored locally in two
different locations depending on what file you have created as follows:
<ITEMIZE>
<ITEM>Machine configuration files are stored in <TT>/var/lib/autoinstall/repository</TT></ITEM>
<ITEM>Class definition files are stored in <TT>/var/lib/autoinstall/classes</TT></ITEM>
</ITEMIZE>
<SECT2>Advanced Config File Setup
<P>
Before attempting advanced configuration please make sure that you have first
created a valid basic configuration file as described <REF ID="susebasicconfig" NAME="above">.
It is perfectly possible to create your own configuration files from scratch
but it is far easier to use the tools provided to do the job for you!
Once you have your configuration file saved, you can open it in your favourite
text editor. The file is in XML format so it is particularly easy to follow and
edit manually. You can use or modify any of the existing tags in your file,
just so long as the tags, options, and syntax you use are legal. A full guide
to the tags and their usage can be found in the AutoYaST manual, please see
<REF ID="AppendixA" NAME="Appendix A"> of this guide for a reference.
The best use of editing the configuration file manually is probably for adding
your own customised packages to the installation. Back in
the <REF ID="susecustomrpm" NAME="SuSE Server Setup"> section we describe how to
add your own customised packages to your install server. Here, we describe how
to access those packages using the configuration file so they can be
automatically installed with the rest of the system.
You should be able to locate a <TT>&lt;software&gt;</TT> section in your basic
configuration file in your editor. You can use a sub-tag inside the software
section called the <TT>&lt;extra_packages&gt;</TT> tag which can be used as in
the following example:
<VERB>
&lt;software&gt;
&lt;extra_packages&gt;
&lt;package_location&gt;
custom
&lt;/package_location&gt;
&lt;packages config:type="list"&gt;
&lt;package&gt;{Your package name}&lt;/package&gt;
&lt;package&gt;{Another Package}&lt;/package&gt;
&lt;/packages&gt;
&lt;extra_packages&gt;
&lt;base&gt;Default&lt;base&gt;
&lt;software&gt;
</VERB>
The package location is written as <TT>custom</TT> which describes the directory
under the <TT>suse</TT> directory of you install server where you have put your
custom packages, in our example this would be <TT>/install/suse/custom</TT>,
but you only need to write <TT>custom</TT> here.
You can include as many <TT>package</TT> tags under the <TT>packages</TT>
section as you wish. Use one <TT>package</TT> tag for each custom package you
want to include in your config file and install on the client machine.
The <TT>base</TT> tag at the bottom should be left as you configured it during
the basic configuration.
Save your modified configuration file from your text editor and it will then be
ready to use in your installations as described below.
<SECT1>Boot the Machine
<P>
There are different situations during a network installation boot of one of your
client systems that might mean that you wish to boot in one of the ways below.
<EM>NOTE: you only need use one of the methods described for the particular
usage for which it has been described.</EM>
<SECT2>Manual Installation
<P>
If you skipped over the section above about creating AutoYaST config files then
this is the way in which you should boot your client machines.
<ENUM>
<ITEM>Turn on your machine, ensure the CD drive is in the boot list of your
BIOS, insert the CD. You should be faced with the normal boot menu of the SuSE
installation program. As an alternative to booting from CD, you can boot from
floppy images, from the network, or using whichever method you would normally
use to boot the installation program.</ITEM>
<ITEM>Select the "Manual Installation" option from the boot menu</ITEM>
<ITEM>Your client should now boot the installation program and present you with
a new menu system for the installer</ITEM>
<ITEM>Load any network modules you will need in order to connect to your network</ITEM>
<ITEM>Load any other modules you might need for installation e.g. SCSI modules
if you are installing onto a SCSI type machine.</ITEM>
<ITEM>Select "Start Installation" from the menu</ITEM>
<ITEM>Choose the NFS option and fill in the IP addresses when prompted for.
These should all be familiar to you i.e. the IP address of your server, and
perhaps your client and nameserver as well if you have not selected to use DHCP.</ITEM>
<ITEM>The installation will now proceed to the configuration screens where you
can select the installation options you require for your client in the normal
way</ITEM>
<ITEM>Once you have configured all the installation options and selected to
start the installation process, instead of reading from the normal CD (or other)
media, the installation program will read all the information it needs from the
network.</ITEM>
<ITEM>Don't forget to remove the CD (or other media) from the drive otherwise
you could end up with a recursive installation process.</ITEM>
<ITEM>Go grab a cup of something while you wait for your shiny new installation
to finish, no changing of installation media needed.</ITEM>
</ENUM>
<SECT2>Automatic Installation
<P>
If you followed the section above about creating AutoYaST config files then this
is the way in which you should boot your client machines.
<ENUM>
<ITEM>Copy your config file that you have already created as above from your
repository directory on your hard disk to your floppy disk as a file called
autoinst.xml. You can do this as follows:
<VERB>
Insert and mount a floppy disk
cp /var/lib/autoinstall/repository/Your-File /dev/fd0/autoinst.xml
Unmount the floppy disk
</VERB></ITEM>
<ITEM>Put your floppy disk with the config file in your client machine</ITEM>
<ITEM>Turn on your machine, ensure the CD drive is in the boot list of your
BIOS, insert the CD. You should be faced with the normal boot menu of the SuSE
installation program. As an alternative to booting from CD, you can boot from
floppy images, from the network, or using whichever method you would normally
use to boot the installation program.</ITEM>
<ITEM>At the boot menu leave the default line as Linux to do the standard boot,
but add the following parameters in order to read your configuration file from
the floppy disk:
<VERB>
linux autoyast=floppy
</VERB></ITEM>
<ITEM>Your client should now boot the installation program and it will try to
load appropriate modules and install the system with the information that you
have provided in the config file.</ITEM>
<ITEM>If you are prompted to input any information for any reason then do so
e.g. if the installer cannot connect to your network.</ITEM>
<ITEM>Once the installation is running then you can remove the CD and the floppy
disk and grab a cup of something while you wait for your shiny new installation
to finish, no changing of installation media needed.</ITEM>
</ENUM>
<SECT3>Further Boot Options
<P>
This is an extension to the technique used to boot client machines for Automatic
Installations as described above. You should try this method if you have tried
and failed with the method above. This section should help you if you have had
network connection problems during boot, for example, if you do not have a DHCP
server on your network.
You can create what we call an "<EM>info</EM>" file to hold information about
your clients network details. This can then be used more explicitly by the
install process to contact your network. This is a plain text file in which
you put certain keyword and value combinations that are recognised by the
installer.
The list of keywords you can use is as follows:
<ITEMIZE>
<ITEM>autoyast - the location of your configuration file</ITEM>
<ITEM>gateway - the gateway your client should use (if any)</ITEM>
<ITEM>insmod - any special kernel modules you need to be loaded</ITEM>
<ITEM>install - a full path to your server installation directory</ITEM>
<ITEM>ip - the address of your client machine. If this is blank then the
installer will try BOOTP/DHCP</ITEM>
<ITEM>nameserver - the nameserver address on your network</ITEM>
<ITEM>netdevice - the network adaptor you want to be used</ITEM>
<ITEM>netmask - your client's netmask</ITEM>
<ITEM>server - the hostname or IP address of the server you have set up i.e. the
machine you have your NFS exports from</ITEM>
<ITEM>serverdir - the directory on your server the installation should be taken
from</ITEM>
</ITEMIZE>
Using the above keywords in an example info file, you <EM>might</EM> end up with
something looking a little bit like this:
<VERB>
install: nfs://10.0.0.100/install/SuSE8.0
netdevice: eth0
server: 10.0.0.100
serverdir: /install/SuSE8.0
ip: 10.0.0.200
netmask: 255.0.0.0
gateway: 10.0.0.1
nameserver: 10.0.0.2
autoyast: floppy
</VERB>
Substitute the IP addresses above for relevant ones for your particular network
and save this file with filename <TT>info</TT> in the root directory of your
floppy disk that contains your configuration file <TT>autoinst.xml</TT>
<!--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-->
<SECT>Redhat Server Setup
<P>
<NIDX>network install!redat server setup</NIDX>
This section explains how to set up your server machine to be an install server
for Redhat Linux. You can set up any Linux distribution to be a Redhat install
server, this machine does not necessarily have to be running Redhat.
This guide starts from the point where you have a machine installed with Linux
which is already up and running and connected to your network. If you require
help with installing Linux on your server then please consult the Further
Information section of this HOWTO in <REF ID="AppendixA" NAME="Appendix A">.
<SECT1>Setting Up Filespace
<P>
In order for your server to act as a Redhat network install server you will need
to put on all the required data that will be needed to perform a full
installation of the Redhat version you are serving. For example, if you are
used to installing Redhat using CDs then you will need space on your server to
copy <EM>ALL</EM> the contents of each CD onto your server.
So, before you even think about setting up your machine as an install server,
you must check that you have the required space available. This sounds like a
trivial thing to check but it is very important and easily forgotten when you're
setting up.
<SECT2>How much space will you need?
<P>
A guide for the amount of space that you will require will be the amount or
space of install media that you are intending to copy from later. This might be
one of the following examples:
<ITEMIZE>
<ITEM>Number of CDs x 650Mb</ITEM>
<ITEM>Number of ISO images x 650Mb</ITEM>
</ITEMIZE>
<SECT2>How much space do you have?
<P>
You will need the appropriate amount of space available to your system on some
local filesystem. It does not matter what form this takes, whether it's a RAID
device, local disk (either SCSI or IDE), etc. Ensure that the space you intend
to use is formatted with your chosen filesystem and is mounted.
You can check this space with the command: <VERB>df -h</VERB>
If this output shows you have enough space to copy your install media then
great, you can continue installation. If not then it's time to think about an
upgrade to your intended server machine!
<SECT1>Copy Installation Media
<P>
Once you know you have enough space available it's time to start copying your
install media to your chosen filesystem and directory. For the purposes of this
HOWTO we will use the following example to represent the directory from which
our install server will be setup and running: <VERB>/install</VERB>
Copy your install media to <TT>/install</TT>. The following example shows you how to do
this for copying your Redhat CD images to <TT>/install</TT>:
<ENUM>
<ITEM>Mount your CD<NEWLINE>e.g. <TT>mount /mnt/cdrom</TT></ITEM>
<ITEM>Copy the data from CD<NEWLINE>e.g. <TT>cp -av /mnt/cdrom /install</TT></ITEM>
<ITEM>Unmount the CD<NEWLINE>e.g. <TT>umount /mnt/cdrom</TT></ITEM>
<ITEM>Now swap CDs and repeat from step 1 for each of your CDs you have.</ITEM>
</ENUM>
<SECT1>Enable Remote Access
<P>
Time to make your install data available to other machines on the network.
Redhat can be installed over the network using NFS, HTTP and FTP protocols.
You can select which of these will be used at install time on the client. If
one of the services is not setup on the machine then it will still be available
for selection by the client but the install will not work. Therefore, it is
either best to enable all three services on your server (so they all work on
each client machine) or if you don't enable all three then advertise the fact
very well and say which service should be used for your particular install
server.
<SECT2>NFS
<P>
The NFS protocol is the only one which will work with the graphical install
method of Redhat when installing your client machine. Therefore, if you want
to do graphical (as opposed to text based) installations then you must enable
this service on your server.
To install over NFS you need to meet certain conditions on the server:
<ITEMIZE>
<ITEM>Your install directory is exported</ITEM>
<ITEM>NFS is installed and running</ITEM>
<ITEM>Portmap is running</ITEM>
</ITEMIZE>
To export your install directory edit the <TT>/etc/exports</TT> file and add an
entry for <TT>/install</TT> to it. In our example, we would use the folowing
line: <VERB>/install *(ro)</VERB>
When you have saved your exports file you must then get your NFS daemon to read
its configuration file again in order to export the directory you just added.
Do this by running the command: <VERB>exportfs -r</VERB>
This gives us the most simple read-only export to all hosts on our network. If
you want to include more advanced options in your export e.g. only exporting to
certain hosts on the network or a certain subnet, etc then see your man page for
the exports file at exports (5).
<SECT2>FTP
<P>
The FTP protocol will only allow text installs to be performed by your clients.
This may or may not be ideal for your situation but bear it in mind.
To install over FTP you need to allow FTP access to the directory that you have
setup on the server as the installation directory. This can be either anonymous
FTP access or access through a named account with a password. Anonymous access
is probably best unless you have a reason to protect your install server via
a password.
If you want anonymous FTP to point to a different directory then you can use
sym links to point to the directory that you have set up as the install
directory on the server. This will allow FTP into a chrooted environment but
still give you access to the install images in a different location.
<SECT2>HTTP
<P>
Similarly to the FTP protocol, HTTP will only allow text installs on the client
side. If you have a web server running and want to enable HTTP access to your
install server then add sym links from your document root to the install server
directory and this will grant access. If you are not familiar with web servers
or are not comfortable with this approach then leave out HTTP access from your
install server as it provides no benefits over NFS or FTP installs which may
be simpler to set up.
If you do choose to use HTTP then basically all you have to do is make the
install directory visible to your web server by making it appear under the
document root by some means.
You have now completed the basic setup of your install server.
<SECT1>Package Customisation <LABEL ID="redhatcustomrpm">
<P>
You can, if you wish, add your own packages to the Redhat distribution so that
they are installed along with Redhat over the network when you install your
clients. The advantage of this is that you don't have to spend time
configuring each machine for packages that you may want installed that are
not included with Redhat. Examples of this might be your own RPM packages that
you have created or some specialised package.
Make sure you have the <TT>anaconda-runtime</TT> package installed on your
server. This is normally installed if you're running Redhat but if you have
another distribution on the server then you should be able to install the
Redhat RPM without too much trouble. To check if you have the correct
package enter the command <VERB>rpm -q anaconda-runtime</VERB>If the name
of the package is returned then you have it installed, if nothing is
returned the install the RPM as required.
Now simply copy your RPM package files into the following directory
<VERB>/install/Redhat/RPMS</VERB>
This is the directory that should already contain all the Redhat standard
RPMS for the Redhat version you have setup on your install server.
Once you have copied your custom RPMS you need to regenerate Redhat's list of
packages that it can install. Do this using the following command:
<VERB>/usr/lib/anaconda-runtime/genhdlist /install</VERB>
The directory used here of <TT>/install</TT> is the example directory we have
been using so far. Replace this with the directory where you copied the Redhat
CD images to. The directory should be the base directory of the Redhat CD set
i.e. the one that contains a subdirectory called <TT>Redhat</TT> before the
directory called <TT>RPMS</TT>
Your custom RPM packages should now be available to the clients.
<SECT2>Further Customisation
<P>
In addition to adding your own RPMS to Redhat you can also create RPM groups for
the installation process. These will be similar to the standard groups offered
by the Redhat install already such as the "Software Development" group which
will install all packages for this purpose onto your system.
This allows quick installation of many RPMS for a specific purpose on your
systems and the groups will become available like the normal Redhat groups (and
are used in the same way) upon installation of the client.
To create your own groups you must edit a text file called the <TT>comps</TT>
file. In our example, this is located at:
<VERB>/install/Redhat/base/comps</VERB>
Copy the syntax for the groups that are already in the file and you can create
your own groupings. These can include both packages from the standard Redhat
install or any custom packages that you might have already added i.e. you can
include any package in the <TT>RPMS</TT> directory.
Once you have edited the file then save it back out over the original (it might
be an idea to take a backup of the original but it will always be on your CD
images anyway if you need it). You must now run the <TT>genhdlist</TT> command
again as explained above.
<!--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-->
<SECT>Redhat Client Install
<P>
<NIDX>network install!redhat client install</NIDX>
You should have already decided by now using the <REF ID="quickguide" NAME="Quick Guide"> section
of this HOWTO whether you are going to install your machine using the automated
process or a manual process. The automated process under Redhat is known as
Kickstart and in short provides you with a configuration file for the machine
that you are going to install so that you can perform unattended installs of
client machines.
<SECT1>Create Kickstart Config Files
<P>
You only need to read/follow this section if you are intending to use an
automated install process, if you intend to do a manual installation over
your network then skip this section. Here we go through the process of creating
configuration files that the installer will read in order to create the
configuration of our client machine we are installing during an unattended
network installation.
<SECT2>Kickstart Configurator Installation
<P>
In order to start creating your config files you will need to install the
Kickstart Configurator on your Linux machine. You will need one of two RPMS
for this depending on the version of Redhat you are using. These RPMS are
available on your Redhat install CDs as follows:
<ITEMIZE>
<ITEM><TT>redhat-config-kickstart</TT> - for versions 8.x and above</ITEM>
<ITEM><TT>ksconfig</TT> - for earlier versions</ITEM>
</ITEMIZE>
Check to see if you already have them installed with the command: <VERB>rpm -q {rpm package name}</VERB>
If these packages are not installed then install with the command: <VERB>rpm -Uvh {rpm package name}</VERB>
<SECT2>Create A Basic Config File <LABEL ID="redhatbasicconfig">
<P>
Once you have confirmed that you have the configurator packages installed,
you can now start to create configuration files. For most situations the basic
configuration described here will be sufficient to perform your installations.
Start the Kickstart configuration program that you have on your system. This
will be done with the command <TT>redhad-config-kickstart</TT> for Redhat 8.x
systems and above (or if you have the redhat-config-kickstart RPM installed),
or the command <TT>ksconfig</TT> for other Redhat systems (or if you have the
ksconfig RPM installed).
You will now be presented with a window that allows you to configure most of
your installation options as if you were installing a new machine or performing
an upgrade. You can proceed through each menu, configuring your options
for a particular system or set of similar systems that you wish to automatically
install.
Once you have progressed through each configuration screen, you are ready to
save out your configuration file to disk. <EM>NOTE: it is outside the
boundaries of this document to take you through each configuration option for
installation, we are just concerned with the principles of network installs
here. Please consult your Redhat documentation or
the <URL URL="http://www.redhat.com" NAME="Redhat Website"> for this
information.</EM> Click the "<TT>save</TT>" button and choose a location on
your system to store configuration files. If you are creating lots of different
configurations then it might be worthwhile creating your own configuration
repository - don't forget to name the files sensibly so you know which is which.
<SECT2>Advanced Config File Setup
<P>
Before attempting advanced configuration please make sure that you have first
created a valid basic configuration file as described <REF ID="redhatbasicconfig" NAME="above">.
It is perfectly possible to create your own configuration files from scratch
but it is far easier to use the tools provided to do the job for you!
Once you have your configuration file saved, you can open it in your favourite
text editor. <!--If you are using Redhat 8.x or above then the file is in XML,
otherwise you should see a plain text file with configuration keywords in it.-->
You can use or modify any of the existing tags in your file, just so long as
the tags, options, and syntax you use are legal. Once you have edited the file
manually then save it back out in text format again.
The best use of editing the configuration file manually is probably for adding
your own customised packages to the installation. Back in
the <REF ID="redhatcustomrpm" NAME="Redhat Server Setup"> section we describe
how to add your own customised packages to your install server. Here, we
describe how to access those packages using the configuration file so they can
be automatically installed with the rest of the system.
You should be able to locate a <TT>packages</TT> section in your basic
configuration file in your editor. You can add extra packages by name as you
require to the end of this list of packages. Follow the format of the other
packages that you have listed in the file already from the basic configuration.
Packages that start with <TT>@</TT> are package group names. You can use any
of the default Redhat package groups or you can use any custom groups you may
have created.
You can add as many packages and groups under the <TT>packages</TT> section as
you wish. Just put one package on each line and follow the format already
provided.
Save your modified configuration file from your text editor and it will then be
ready to use in your installations as described below.
<SECT1>Boot the Machine
<P>
It is simplest to use a floppy disk to boot your clients ready for installation.
Everything you need is provided for you on the Redhat CDs as follows:
<ENUM>
<ITEM>If you have not already created a boot floppy then do it now (you only
need to do this step once, when you have a boot floppy you can install as many
machines as you like with a single floppy):
<ITEMIZE>
<ITEM>Locate the floppy image that you need to use. This is on the
first Redhat CD and is at <TT>images/bootnet.img</TT></ITEM>
<ITEM>From the <TT>images</TT> directory on the CD copy the image to
your floppy disk (make sure you have one inserted in the drive, but not
mounted) using the following command:
<VERB>dd if=bootnet.img of=/dev/fd0</VERB></ITEM>
</ITEMIZE>
</ITEM>
<ITEM>If you are doing an automated install (with the config file) then you
should follow this step (otherwise skip to next step):
<ITEMIZE>
<ITEM>Mount your floppy disk <VERB>mount /mnt/floppy</VERB></ITEM>
<ITEM>Copy your config file to the root directory of the floppy with
the name <TT>ks.cfg</TT> <VERB>cp /path/to/file /mnt/floppy</VERB></ITEM>
<ITEM>Umount your floppy disk <VERB>umount /mnt/floppy</VERB></ITEM>
</ITEMIZE>
</ITEM>
<ITEM>Insert your floppy disk into the client machine that you want to install
Redhat on. Make sure that the floppy disk is in the boot list of your BIOS and
turn on your machine to boot from the floppy.
</ITEM>
<ITEM>At the boot prompt:
<ITEMIZE>
<ITEM>If you are doing an automated install:
<VERB>linux ks=floppy</VERB></ITEM>
<ITEM>If you're not using config files then press ENTER for the
default installation</ITEM>
</ITEMIZE>
</ITEM>
<ITEM>Finish the installation:
<ITEMIZE>
<ITEM>If you are doing an automated install then you must complete any
parts of the configuration process that you have missed in the config
file. If you have a complete config file then you're done so go get
yourself a cup of something nice and wait for your install to finish.</ITEM>
<ITEM>If you are doing a manual install then you must complete the
installation in the normal way, going through each menu of the Redhat
install program and selecting the options you require for your machine.
When you finish then it's time for a cup of something nice, no need to
swap install media here.</ITEM>
</ITEMIZE>
</ITEM>
</ENUM>
<SECT2>Further Boot Options
<P>
This is an extension to the technique used to boot client machines for automatic
installations as described above. You should try this method if you have tried
and failed with the method above. This section should help you if you have had
network connection problems during boot, for example, if you do not have a
network card supported by the floppy boot disk.
You can create a second floppy disk to use in the boot process which contains
extra drivers for network cards. This can then be read on boot and the drivers
loaded for your card from there instead. This is done as follows:
<ENUM>
<ITEM>In the <TT>images</TT> directory on your CD you should find a file called
<TT>drvnet.img</TT>.</ITEM>
<ITEM>From the <TT>images</TT> directory on your CD, copy the file to a
<EM>different</EM> floppy disk with the command:
<VERB>dd if=drvnet.img of=/dev/fd0</VERB>
Again, make sure your floppy disk is not mounted when you run this command.</ITEM>
<ITEM>Now you have a network driver floppy disk. You should return to your
installation as described above but now add the keyword <TT>dd</TT> to your
command line.
<ITEMIZE>
<ITEM>So for automated intall we type:
<VERB>linux dd ks=floppy</VERB></ITEM>
<ITEM>For manual install we type:
<VERB>linux dd</VERB></ITEM>
</ITEMIZE>
</ITEM>
<ITEM>When prompted if you have a driver disk, select <TT>YES</TT>. Then swap
the boot disk for your driver disk and the extra drivers will load and detect
your network card.</ITEM>
<ITEM>You should now continue with the installation as described above.</ITEM>
</ENUM>
<!--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-->
<SECT>Debian Server Setup
<P>
<NIDX>network install!debian server setup</NIDX>
This section explains how to set up your server machine to be an install server
for Debian. You can set up any Linux distribution to be a Debian install
server, this machine does not necessarily have to be running Debian. Don't
forget that there are already plenty of Debian mirrors out there that provide
free access to the Debian archive so unless you really need your own archive it
might be best just to use one that already exists.
This guide starts from the point where you have a machine installed with Linux
which is already up and running and connected to your network. If you require
help with installing Linux on your server then please consult the Further
Information section of this HOWTO in <REF ID="AppendixA" NAME="Appendix A">.
<SECT1>Setting Up Filespace
<P>
In order for your server to act as a Debian network install server you will need
to set up your machine to be a mirror of the Debian archives. Unlike most Linux
distributions, Debian is commonly installed over the network, so you are not
likely to have obtained a set of CD images containing Debian. A mirror system
is provided that enables you to copy all the required data to your own server
machine, for free.
Before you even think about setting up your machine as an install server, you
must check that you have the required space available. This sounds like a
trivial thing to check but it is very important and easily forgotten when you're
setting up.
<SECT2>How much space will you need?
<P>
The entire Debian archives are roughly around 40Gb at the time of writing but if
you are going to set up a full mirror then bear in mind that this will grow. It
is possible for you to mirror only parts of the Debian archive and you can
obviously mirror just the parts that you think you will require. For example,
if you do not use a certain machine architecture then there may be little point
in your mirroring this part of the archive.
The latest information about the size of the Debian archive is available from
their website at <URL URL="http://www.debian.org/mirror/size">.
<SECT2>How much space do you have?
<P>
You will need the appropriate amount of space available to your system on some
local filesystem. It does not matter what form this takes, whether it's a RAID
device, local disk (either SCSI or IDE), etc. Ensure that the space you intend
to use is formatted with your chosen filesystem and is mounted.
You can check this space with the command: <VERB>df -h</VERB>
If this output shows you have enough space then great, you can continue.
If not then it's time to think about an upgrade to your intended server machine!
<SECT1>Mirror the Debian Archive
<P>
When you are confident that you have enough space for the data you want to
mirror then you can move on to this step. If you are not sure you have enough
space to mirror all the parts of the Debian archive that you want then you can
always try this method, then if you run out of space, remove some parts of the
archive from the mirror and try again.
Debian maintain their own guide on how to set up your own Debian mirror. You
are welcome to view this at <URL URL="http://www.debian.org/mirror/ftpmirror">.
The list of steps below is based on the Debian instructions but is my own
interpretation of them, designed to be easy to use and understand.
<SECT2>Where to Mirror From?
<P>
There are an awful lot of Debian sites out there that you could mirror from. It
is best for you to choose one that is near your location or one that you know
will have a good bandwidth to your location. Please remember, that if everybody
uses the same sites for their own mirrors then things will get rather slow, so
choose carefully.
A list of sites that you can choose to mirror from can be found
at <URL URL="http://www.debian.org/misc/README.mirrors">
<SECT2>How to Mirror?
<P>
I would recommend using a program called <TT>rsync</TT> to copy the data from
your chosen server to your own server. This is a program that is ideally suited
to mirroring data from one system to another. If you want to find out more
information about <TT>rsync</TT> itself then see the webpages or the man pages
for it.
Debian provide a well commented script
at <URL URL="http://www.debian.org/mirror/anonftpsync"> that
will perform the mirroring for you. Go to this site and download the
script to your server machine, we will then need to set up the script to mirror
the archive as you want it.
Now go through the entire script (it's not very long) and look at each line.
Decide whether you want the line to be active in your script or not. If you
don't know what a line does then it is probably best to leave it at it's
default setting. However, you <EM>must</EM> set up the script with some
minimal settings in order for it to work at all. These will include your chosen
server, the location to put the archive on your machine, etc.
Once you have set up the script with all the required information requested in
it then you are ready to run it and it will start copying data from the server
you have chosen to your own server machine. Don't forget to change the
permissions of the script so that it is executable and then run it from the
command line.
The Debian archive is regularly updated and in order to maintain your own
archive and make sure it is up to date, you will need to periodically run the
script again to copy any changes made. <EM>NOTE: the script uses rsync which
is a one-way transaction, you can never copy from your machine to your chosen
server (as you don't have permission to do so!)</EM>. It is probably best to
run the script daily, so you can edit your crontab to do this or put the script
in <TT>/etc/cron.d/cron.daily</TT> if your Linux distribution has this set up.
<SECT1>Enable Remote Access
<P>
Time to make your install data available to other machines on the network.
Debian can be installed using NFS, HTTP and FTP protocols. You can select which
of these will be used at install time on the client. If one of the services is
not setup on the machine then it will still be available for selection by the
client but the install will not work. Therefore, it is either best to enable
all three services on your server (so they all work on each client machine) or
if you don't enable all three then advertise the fact very well and say which
service should be used for your particular install server.
<SECT2>NFS
<P>
To install over NFS you need to meet certain conditions on the server:
<ITEMIZE>
<ITEM>Your install directory is exported</ITEM>
<ITEM>NFS is installed and running</ITEM>
<ITEM>Portmap is running</ITEM>
</ITEMIZE>
To export your install directory edit the <TT>/etc/exports</TT> file and add an
entry for directory you have copied your Debian archive to. In our examples
throughout this HOWTO, we would use the folowing line: <VERB>/install *(ro)</VERB>
When you have saved your exports file you must then get your NFS daemon to read
its configuration file again in order to export the directory you just added.
Do this by running the command: <VERB>exportfs -r</VERB>
This gives us the most simple read-only export to all hosts on our network. If
you want to include more advanced options in your export e.g. only exporting to
certain hosts on the network or a certain subnet, etc then see your man page for
the exports file at exports (5).
<SECT2>FTP
<P>
To install over FTP you need to allow FTP access to the directory that you have
setup on the server as the installation directory. This can be either anonymous
FTP access or access through a named account with a password. Anonymous access
is probably best unless you have a reason to protect your install server via
a password.
If you want anonymous FTP to point to a different directory then you can use
sym links to point to the directory that you have set up as the install
directory on the server. This will allow FTP into a chrooted environment but
still give you access to the install images in a different location.
<SECT2>HTTP
<P>
If you have a web server running and want to enable HTTP access to your install
server then add sym links from your document root to the install server
directory and this will grant access. If you are not familiar with web servers
or are not comfortable with this approach then leave out HTTP access from your
install server as it provides no benefits over NFS or FTP installs which may
be simpler to set up.
If you do choose to use HTTP then basically all you have to do is make the
install directory visible to your web server by making it appear under the
document root by some means. If you are using the Apache webserver then Debian
recommend adding the following to your http.conf file
<VERB>
&lt;directory /org/ftp.debian.org/ftp&gt;
IndexOptions NameWidth=* +SuppressDescription
DirectoryIndex .
&lt;/directory&gt;
</VERB>
You have now completed the basic setup of your install server.
<!--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-->
<SECT>Debian Client Install
<P>
<NIDX>network install!debian client install</NIDX>
This version of the Network Install HOWTO does not include information about
automatic installation of a Debian system, if this is what you need then please
refer to the link in the Further Information section located in <REF ID="AppendixA" NAME="Appendix A">.
A later version of this HOWTO is likely to include details for this system.
<SECT1>Boot the Machine
<P>
There are many ways to boot your machine in order to install Debian, you can if
you wish use a Debian CD 1 which contains all the floppy boot disks on one easy
to use media to boot your system. However, it is more common to boot an install
of Debian using floppy disks, these are provided by Debian on their mirror
system.
Obtain the floppy boot images from your chosen mirror server from the directory
<TT>/debian/dists/stable/main/disks-hardware/current/images-1.44</TT> where
<TT>disks-hardware</TT> is the hardware type that you are going to install
Debian onto. Note that there are several different sets of floppy disk boot
images in this directory and you should be careful to choose one that is
suitable for your use. If you are not sure which to use then just use the ones
in the directory specified rather than any of it's subdirectories.
Copy each floppy disk image that you have downloaded from the server to a
different floppy disk following the example below:
<ITEMIZE>
<ITEM>Insert a floppy disk</ITEM>
<ITEM><TT>dd if=/path/to/image of=/dev/fd0</TT></ITEM>
<ITEM>Remove floppy disk.</ITEM>
</ITEMIZE>
Do not mount the floppy disks when using this procedure to create floppy boot
disks. Also, don't forget to check that the floppy disks you are going to use
are (a) good floppy disks i.e. not broken, and (b) do not contain any data that
you need as the entire disk will be overwritten with all data lost.
Once you have a set of boot disks you can boot your client system from them by
inserting the first disk and turning on your system. You will be presented with
a welcome screen with some instructions on which you should be able to press
[ENTER] to continue the installation. A normal Debian installation can now take
place, see the <REF ID="AppendixA" NAME="Further Information"> section for
references to instructions on how to install Debian.
<!--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-->
<SECT>Appendix A: Further Information <LABEL ID="AppendixA">
<P>
<NIDX>network install!information resources</NIDX>
This page is an informal list of references in no particular order that I have
found useful or that others have pointed out to me. If you have a suggested
reference that is not listed here then please mail it to me and I will add it
to the list.
<SECT1>HOWTO
<P>
These are intended as the primary starting points to get the background
information as well as show you how to solve a specific problem.
<SECT2>Generic
<P>
<ITEMIZE>
<ITEM><URL URL="http://www.tldp.org/HOWTO/Net-HOWTO/index.html" NAME="Net-HOWTO"></ITEM>
<ITEM><URL URL="http://www.tldp.org/HOWTO/Installation-HOWTO/index.html" NAME="Installation-HOWTO"></ITEM>
</ITEMIZE>
<SECT2>Redhat
<P>
<ITEMIZE>
<ITEM><URL URL="http://www.tldp.org/HOWTO/KickStart-HOWTO.html" NAME="Kickstart-HOWTO">
</ITEM>
</ITEMIZE>
<SECT1>Mini-HOWTO
<P>
<NIDX>network install!information resources!mini-HOWTOs</NIDX>
These are the smaller free text relatives to the HOWTOs above.
<SECT2>Generic
<P>
<ITEMIZE>
<ITEM><URL URL="http://www.tldp.org/HOWTO/mini/Pre-Installation-Checklist/index.html" NAME="Pre-Installation-Checklist"></ITEM>
<ITEM><URL URL="http://www.tldp.org/HOWTO/mini/Post-Installation-Checklist/index.html" NAME="Post-Installation-Checklist"></ITEM>
</ITEMIZE>
<SECT2>Debian
<P>
<ITEMIZE>
<ITEM><URL URL="http://www.tldp.org/HOWTO/mini/Debian-Jigdo/index.html" NAME="Debian-Jigdo">
</ITEM></ITEMIZE>
<SECT1>Web Pages
<P>
There is a huge number of informative web pages out there and by their very
nature they change quickly. I will attempt to keep the links below as valid as
possible but they may become outdated.
<SECT2>Generic
<P>
<ITEMIZE>
<ITEM><URL URL="http://www.tldp.org" NAME="Linux Documentation Project"> -
<EM>the</EM> Linux documentation reference site.
</ITEM></ITEMIZE>
<SECT2>SuSE
<P>
<ITEMIZE>
<ITEM><URL URL="http://www.suse.com" NAME="Main SuSE Website"></ITEM>
<ITEM><URL URL="http://www.suse.de/~nashif/autoinstall" NAME="Autoinstall Website"></ITEM>
</ITEMIZE>
<SECT2>Redhat
<P>
<ITEMIZE>
<ITEM><URL URL="http://www.redhat.com" NAME="Main Redhat Website"></ITEM>
<ITEM><URL URL="http://www.redhat.com/docs" NAME="Documentation Page"></ITEM>
<ITEM><URL URL="http://www.redhat.com/apps/support/resources" NAME="Support/Resources Page"></ITEM>
</ITEMIZE>
<SECT2>Debian
<P>
<ITEMIZE>
<ITEM><URL URL="http://www.debian.org" NAME="Main Debian Website"></ITEM>
<ITEM><URL URL="http://www.debian.org/releases/stable/installmanual" NAME="Installation Manual"></ITEM>
<ITEM><URL URL="http://www.debian.org/mirrors/ftpmirror" NAME="Setting up your own Debian mirror"></ITEM>
<ITEM><URL URL="http://www.debian.org/misc/README.mirrors" NAME="List of mirrors"></ITEM>
<ITEM><URL URL="http://www.informatik.uni-koeln.de/fai" NAME="Debian Fully Automatic Installation"></ITEM>
</ITEMIZE>
<SECT1>Mailing Lists
<P>
<SECT2>SuSE
<P>
<ITEMIZE>
<ITEM><BF>suse-autoinstall@suse.com</BF> is a mailing list specific to AutoYaST.
<NEWLINE>List archives are at <URL URL="http://lists.suse.com/archive/suse-autoinstall" NAME="http://lists.suse.com/archive/suse-autoinstall">
<NEWLINE>Subscribe address is <URL URL="mailto:suse-autoinstall-subscribe@suse.com" NAME="suse-autoinstall-subscribe@suse.com">
</ITEM></ITEMIZE>
<SECT2>Redhat
<P>
<ITEMIZE>
<ITEM><BF>redhat-install-list@redhat.com</BF> is a mailing list for Redhat installation.
<NEWLINE>List archives are only available to list members
<NEWLINE>List information page is at <URL URL="https://listman.redhat.com/mailman/listinfo/redhat-install-list" NAME="https://listman.redhat.com/mailman/listinfo/redhat-install-list"></ITEM>
<ITEM><BF>Other Redhat Lists</BF> are also available on-line
<NEWLINE>Information page is at <URL URL="http://www.redhat.com/support/forums" NAME="http://www.redhat.com/support/forums"></ITEM>
</ITEMIZE>
<SECT2>Debian
<P>
<ITEMIZE>
<ITEM><BF>Debian mailing lists</BF> can be found at <URL URL="http://www.debian.org/MailingLists" NAME="http://www.debian.org/MailingLists"></ITEM>
<ITEM>List archives can be found at <URL URL="http://lists.debian.org" NAME="http://lists.debian.org"></ITEM>
</ITEMIZE>
<SECT1>Local Resources
<P>
If you need help with particular commands when running Linux then you can look
in the Linux manual pages (man pages) for the command you need help with.
Simply type the following to get help: <VERB>man {command}</VERB>
On most distributions of Linux you will find you have a directory of
documentation available to you. This is usually located under the
<TT>/usr/doc</TT> directory or the <TT>/usr/share/doc</TT> directory. If you
go into these directories then you should be able to find some documentation on
software installed on your system.
The best place to look for documentation relating specifically to installing
your particular distribution and version of Linux is on the installation media
(usually CDs). Documentation is commonly found on either the first CD, the
last CD or a special documentation CD.
<SECT1>News Groups
<P>
Personally I don't tend to use newsgroups much so if you have suggestions for
this section then they will be particularly welcome.
<!--<itemize>
<item><url url="news:comp.arch.storage" name="Storage">.
</itemize>-->
</ARTICLE>