在Debian Lenny上设置多个Linux发行版的PXE安装服务器
版本1.0
作者:Falko Timme
本教程将介绍如何在Debian Lenny上设置PXE( p重新启动环境)的安装服务器。 PXE安装服务器允许您的客户端计算机通过网络引导和安装Linux发行版,而无需将Linux iso映像刻录到CD / DVD,启动软盘映像等。如果您的客户端计算机没有CD或软盘驱动器,或者如果要同时设置多台计算机(例如,在大型企业中),或者只是为了节省CD / DVD的钱。 在本文中,我将介绍如何配置一个允许您启动多个发行版(i386和x86_64)的PXE服务器:Debian Lenny,Ubuntu 9.04,Fedora 10,CentOS 5.3,OpenSuSE 11.1和Mandriva 2009.1。
我想先说说这不是建立这样一个系统的唯一途径。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!
1初步说明
重要的是您有一个体面的互联网连接,因为您的客户端计算机将从互联网的存储库中获取所有需要的软件包(我在30MBit连接上进行了测试,这似乎足够快。 也可以将所有软件包存储在PXE服务器上,以便您不需要Internet连接(只有与PXE服务器的LAN连接),但是在PXE服务器上需要大量存储空间(请记住,它将提供多个发行版),所以我不介绍这里。
最重要的是您的客户端计算机支持通过网络启动。 您应该检查每台计算机的BIOS是否有此选项。
在我们作为PXE服务器的系统上,您应该已经设置了一个基本的Debian Lenny服务器系统,例如本教程第1至7章所示: http : //www.youcl.com/perfect- server-debian-lenny-ispconfig2
2安装所有必需的软件包
首先我们通过运行更新我们的包数据库
aptitude update
我们需要安装软件包netkit-inetd
, tftpd-hpa
, dhcp3-server
和lftp
,所以我们运行
aptitude install netkit-inetd tftpd-hpa dhcp3-server lftp
之后跑
netstat -uap | grep tftp
并检查你是否看到这样的东西:
server1:~# netstat -uap | grep tftp
udp 0 0 *:tftp *:* 2242/inetd
server1:~#
如果没有看到tftp
行,请打开/etc/inetd.conf
,确保您在其中找到以下内容:
vi /etc/inetd.conf
[...] #:BOOT: TFTP service is provided primarily for booting. Most sites # run this only on machines acting as "boot servers." tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot [...] |
然后重新启动inetd:
/etc/init.d/openbsd-inetd restart
现在
netstat -uap | grep tftp
应该显示tftp。
3配置DHCP服务器
我们在本地网络中需要一个DHCP服务器。 如果本地网络中没有DHCP服务器,只需配置并使用未来PXE服务器上的DHCP服务器即可。 只需编辑/etc/dhcp3/dhcpd.conf
:
cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf_orig
cat /dev/null > /etc/dhcp3/dhcpd.conf
vi /etc/dhcp3/dhcpd.conf
option domain-name-servers 145.253.2.75, 213.191.92.86; default-lease-time 86400; max-lease-time 604800; authoritative; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.10 192.168.0.49; filename "pxelinux.0"; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option routers 192.168.0.1; } |
这将从您的客户端计算机动态分配192.168.0.10
到192.168.0.49的
IP地址; 网关是192.168.0.1
。 当然,您必须将此配置调整到您自己的环境!
重要的是你有线
filename "pxelinux.0";
在你的配置!
然后重新启动DHCP服务器:
/etc/init.d/dhcp3-server restart
如果您的网络中已经有DHCP服务器,则必须修改其配置。 我们假设你有这样的东西
subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.10 192.168.0.49; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option routers 192.168.0.1; } |
在配置中。 你必须添加
filename "pxelinux.0";
next-server 192.168.0.100;
到它(其中192.168.0.100
是我们的Debian Lenny PXE服务器的IP地址),使其看起来像这样:
subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.10 192.168.0.49; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option routers 192.168.0.1; filename "pxelinux.0"; next-server 192.168.0.100; } |
然后重新启动DHCP服务器。
4设置Debian Lenny Netboot(i386)
现在我们准备为我们的第一个发行版设置netboot,Debian Lenny(i386)。 netboot的必要文件可以在http://ftp.de.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/上找到 。 我们现在下载文件并将其复制到/ var / lib / tftpboot
目录。 这是我们的PXE服务器将提供安装映像的目录:
cd /tmp
lftp -c "open http://ftp.de.debian.org/debian/dists/lenny/main/installer-i386/current/images/; mirror netboot/"
mv netboot/* /var/lib/tftpboot
rm -fr netboot
(您可以从任何其他Debian镜像文件下载文件,使用与您相近的文件)
已经这样了 现在看看文件/var/lib/tftpboot/pxelinux.cfg/default
:
cat /var/lib/tftpboot/pxelinux.cfg/default
# D-I config version 1.0 include debian-installer/i386/boot-screens/menu.cfg default debian-installer/i386/boot-screens/vesamenu.c32 prompt 0 timeout 0 |
Debian使用这个文件中包含的文件,所以从这里没有太多的学习(除非你看看包含的文件)。 此文件中的所有路径都相对于/ var / lib / tftpboot
目录,因此debian-installer / i386 / boot-screens / menu.cfg
转换为/ var / lib / tftpboot / debian-installer / i386 / boot-screens / menu.cfg
。 随着我们向PXE安装服务器添加更多发行版和架构(i386 < - > x86_64),我们将彻底
修改/var/lib/tftpboot/pxelinux.cfg/default
文件。
的输出
ls -la /var/lib/tftpboot
现在应该是这样的:
server1:/tmp# ls -la /var/lib/tftpboot
total 15432
drwxr-xr-x 6 root root 4096 2009-05-06 14:59 .
drwxr-xr-x 22 root root 4096 2009-05-06 14:57 ..
drwxr-xr-x 3 root root 4096 2009-04-09 01:32 debian-installer
drwxr-xr-x 4 root root 4096 2009-04-09 01:33 gtk
-rw-r--r-- 1 root root 8302592 2009-04-08 23:32 mini.iso
-rw-r--r-- 1 root root 7430381 2009-04-08 23:32 netboot.tar.gz
-rw-r--r-- 1 root root 15820 2009-04-08 23:33 pxelinux.0
drwxr-xr-x 2 root root 4096 2009-04-09 01:32 pxelinux.cfg
drwxr-xr-x 2 root root 4096 2009-04-09 01:34 xen
server1:/tmp#
当客户端计算机通过网络启动时,它将查找文件/var/lib/tftpboot/pxelinux.cfg/default
并加载它。
5我们的第一个测试
(请确保您不想重新安装的计算机在其BIOS设置中禁用了网络引导选项,否则您或其他人可能会意外地在现有操作系统上安装Debian Lenny!)
现在你可以启动你的第一台客户端计算机。 确保在其BIOS设置中指定它应该使用网络作为其第一个引导设备。 如果一切顺利,您应该看到Debian Lenny平常安装屏幕:
安装成功后,请勿忘记更改引导设备的顺序(例如,禁用网络引导并将硬盘置于第一引导设备),否则您将开始另一次安装!