dnsmasq选(bu)项(hui)简(pei)单(zhi),这里换高级的DHCP,同时搭建tftp服务器


因为uefi和bios平台用到的vesamenu.c32文件不同,我们重新规划tftp目录如下

/var/lib/tftpboot/    
├── bios      
│   ├── centos      
│   │   ├── 66      
│   │   │   ├── initrd.img      
│   │   │   └── vmlinuz      
│   │   └── 71      
│   │       ├── initrd.img      
│   │       └── vmlinuz      
│   ├── pxelinux.0      
│   ├── pxelinux.cfg      
│   │   ├── 01-5c-26-0a-30-60-5c.bak      
│   │   ├── d4-c9-ef-f3-3d-e9.bak      
│   │   ├── default      
│   │   └── f0-4d-a2-20-7f-6f.bak      
│   ├── splash.jpg      
│   └── vesamenu.c32      
└── uefi      
    ├── centos      
    │   ├── 66      
    │   │   ├── initrd.img      
    │   │   └── vmlinuz      
    │   └── 71      
    │       ├── initrd.img      
    │       └── vmlinuz      
    ├── ldlinux.e64      
    ├── libcom32.c32      
    ├── libutil.c32      
    ├── pxelinux.cfg      
    │   ├── 01-5c-26-0a-30-60-5c.bak      
    │   ├── d4-c9-ef-f3-3d-e9.bak      
    │   ├── default      
    │   └── f0-4d-a2-20-7f-6f.bak      
    ├── splash.jpg      
    ├── syslinux.efi      
    └── vesamenu.c32      

同时dhcp根据dhcp发的广播自动判断平台类型,从而给予不同的启动文件

    ddns-update-style interim;    
    allow bootp;      
    allow booting;      
    option space pxelinux;      
   option pxelinux.magic code 208 = string;      
   option pxelinux.configfile code 209 = text;      
   option pxelinux.pathprefix code 210 = text;      
   option pxelinux.reboottime code 211 = unsigned integer 32;      
   option architecture-type code 93 = unsigned integer 16;

    subnet 192.168.1.0 netmask 255.255.255.0

{    
    authoritative;      
    default-lease-time 300;

  class "pxeclients" {    
     match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";      
     next-server 192.168.1.200;

     if option architecture-type = 00:07 {    
       filename "uefi/syslinux.efi";      }      
       else {      
       filename "bios/pxelinux.0";      }      
        }      
}