个人工具

UbuntuHelp:PXEInstallServer

来自Ubuntu中文

Oneleaf讨论 | 贡献2007年5月13日 (日) 11:27的版本 (New page: {{From|https://help.ubuntu.com/community/PXEInstallServer}} {{Languages|php5}} === Introduction === This will guide you through running an Ubuntu server as PXE install server. You'll need ...)

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航, 搜索

Introduction

This will guide you through running an Ubuntu server as PXE install server. You'll need to run a DHCP server on your network, not necessarily this server but you do need one.

Installing needed packages

You'll need to install the following packages netkit-inetd, tftpd-hpa (see InstallingSoftware).

If this is also going to be your DHCP server, install dhcp server contained in the follwing package: dhcp3-server (see InstallingSoftware)

Configure dhcpd

If your pxe server is also your dhcp server, you'll need something like this in /etc/dhcp3/dhcpd.conf

subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.100 192.168.0.200;
        filename "pxelinux.0";
}
</code>

If you have an existing dhcp server, you should point it to your pxe server by doing something like the following
<pre>
subnet 192.168.0.0 netmask 255.255.255.0 {
    <other config here>
    filename "pxelinux.0";
    next-server <pxe host>;
}
</code>

Be sure to restart your dhcp server so that the changes take effect
<pre>
sudo /etc/init.d/dhcp3-server restart
</code>

=== Configure tftpd-hpa ===
tftpd-hpa is called from inetd. The options passed to tftpd-hpa when it starts are thus found in /etc/inetd.conf 

The defaults are fine for us, your /etc/inetd.conf should have an entry like this
<pre>
tftp    dgram   udp    wait    root    /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
</code>

Now we'll copy the needed files from the Ubuntu CD
<pre>
sudo cp -r /media/cdrom/install/netboot/* /var/lib/tftpboot/
</code>

If your dhcp server issues correct network info and your pxe clients will have network access, then at this point you will be able to do an Ubuntu install using internet repositories.

I want to go a little further however and install everything from the install server as well as customise some of the packages to install.

=== Install apache ===
Currently nfs installs aren't well supported (Please correct me if I'm wrong) so we'll install over http. For that we need a webserver on our install server too: install the following package <code>apache</code> (see InstallingSoftware).

=== Copying Ubuntu files ===
Create an ubuntu directory under your freshly installed apache's document root and copy all of the contents of the Ubuntu CD to that directory
<pre>
mkdir /var/www/ubuntu
cp -r /media/cdrom/* /var/www/ubuntu/
</code>

=== Customising the install ===
There is a package called system-config-kickstart which is a GUI frontend to creating kickstart files. The kickstart file tells the installer where to get its packages from, what to install and a number of other useful settings.
See KickstartCompatibility for more info.

This package does not have to be installed on your install server, it can be on a convenient Ubuntu desktop somewhere.

Create a custom ks.cfg with system-config-kickstart, be sure to specify HTTP under "Installation Method". Provide the IP of you install server and make the HTTP Directory /ubuntu/
Save the file and copy it to your install server under /var/www/html/

=== Use your ks.cfg ===
In order for your network Ubuntu install to use your kickstart file, you have to tell it where to find it. Edit /var/lib/tftpboot/pxelinux.cfg/default and add <code>ks=http://<installserver>/ks.cfg</code> to the append line.
It should then look something like this
<pre>
label linux
        kernel ubuntu-installer/i386/linux
        append ks=http://192.168.0.1/ks.cfg vga=normal
        initrd=ubuntu-installer/i386/initrd.gz ramdisk_size=16432 root=/dev/rd/0 rw  --
label expert
</code>

=== Boot and install ===
You should now be able to boot another pc on the lan over the network and have it install Ubuntu automagically :)
----
CategoryDocumentation

[[category:UbuntuHelp]]