• Recent
    • Unsolved
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login
    1. Home
    2. jatosaj
    3. Posts
    J
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 2
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: Consolidating FOG and AikenWorkbench to one subnet. One PXE for both.

      Thank you for your detailed reply, @george1421

      I have decided to run both servers on the same network. With DHCP switched off on AikenWorkbench, I’m able to boot intoFOG menu.

      Your entries aren’t quite right, or I’m doing something wrong. If I use it as is, I’m getting something like "Could not boot: Not found (https://ipxe.org2d12618e)

      I have decided to exclude some of the commands and narrowed it down to:

      chain -ar tftp://192.168.2.1/grub/bootx64.efi
      boot || goto MENU
      

      And I’m trying to run it on EFI EFI-capable machine, but I’m only getting to the grub console and no further.

      I understand my best bet is to learn how iPXE works and study its documentation.

      There is more config from Aken if this helps:

      cat /etc/default/tftpd-hpa 
      TFTP_USERNAME="tftp"
      TFTP_DIRECTORY="/awbcboot"
      TFTP_ADDRESS="192.168.2.1:69"
      TFTP_OPTIONS="--secure"
      
      ls /awbcboot
      bios  biso  boot  grub
      ls /awbcboot/grub
      biso  boot  bootx32.efi  bootx64.efi  grub.cfg  grub.cfg.bak  snap  unicode.pf2
      

      And grub.cfg

      cat grub.cfg
      set default="0"
      set timeout=0
      menuentry 'Aiken Workbench V2 UEFI ...' --class gnu-linux --class gnu --class os {
       linux  (pxe)/boot/vmlinuz-awc root=/dev/nfs nfsroot=${pxe_default_server}:/awbclient ip=dhcp rw libata.allow_tpm=1 --
       initrd (pxe)/boot/initrd.img-awc
      

      And here is the whole dhcp.conf but we don’t use Apple class as they dropped PXE support.

      ddns-update-style none;
      authoritative;
      allow booting;
      allow bootp;
      option domain-name-servers 208.67.222.222;
      option arch code 93 = unsigned integer 16;
      
      class "AppleNBI-i386" {
          match if substring (option vendor-class-identifier, 0, 14) = "AAPLBSDPC/i386";
          option dhcp-parameter-request-list 1,3,17,43,60;
          if (option dhcp-message-type = 1)
          {
              option vendor-class-identifier "AAPLBSDPC/i386";
              option vendor-encapsulated-options 08:04:81:00:00:67;
          }
      
          if (option dhcp-message-type = 8)
          {
              option vendor-class-identifier "AAPLBSDPC";
              if (substring (option vendor-encapsulated-options, 0, 6) = 01:01:01:02:02:01)
              {
                option dhcp-parameter-request-list 60, 43;
                option vendor-encapsulated-options  01:01:01:03:04:C0:A8:02:01:04:02:80:00:07:04:81:00:00:89:09:2A:81:00:00:89:09:44:6f:45:2d:49:6d:61:67:65;
            }
          }
      
          if (substring (option vendor-class-identifier, 15, 7) = "iMac4,1")
          {
              filename "grub/bootx32.efi";
      
          }elsif (substring (option vendor-class-identifier, 15, 7) = "iMac4,2")
          {
      
              filename "grub/bootx32.efi";
      
          }elsif (substring (option vendor-class-identifier, 15, 7) = "iMac5,1")
          {
      
              filename "grub/bootx32.efi";
      
          }elsif (substring (option vendor-class-identifier, 15, 7) = "iMac5,2")
          {
      
              filename "grub/bootx32.efi";
      
          }elsif (substring (option vendor-class-identifier, 15, 7) = "iMac6,1")
          {
      
              filename "grub/bootx32.efi";
      
          }elsif (substring (option vendor-class-identifier, 15, 10) = "MacBook1,1")
          {
      
              filename "grub/bootx32.efi";
      
          }elsif (substring (option vendor-class-identifier, 15, 10) = "MacBook2,1")
          {
      
              filename "grub/bootx32.efi";
      
          }elsif (substring (option vendor-class-identifier, 15, 13) = "MacBookPro1,1")
          {
      
              filename "grub/bootx32.efi";
      
          }elsif (substring (option vendor-class-identifier, 15, 13) = "MacBookPro1,2")
          {
      
              filename "grub/bootx32.efi";
      
          }elsif (substring (option vendor-class-identifier, 15, 13) = "MacBookPro2,1")
          {
      
              filename "grub/bootx32.efi";
      
          }elsif (substring (option vendor-class-identifier, 15, 13) = "MacBookPro2,2")
          {
      
              filename "grub/bootx32.efi";
      
          }elsif (substring (option vendor-class-identifier, 15, 13) = "MacBookAir1,1")
          {
      
              filename "grub/bootx32.efi";
      
          }elsif (substring (option vendor-class-identifier, 15, 10) = "Macmini1,1")
          {
      
              filename "grub/bootx32.efi";
      
          }elsif (substring (option vendor-class-identifier, 15, 9) = "MacPro1,1")
          {
      
              filename "grub/bootx32.efi";
      
          }elsif (substring (option vendor-class-identifier, 15, 9) = "Xserve1,1")
          {
      
              filename "grub/bootx32.efi";
      
          }else
          {
              filename "grub/bootx64.efi";
          }
      }
      
      class "pxeclients" {
           match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
           next-server 192.168.2.1;
           if (option arch = 00:00) {
               filename "bios/pxelinux.0";
           }elsif (option arch = 00:06) {
               filename "grub/bootx32.efi";
           }elsif (option arch = 00:07) {
               filename "grub/bootx64.efi";
           }
      }
      
      subnet 192.168.2.0 netmask 255.255.255.0 {
        range dynamic-bootp 192.168.2.10 192.168.2.254;
        next-server 192.168.2.1;
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.2.255;
        option routers 192.168.2.1;
        default-lease-time 600;
        max-lease-time 3600;
      }
      
      
      posted in General Problems
      J
      jatosaj
    • Consolidating FOG and AikenWorkbench to one subnet. One PXE for both.

      Hi, thank you for taking the time to read this.

      We have FOG on subnet 192.168.3.0/24, and we use it for imaging laptops that go for sale. On the subnet 192.168.2.0/24, we have AikenWorkbench that we use to test those laptops before imaging. Aiken has its own DHCP server and uses pxelinux.0 and grub if I understand correctly.

      We would love to have both servers on a single subnet. So we won’t need to double the ethernet cables and unplug them every time a task is done.

      What would be the approach to achieve that?

      1. Having them both running on Type 1 Hypevisor or Containers? If this is even possible.
      2. Having two servers on the same subnet pointing to each other?
      3. Having them on separate subnets pointing to each other?

      AikenWorkbench has a lot of proprietary code they don’t share, and their customer support says this is not possible to have another PXE server working along with theirs.
      I was trying to install FOG along with Aiken, but I ran into some problems with SQL and FOG installation failed. Aiken uses SQL, and I don’t have the password for it. Also, we have only one licence, so no staging is possible.

      I have also tried Aiken grub.cfg to point to FOG, which failed. Then I tried Chainloading PXE to iPXE using pxelinux.0 and that completely broke Aiken. Had to restore from backup (which is in Acronis, not FOG, as they conflict)

      I know nothing about PXE, iPXE and pxelinux.0. I know very little about DHCP and more about grub. I’m willing to learn, though. So if you could point me in the right direction and docs, I would really appreciate that.

      Here is a part of the dhcpd.conf:

      class "pxeclients" {
           match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
           next-server 192.168.2.1;
           if (option arch = 00:00) {
               filename "bios/pxelinux.0";
           }elsif (option arch = 00:06) {
               filename "grub/bootx32.efi";
           }elsif (option arch = 00:07) {
               filename "grub/bootx64.efi";
           }
      

      Regards
      Damian

      posted in General Problems
      J
      jatosaj
    • 1 / 1