en :: ru

RAD GNU/Linux project home is under development. Thank you for your patience.

site root/ faq/ installation/

How can I boot up RAD GNU/Linux via DHCP? (index)


There's a report that syslinux 2.06 was unable to download init ramdisk from the boot server. If your problem is like this one, try to update syslinux (checked verion: 2.11)

At first, you must have dhcpd and tftpd servers installed. I recommend ISC dhcpd. On ALT Linux you have to use

apt-get install dhcp-server tftp-server syslinux

dhcpd config example:

# common options: define time, dns servers, router etc.
option ntp-servers;
option time-servers;
option domain-name-servers,;
option domain-name "home";
option broadcast-address;
option subnet-mask;
option routers;

# allow bootp protocol
allow booting;
allow bootp;
option tag-150 code 150 = text;

# define subnet to serve
subnet netmask {
    max-lease-time 3600;
    default-lease-time 3600;
    # these two directives are required for bootp:
    # tftp server and filename to get
    filename "/pxelinux.0";

File "/pxelinux.0" is a binary image from syslinux package, used to boot with PXE (Pre-eXecution Environment) agents. It must be in tftp directory, in ALT Linux it is /var/lib/tftpboot.

With dhcp and tftp servers running (tftpd must be enabled in xinetd config), you'll have this picture:


diskless station                boot server
     |                              |
  PXE agent --------------------- DHCPd
             address request


diskless station                boot server
     |                              |
  PXE agent --------------------- DHCPd
      client's and boot server addresses


diskless station                boot server
     |                              |
  PXE agent --------------------- TFTPd
             get "/pxelinux.0"


diskless station                boot server
     |                              |
  pxelinux.0 --------------------- TFTPd
          get "/pxelinux.cfg/XXX" *)


diskless station                boot server
     |                              |
  pxelinux.0 --------------------- TFTPd
      get "/vmlinuz", get "/initrd.img"


boot up kernel with initrd.img

*) Two words about tftp directory:

[peet@tsl01 peet]$ ls -lR /var/lib/tftpboot/
total 11400
-rw-r--r--  1 root root 10706944 Mar 30  2005 initrd.img
-rw-r--r--  1 root root    11300 Oct  1  2003 pxelinux.0
drwxr-xr-x  2 root root     4096 May  5 10:37 pxelinux.cfg
-rw-r--r--  1 root root   915204 Mar 30  2005 vmlinuz

total 8
-rw-r--r--  1 root root  95 Mar 30  2005 C0A86501

pxelinux.0 is a boot agent, vmlinuz and initrd.img are obvious, but what does "C0A86501" mean? For details, look in syslinux' documentation; shortly, this file is pxelinux' config for certain IP, C0A86501 == and so on.

[peet@tsl01 peet]$ cat /var/lib/tftpboot/pxelinux.cfg/C0A86501 
# Rein
label linux
    kernel vmlinuz
    append ramdisk_size=20480 initrd=initrd.img panic=60