Ubuntu14.04搭建PXE服务器过程

一.什么是PXE

    PXE(preboot execute environment,预启动执行环境)是Intel公司开发的技术,工作于Client/Server的网络模式。它可以使计算机通过网络从远程服务器下载镜像,并由此支持从网络启动操作系统。在启动过程中,客户端要求服务器分配IP地址,再用TFTP或MTFTP协议下载一个启动软件包到本机内存中执行,由这个软件启动包完成客户端基本软件设置,从而引导预先安装在服务器中的操作系统。

二.Ubuntu 14.04如何安装配置PXE服务器

    1.配置网络
       作为PXE的主机要使用静态IP,所以需要配置静态IP。编辑/etc/network/interfaces,增加:
        auto eth0
       iface eth1 inet static
       address 192.168.1.10
       netmask 255.255.255.0
       gateway 192.168.1.1
       dns-nameserver 8.8.8.8
       这将把你的主机的IP设置成为192.168.1.10,保存文件后退出,重启网络。

    2.安装DHCP,TFTP 和NFS
  更新源以便获得最新的软件包:sudo apt-get update
       安装软件:sudo apt-get install isc-dhcp-Server inetutils-inetd tftpd-hpa syslinux nfs-kernel-Server

    3.配置DHCP
  (1).编辑 “/etc/default/dhcp3-server” 文件.

  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

    4.配置TFTP
  (1).编辑 “/etc/inetd.conf” 文件: sudo vim /etc/inetd.conf

  作如下修改:

  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文件如何配置将会在下一篇博客中分享。

                      

    

你可能感兴趣的:(Linux)