Thursday, September 2, 2010

LAN PUPPY

I done build a network, five computers, with a computer that acts as server, just a HDD on server.
All used lucid puppy 503. Clients booting from network.

Great thanks to who has create puppy linux and derivatives.
Some tutorial came from ediwiyanto.wordpress.com >> install ubuntu totally from network.

Things to do, (you must first familiar to linux command and their directory).

  1. set tftp server with dnsmasq.
  2. set pxelinux.0 for booting from LAN, place into tftp directory. (you find it at /usr/lib/syslinux/pxelinux.0)
  3. build initrd.gz humongous lucid puppy 503 for clients, place into a directory inside tftp directory
  4. start dnsmasq (download : dnsmasq.pet)
  5. then client can booting from LAN
Full description (an example).

1. prepare tftp server

a. install dnsmasq.pet
b. edit or created a file : /etc/dnsmasq.conf and add like this :

# Configuration file for dnsmasq
# just 4 user client dinamic IP
dhcp-range=169.254.33.219,169.254.33.223,12h
# Set the boot filename for netboot/PXE
dhcp-boot=pxelinux.0
# Enable dnsmasq's built-in TFTP server
enable-tftp
# Set the root directory for files availble via FTP.
tftp-root=/somewhere/tftp
# Debugging
log-queries
log-dhcp
# Change this line if you want dns to get its upstream servers from
# somewhere other that /etc/resolv.conf
resolv-file=/etc/ppp/resolv.conf


c. create folder : /somewhere/tftp

2. prepare pxe booting
  • a. copy pxelinux.0 to /somewhere/tftp
  • b. created folder : /somewhere/tftp/pxelinux.conf
  • c. created a file named 'default' in /somewhere/tftp/pxelinux.conf
  • d. place script inside 'default' file like this :

default puppyos
prompt 1
timeout 1

label puppyos
kernel puppyos/vmlinuz
append ramdisk_blocksize=4096 initrd=puppyos/initrd.gz root=/dev/ram0



3. prepare lucid puppy for client
  • create folder : /somewhere/puppyos
  • extract lupu503.iso, then copy vmlinuz, initrd.gz, lupu-503.sfs to some place. (I used /root because I have big memory from linux-swap).
  • extract initrd.gz to initdir folder with this command line (run at rxvt console):
#mkdir initdir
#cd initdir
#zcat ../initrd.gz | cpio -i -d

note: your current directory must same as initrd.gz placed.
  • copy lupu-503.sfs to initdir that you made of.
  • compress initdir to initrd.gz with this command line (run at rxvt console):
#cd initdir
#find . | cpio -o -H newc | gzip -9 > ../initrd.gz
  • copy the final initrd.gz and original vmlinuz to /somewhere/tftp/puppyos folder.
4. run dnsmasq from console :
#dnsmasq -d

5. Turn on computer client. DONE!

special note :

Before do this, you must try first booting from cd or flashdisk on computer clients. If can, try booting from LAN .

Your computer client must have option that can booting from network. Set your bios setup first. A modern PC has this option.

No comments:

Post a Comment