[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#140579: Report: tftpboot install successfull



PXE is the most natural method in the sens that it doesn't need any
supplementary media.
It's the one everyone can use on a real diskless machine.
It finally worked for me and her's what I've done for that.

What is PXE ?

PXE (Pre-boot Execution Environment) is a protocol designed by Intel
that allows computers to boot through the network. PXE is stored in the
ROM of new generation net
work cards. When the computer boots up, the BIOS loads the PXE ROM in
the memory and executes it. A menu is displayed, allowing the computer
to boot an operating syst
em loaded through the network.


I - here's my dhcp.conf file : (4.5.3 in debian doc)

option domain-name "dagami.org";

default-lease-time 6048;
max-lease-time 604800;

allow booting;
allow bootp;

# All the next paragraph need to be modified to feet your case
subnet 10.1.1.0 netmask 255.255.255.0 {
# 10.1.1.10 will be the first given address
  range 10.1.1.10 10.1.1.32;
  option subnet-mask 255.255.255.0;
  option broadcast-address 10.1.1.255;
# the gateway address which can be different (acces to the internet for
instance)
  option routers 10.1.1.2;
# indicate the dns you want to use
  option domain-name-servers 10.1.1.3;
}

host tftpserver {
# tftp server ip address
  fixed-address 10.1.1.3;
# tftp server hardware address
  hardware ethernet 00:01:02:1B:16:AF;
}

group {
 next-server 10.1.1.3;

 host tftpclient {
# tftp client hardware address
  hardware ethernet  00:10:DC:27:6C:15;
  filename           "/tftpboot/pxelinux.0";
 }
}

You can see that filename is not an image but "pxelinux.0"
pxelinux.0 is a syslinux component (we wil see that later).

II - TFTP server (4.5.4 in debain doc)

It is neccessary to install a tftp server with tsize support (tftp-hpa
on a debian server), it will not work otherwise.

III - TFTP configuration (4.5.5 in debian doc) : completly wrong.

Here's what I did :

1/ we need a boot loader on the tftp server. syslinux contains a good
pxe one : pxelinux.0
   so install syslinux just to copy pxelinux.0 on /tftpboot directory
   We will assume /tftpboot is the root tftp directory so it MUST be the
one in /etc/inetd.conf file.

2/ create a pxelinux.cfg directory under /tftpboot and go into it

3/ create a "default" file with the following content :

default lanlinux
prompt 1

label lanlinux
  kernel tftpboot.img
  append load initrd=root.bin  devfs=nomount

pxelinux.0 is a boot loader which like lilo would do will load
tftpboot.img image.
tftpboot.imp is to be downloaded from tftp images. But it will not work
alone. We need a root image. So we will take the one we need (ide-pci
for instance). It's name
 is "root.bin".
That's why syslinux will append it to the image.
Note that devfs=nomount is very important. We will otherwise have
problems to open a root fs.

Note also that this default file is only for pxe boot. We could add
local images as in any lilo.conf file.

4/ install tftpboot.img and root.bin in /tftpboot directory.

5/ boot from the client and have fun tftp-installing debian.


In case of problems :

take a look at the tftp server logs (/var/log/syslog on debian)
try to play with the pause key and the space bar to read error messages.
I've had some.


I think this could be a good start for a small modification in
documentation.

Etherboot (or netboot) are, as you said, an other mean for tftp-booting
while using removable media.
I will write a howto on that (if it doesn't already exist).

I hope this will help people to tftp-install debian. Let me know what
you think about this.
I'm ready to read any new (or modified) doc on the subject.

I have to say I was like a child this morning when it worked.

links :

http://clic.mandrakesoft.com/documentation/pxe/index.html
http://etherboot.sourceforge.net

Happy new year.

regards



Reply to: