个人工具

UbuntuHelp:UbuntuLTSP/StaticIPsWithoutDHCP

来自Ubuntu中文

跳转至: 导航, 搜索

Introduction

This page describes a way to boot LTSP clients without relying on a DHCP server. The main idea is to write the Linux kernel and initramfs image to a boot medium like a hard disk or a CD-ROM. A big drawback is that the boot medium must be manually updated for each kernel update. But it may provide a way to boot non-PXE capable clients, if the Etherboot/gPXE project doesn't include support for their NICs.

Boot manager

A boot manager is required to load the Linux kernel. Grub4dos has a good tutorial which may be used to boot from a CD, or an ext3, vfat or even ntfs partition.

Installing the kernel

Copy /var/lib/tftpboot/ltsp/arch/vmlinuz and /var/lib/tftpboot/ltsp/arch/initrd.img to your boot device. Insert a boot entry similar to the following in your menu.lst:

title Boot from network
# ip=<client-ip>:<server-ip>:<gateway>:<subnet mask>:<client-hostname>:<interface>:<configuration-method>
kernel /vmlinuz ro ip=192.168.0.101:192.168.0.10:192.168.0.1:255.255.255.0:ltsp101:none
initrd /initrd.img

This ip will be passed as a kernel parameter to vmlinuz, and the klibc ipconfig application in the initramfs will use it. If there is a DHCP server in your network, it won't be notified for these IP assignments, so make sure they're outside of any DHCP pools. Furthermore, ipconfig won't be given a boot-filename DHCP option, and the init scripts won't be able to work out the correct tftp path. So if you need to use an lts.conf file, you should put it in /var/lib/tftpboot instead of /var/lib/tftpboot/ltsp/arch/. With this method you have to manually update vmlinuz and initrd.img in your boot media whenever a new kernel is needed.

Alternatives

Slitaz has modified gPXE to enable it to accept network parameters, when loaded from a boot manager like GRUB. So you may use their boot floppy or CD and modify menu.lst to something like

kernel	/boot/gpxe ip=192.168.0.101/24 gw=192.168.0.1 dns=192.168.0.1 url=tftp://ltsp-server/ltsp/i386/pxelinux.0

This would avoid the need for updating the boot medium for each kernel update. But one more step would be needed to actually boot the clients. In file /var/lib/tftpboot/ltsp/arch/pxelinux.cfg/default, IPAPPEND 3 should be added, to pass the initial gPXE ip to the initramfs ipconfig application:

DEFAULT vmlinuz ro initrd=initrd.img 
IPAPPEND 3

With this method, a hostname is not provided to the clients.

See Also

External Links

  • Slitaz PXE boot - A small how-to for the Slitaz modified gPXE version.
  • Grub4dos - Grub4dos is a modified version of GRUB with support for ntfs partitions.
  • ipconfig - The initramfs ipconfig application README file.