Supporting Different Kinds of Clients

To support different types of clients, you can create a configuration file with the name based one the following:

  • Client's UUID, for example, a8943708-c6f6-51b9-611e-74e6ac80b93d

    Note:

    A UUID-based file name is valid only for BIOS-based clients. Don't apply it for UEFI-based clients.

  • Client's MAC address prefixed by 01-, which represents the ARP hardware type for Ethernet, and using dashes to separate each byte value instead of colons, for example, 01-80-00-27-c6-a1-16.

    Use lowercase characters when typing the MAC address.

  • Client's IP address expressed in hexadecimal without any leading 0x, for example, 0A0000FD represents the IP address 10.0.0.253.

    To reduce the number of configuration files, you can group clients by IP address range, for example, 0A0000E represents the IP address range 10.0.0.224 through 10.0.0.239.

If you're serving both types of clients, ensure that the file names are distinct from each other. Where the configuration file for BIOS-based clients is A000FC, for example, the equivalent file for UEFI-based clients can be grub.cfg-A000FC, and so on.

Place the configuration files in their respective boot loader subdirectories such as pxelinux/pxelinux.cfg for BIOS-based clients or efi subdirectory for UEFI-based clients.

The boot loader searches for a configuration file in the following order, until a matching file name is found:

  • UUID (for example, a8943708-c6f6-51b9-611e-74e6ac80b93d)

  • 01-MAC_address (for example, [grub2-cfg-]01-80-00-27-c6-a1-16)

  • Full 32 bits of the IP address (for example, [grub.cfg-]0A0000FD)

  • Most significant 28 bits of the IP address (for example, [grub.cfg-]0A0000F)

  • Most significant 24 bits of the IP address (for example, [grub.cfg-]0A0000)

  • Most significant 20 bits of the IP address (for example, [grub.cfg-]0A000)

  • Most significant 16 bits of the IP address (for example, [grub.cfg-]0A00)

  • Most significant 12 bits of the IP address (for example, [grub.cfg-]0A0)

  • Most significant 8 bits of the IP address (for example, [grub.cfg-]0A)

  • Most significant 4 bits of the IP address (for example, [grub.cfg-]0)

  • Default configuration file (either default for BIOS-based clients or grub.cfg for UEFI-based clients.

If several configuration files for a client type have identical content, you can use the ln command to link the files to a primary copy, for example:

sudo ln primary-ol-verson [grub.cfg-]0A0000FC
sudo ln primary-ol-verson [grub.cfg-]0A0000FD
sudo ln primary-ol-verson [grub.cfg-]0A0000FE

For more information about pxelinux, see https://wiki.syslinux.org/wiki/index.php?title=PXELINUX.

For more information about GRUB 2, run the info grub command to access the GRUB 2 manual.