Difference between pages "Pxe" and "USB sTick"

From Linuxintro
(Difference between pages)
imported>ThorstenStaerk
 
imported>ThorstenStaerk
(Redirected page to Usb storage)
 
Line 1: Line 1:
'''PXE''' stands for '''P'''reboot E'''x'''ecution '''E'''nvironment. It is used to boot a computer using booting information from over the network.
+
#REDIRECT [[Usb storage]]
 
 
= Overview =
 
The typical PXE boot looks like this:
 
# Computer ''A'' starts. Its [http://en.wikipedia.org/wiki/BIOS BIOS] is set to do a PXE [[boot]], so booting from the network.
 
# Computer ''A'' acquires an IP address from [[dhcp]] [[server]] ''B''.
 
# Computer ''A'' downloads its booting files ([[initrd]] and [[kernel]]) via [[tftp]] from ''B''.
 
# Computer ''A'' executes the kernel just as if it had from its local [[hard disk]].
 
 
 
= How to start =
 
In this example we use SUSE Linux 12.1.
 
 
 
== DHCP ==
 
To allow your computers to boot from the network, they first need an IP address. So, [[set up a dhcp-server]]. Make sure /etc/dhcpd.conf contains the following lines:
 
allow booting;
 
allow bootp;
 
authoritative; # I am the one and only here
 
Make sure your "subnet" section contains the following lines:
 
next-server ''192.168.0.5'';
 
filename "pxelinux.0";
 
Make sure you have restarted your dhcpd:
 
/etc/init.d/dhcpd restart
 
 
 
== TFTP ==
 
After your computers have received their IP address, they start asking for their booting file from the TFTP-server, in this case ''192.168.0.5''. So, make sure they can get it.
 
* [[Install]] tftp and syslinux:
 
# yast -i tftp syslinux
 
* copy syslinux' pxelinux.0 to /srv/tftpboot/:
 
# rpm -ql syslinux | grep pxelinux.0
 
/usr/share/syslinux/gpxelinux.0
 
/usr/share/syslinux/pxelinux.0
 
# cp /usr/share/syslinux/pxelinux.0 /srv/tftpboot/
 
* Activate the tftp server. To do this, change /etc/xinetd.d/tftp. Replace
 
disable = yes
 
with
 
disable = no
 
Then restart xinetd which hosts tftpd:
 
/etc/init.d/xinetd restart
 
* Test it:
 
tftp ''192.168.0.5'' -c get pxelinux.0
 
Test your configuration now by booting a connected computer from PXE. You should get an error message saying that the configuration file pxelinux.cfg/default has not been found.
 
 
 
== pxelinux.cfg/default ==
 
Create a /srv/tftpboot/pxelinux.cfg/default like this:
 
default linux
 
timeout 0
 
prompt 1
 
display display.msg
 
 
label linux
 
  kernel vmlinuz
 
  append initrd=initrd.img
 
 
 
== Change initial ramdisk ==
 
If you now want to change the initrd to actually do something, you can do it like this:
 
cd /tftpboot
 
mkdir tmp
 
cd tmp
 
cp ../initrd.img ./initrd.gz
 
gunzip initrd.gz
 
mkdir tmp2
 
cd tmp2
 
[[cpio]] -id < ../initrd
 
Do the needed changes now in this folder. Then pack the initrd again:
 
[[find]] . | cpio --create --format='newc' > ../newinitrd
 
cd ..
 
[[gzip]] newinitrd
 
Your new [[initrd]] is now called newinitrd.gz.
 
 
 
= See also =
 
* [http://en.wikipedia.org/wiki/Preboot_Execution_Environment Wikipedia on PXE]
 
 
 
[[Category:Networking]]
 
[[Category:Boot]]
 
[[Category:Guides]]
 

Latest revision as of 07:15, 15 March 2013

Redirect to: