sudo vim /etc/default/dhcp3-server
作如下修改:
INTERFACES="eth0" (注:你刚才配置的静态IP的那个网卡)
(2).保存并退出文件.
编辑 “/etc/dhcp3/dhcpd.conf” 文件:
sudo vim /etc/dhcp/dhcpd.conf
作如下修改:
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.11 192.168.1.200;
option subnet-mask 255.255.255.0;
option routers 192.168.1.10;
option broadcast-address 192.168.1.255;
filename "pxelinux.0";
next-Server 192.168.1.10;
}
保存文件并退出。
启动 DHCP 服务.
sudo /etc/init.d/isc-dhcp-server start
作如下修改:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
保存文件并退出。
(2).编辑 “/etc/default/tftpd-hpa” 文件。
sudo vim /etc/default/tftpd-hpa
作如下修改:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="[:0.0.0.0:]:69"
TFTP_OPTIONS="--secure"
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
保存文件并退出。
(3).使用 xinetd 让 boot 服务在每次系统开机时自动启动,并启动tftpd服务。
sudo update-inetd --enable BOOT
sudo service tftpd-hpa start
(4).检查状态。
sudo netstat -lu
它将如下所示:
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:tftp *:*
5.安装并配置好相关组件后,你需要配置PXE启动文件。将 PXE 引导文件 “pxelinux.0” 放在 TFTP 根目录下。为 TFTP 创建目录结构,并从 “/usr/lib/syslinux/” 复制 syslinux 提供的引导程序文件到 “/var/lib/tftpboot/” 下,具体操作如下:
第一步,建立TFTP根目录:sudo mkdir /var/lib/tftpboot
第二步,建立引导菜单配置文件的目录:sudo mkdir /var/lib/tftpboot/pxelinux.cfg
第三步,建立操作系统的目录,我这里主要针对的操作系统是64位Ubuntu14.04桌面版和服务器版:
桌面版系统目录 :sudo mkdir -p /var/lib/tftpboot/Ubuntu/14.04/desktop
服务器版系统目录:sudo mkdir -p /var/lib/tftpboot/Ubuntu/14.04/server
之后对应的内核将放在对应的文件夹下。
第四步,复制 syslinux 提供的引导程序文件到 “/var/lib/tftpboot/” 下:
sudo cp /usr/lib/syslinux/vesamenu.c32 poweroff.com reboot.c32 /var/lib/tftpboot/
vesamenu.c32是菜单模块
在引导界面上,poweroff.com对应的是关机选项, reboot.c32对应的是重启选项
第五步,复制启动PXE启动映像文件到PXE根目录下:sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/
6.设置PXE启动引导配置文件default,里面配置的是PXE客户端启动时显示的菜单和ks文件地址每个选项对应的系统镜像和内核地址。
(1)编辑 “/var/lib/tftpboot/pxelinux.cfg/default”:
sudo nano /var/lib/tftpboot/pxelinux.cfg/default
作如下修改:
DEFAULT vesamenu.c32
TIMEOUT 100
PROMPT 0
MENU INCLUDE pxelinux.cfg/PXE.conf
NOESCAPE 1
LABEL Install Ubuntu 14.04 Desktop
MENU LABEL Install Ubuntu 14.04 Desktop
kernel Ubuntu/14.04/desktop/vmlinuz.efi
initrd Ubuntu/14.04/desktop/initrd.lz
append boot=casper automatic-ubiquity netboot=nfs nfsroot=192.168.1.10:/var/lib/tftpboot/Ubuntu/14.04/desktop
ENDTEXT
LABEL Install Ubuntu 14.04 Server
MENU LABEL Install Ubuntu 14.04 Server
kernel Ubuntu/14.04/server/vmlinuz
initrd Ubuntu/14.04/server/initrd.gz
append boot=casper automatic-ubiquity netboot=nfs nfsroot=192.168.1.10:/var/lib/tftpboot/Ubuntu/14.04/server
ENDTEXT
LABEL Reboot
MENU LABEL ^Reboot
KERNEL reboot.c32
ENDTEXT
LABEL Poweroff
MENU LABEL ^Poweroff
KERNEL poweroff.com
ENDTEXT
保存文件并退出。
编辑 “/var/lib/tftpboot/pxelinux.cfg/pxe.conf” 文件。
sudo nano /var/lib/tftpboot/pxelinux.cfg/pxe.conf
作如下修改:
MENU TITLE PXE Server
NOESCAPE 1
ALLOWOPTIONS 1
PROMPT 0
MENU WIDTH 80
MENU ROWS 14
MENU TABMSGROW 24
MENU MARGIN 10
MENU COLOR border 30;44 #ffffffff #00000000 std
保存文件并退出。
7.为 PXE 服务器添加 Ubuntu 14.04 系统启动镜像
这一步需要 Ubuntu 内核和 initrd 文件。可以通过Ubuntu 14.04 ISO 镜像获得这些文件。
(1).挂载Ubuntu 14.04桌面版 ISO 文件,将文件复制到 PXE根目录下Ubuntu desktop版目录下中:
挂载桌面版镜像到/media/Ubuntu-14.04-desktop
sudo mount -o loop /mnt/ubuntu-14.04-desktop-amd64.iso /media/Ubuntu-14.04-desktop
复制所有的文件和.disk文件
sudo cp -r /media/Ubuntu-14.04-desktop/* /var/lib/tftpboot/Ubuntu/14.04/desktop/
sudo cp -r /media/Ubuntu-14.04-desktop/.disk /var/lib/tftpboot/Ubuntu/14.04/desktop/
复制桌面版引导文件和内核
sudo cp /media/Ubuntu-14.04-desktop/casper/initrd.lz /media/Ubuntu-14.04-desktop/casper/vmlinuz.efi /var/lib/tftpboot/Ubuntu/14.04/desktop/
(2).挂载Ubuntu 14.04服务器版 ISO 文件,将文件复制到 PXE根目录下Ubuntu server版目录下中:
挂载桌面版镜像到/media/Ubuntu-14.04-desktop
sudo mount -o loop /mnt/ubuntu-14.04-server-amd64.iso /media/Ubuntu-14.04-server
复制所有的文件和.disk文件
sudo cp -r /media/Ubuntu-14.04-server/* /var/lib/tftpboot/Ubuntu/14.04/server/
sudo cp -r /media/Ubuntu-14.04-server/.disk /var/lib/tftpboot/Ubuntu/14.04/server/
复制服务器版引导文件和内核
sudo cp /media/Ubuntu-14.04-server/install/initrd.gz /media/Ubuntu-14.04-desktop/install/vmlinuz /var/lib/tftpboot/Ubuntu/14.04/server/
8.将导出的 ISO 目录配置到 NFS 服务器上
配置 NFS 服务器,编辑 “/etc/exports” 文件。
sudo vim /etc/exports
作如下修改:
/var/lib/tftpboot/Ubuntu * (ro,async,no_root_squash,no_subtree_check)
保存文件并退出。为使更改生效,输出并启动 NFS 服务。
sudo exportfs -a
sudo /etc/init.d/nfs-kernel-server start
好了,基本的配置已经完成,可以检验一下配置实验结果了。但是现在配置的PXE服务器还不能做到引导的操作系统安装实现无人值守,要实现无人值守还要增加一个ks.cfg配置文件。j具体ks.cfg文件如何配置将会在下一篇博客中分享。