PXE Boot Error Input/output error after upgrading from 1.2.0 to GIT 7723



  • Hello.

    The production server has two NIC’s where NIC1 connects to the site LAN and outbound and the other NIC2 attached to a switch to FOG/image/deploy the units privately on its own LAN on NIC2. The box has Fog 1.2.0 with CentOS 7 and worked well for almost a year with Dell models where PXE booting to upload and to deploy images ran smoothly.

    But, with the new Lenovo’s with no Ethernet port built-in, those models required their branded ThinkPad USB3.0 to GigEthernet dongle/adapter where the Lenovo’s BIOS recognized that particular dongle to allow PXE boot. However, with 1.2.0, the Lenovo’s failed to boot past the DHCP stages. It was suggested to upgrade FOG to a later SVN or GIT release.

    Fog was upgraded to GIT 7723 where there was a newer install script which was CentOS7 aware and made appropriate changes. Now all models, Dell and Lenovo (with Lenovo branded USB3 to GigEthernet adapter) boot to the point where the following error message appears:

    http://192.168.0.61/fog/service/ipxe/boot.php… Input/output error (http://ipxe.org/1d0c6539)
    Could not boot: Input/output error (http://ipxe.org/1d0c6539)
    Could not boot: Input/output error (http://ipxe.org/1d0c6539)
    …then the unit reboots…

    TIA for any suggestions and solutions.


  • Developer

    @ppustisr said:

    It appears option 67 is not declared…see code below for dhcpd.conf

    In ISC-DHCP config option 67 is called filename. Should be all fine from what I see. Although George is right about 192.168.0.61 possibly getting into the way at some point in time. That will be very ugly and hard to find I suppose.

    Clients receive IP’s from DHCP (from statically set NIC2) when booting from LAN. (NIC2 statically set to 192.168.0.61)

    Do you have a NIC1 as well?

    Sorry, I missed something here. The client pulling the iPXE boot menu/config will also send HTTP parameter, so please try opening the URL with added parameter and see what you get (in the browser and apache error log): cc:dd:ee:ff" target="_blank" rel="nofollow">http://192.168.0.61/fog/service/ipxe/boot.php?mac=aa:bb:cc:dd:ee:ff(put your client’s MAC address instead of aa:bb:cc:dd:ee:ff)


  • Moderator

    @ppustisr I do have to admit I don’t deal with linux dhcp server so I did not spot it right away. The filename variable is actually the dhcp optio 67. What you have is the standard dhcp configuration for FOG.

    Looking at the configuration I see a few things that are questionable but nothing that should cause the io error.

    1. Do you have a device at 192.168.0.1? The config file makes a reference to it for a router and dns name server. If not comment those out in the configuraiton.
    2. You created a range of 192.168.0.10 to 192.168.0.254, but your fog server is addressed in side this range at 192.169.0.61. That may cause an issue down the road.

    What I think we should do next is capture the dhcp booting process into a pcap file so we can take a look at what is going down the wire. Since your fog server, dhcp server, and target computer is on the same subnet then we can capture the traffic from the fog server with:

    tcpdump -w output.pcap port 67 or port 68 or port 69

    Start the package capture with the above command and then boot the target computer until you get the error. Then abort the packet capture and post the pcap file here. This will only capture the dhcp and potentially tftp traffic once we can get by the iPXE booting issue.



  • @george1421 said in PXE Boot Error Input/output error after upgrading from 1.2.0 to GIT 7723:

    @ppustisr Ok now the picture it getting a bit clearer.

    Your issues are a bit more fundamental than kernels or bios vs uefi. You are using FOG as your dhcp server for your target computers?? If the dhcp options are not set or are not set correctly I could see why you are getting an i/o error.

    Please confirm that your intent is to have FOG issue dhcp addresses for these clients.

    Yes. Clients receive IP’s from DHCP (from statically set NIC2) when booting from LAN. (NIC2 statically set to 192.168.0.61)


  • Moderator

    @ppustisr Ok now the picture it getting a bit clearer.

    Your issues are a bit more fundamental than kernels or bios vs uefi. You are using FOG as your dhcp server for your target computers?? If the dhcp options are not set or are not set correctly I could see why you are getting an i/o error.

    Please confirm that your intent is to have FOG issue dhcp addresses for these clients.



  • @george1421 said in PXE Boot Error Input/output error after upgrading from 1.2.0 to GIT 7723:

    @Sebastian-Roth said in PXE Boot Error Input/output error after upgrading from 1.2.0 to GIT 7723:

    @ppustisr Please open http://192.168.0.61/fog/service/ipxe/boot.php in your normal browser and post the full output here in the forum.

    To quote Sebastian ^^

    #!ipxe
    set fog-ip 192.168.0.61
    set fog-webroot fog
    set boot-url http://${fog-ip}/${fog-webroot}
    cpuid --ext 29 && set arch x86_64 || set arch i386
    goto get_console
    :console_set
    colour --rgb 0x00567a 1 ||
    colour --rgb 0x00567a 2 ||
    colour --rgb 0x00567a 4 ||
    cpair --foreground 7 --background 2 2 ||
    goto MENU
    :alt_console
    cpair --background 0 1 ||
    cpair --background 1 2 ||
    goto MENU
    :get_console
    console --picture http://192.168.0.61/fog/service/ipxe/bg.png --left 100 --right 80 && goto console_set || goto alt_console
    :MENU
    menu
    colour --rgb 0xff0000 0 ||
    cpair --foreground 1 1 ||
    cpair --foreground 0 3 ||
    cpair --foreground 4 4 ||
    item --gap Host is NOT registered!
    item --gap -- -------------------------------------
    item fog.local Boot from hard disk
    item fog.memtest Run Memtest86+
    item fog.reginput Perform Full Host Registration and Inventory
    item fog.reg Quick Registration and Inventory
    item fog.quickimage Quick Image
    item fog.multijoin Join Multicast Session
    item fog.sysinfo Client System Information (Compatibility)
    choose --default fog.local --timeout 600000 target && goto ${target}
    :fog.local
    sanboot --no-describe --drive 0x80 || goto MENU
    :fog.memtest
    kernel memdisk iso raw
    initrd memtest.bin
    boot || goto MENU
    :fog.reginput
    kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 keymap= web=192.168.0.61/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=manreg
    imgfetch init_32.xz
    boot || goto MENU
    :fog.reg
    kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 keymap= web=192.168.0.61/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=autoreg
    imgfetch init_32.xz
    boot || goto MENU
    :fog.quickimage
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param qihost 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    :fog.multijoin
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param sessionJoin 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    :fog.sysinfo
    kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 keymap= web=192.168.0.61/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=sysinfo
    imgfetch init_32.xz
    boot || goto MENU
    :bootme
    chain -ar http://192.168.0.61/fog/service/ipxe/boot.php##params ||
    goto MENU
    autoboot
    


  • @george1421

    Dell’s PXE boot worked with 1.2.0 where I can upload and deploy but with latest GIT 7821, it will boot PXE up to the point where the error msg appears: Could not boot: Input/output error (http://ipxe.org/1d0c6539) & reboots but no further.

    Lenovo’s did not work with PXE boot on 1.2.0 but PXE boot up to the point where error msg appears “Could not boot: Input/output error (http://ipxe.org/1d0c6539)” & reboots but no further.

    Images with MBR only utilized so Lenovo’s have Secure Boot mode disabled. Startup Boot mode set to Legacy Only. CSM Support set to Yes. Same problem with Security Chip set to Active or Disabled.

    Box has static IP’s for both NIC’s.

    It appears option 67 is not declared…see code below for dhcpd.conf

    # DHCP Server Configuration file\n#see /usr/share/doc/dhcp*/dhcpd.conf.sample
    # This file was created by FOG
    #Definition of PXE-specific options
    # Code 1: Multicast IP Address of bootfile
    # Code 2: UDP Port that client should monitor for MTFTP Responses
    # Code 3: UDP Port that MTFTP servers are using to listen for MTFTP requests
    # Code 4: Number of seconds a client must listen for activity before trying
    #         to start a new MTFTP transfer
    # Code 5: Number of seconds a client must listen before trying to restart
    #         a MTFTP transfer
    option space PXE;
    option PXE.mtftp-ip code 1 = ip-address;
    option PXE.mtftp-cport code 2 = unsigned integer 16;
    option PXE.mtftp-sport code 3 = unsigned integer 16;
    option PXE.mtftp-tmout code 4 = unsigned integer 8;
    option PXE.mtftp-delay code 5 = unsigned integer 8;
    option arch code 93 = unsigned integer 16;
    use-host-decl-names on;
    ddns-update-style interim;
    ignore client-updates;
    # Specify subnet of ether device you do NOT want service.
    # For systems with two or more ethernet devices.
    # subnet 136.165.0.0 netmask 255.255.0.0 {}
    subnet 192.168.0.0 netmask 255.255.255.0{
        option subnet-mask 255.255.255.0;
        range dynamic-bootp 192.168.0.10 192.168.0.254;
        default-lease-time 21600;
        max-lease-time 43200;
        option routers 192.168.0.1;
        option domain-name-servers 192.168.0.1;
        next-server 192.168.0.61;
        class "Legacy" {
            match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00000";
            filename "undionly.kkpxe";
        }
        class "UEFI-32-2" {
            match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00002";
            filename "i386-efi/ipxe.efi";
        }
        class "UEFI-32-1" {
            match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00006";
            filename "i386-efi/ipxe.efi";
        }
        class "UEFI-64-1" {
            match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00007";
            filename "ipxe.efi";
        }
        class "UEFI-64-2" {
            match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00008";
            filename "ipxe.efi";
        }
        class "UEFI-64-3" {
            match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00009";
            filename "ipxe.efi";
        }
    }
    


  • @Sebastian-Roth

    Thanks

    (error log after boot.php)

    boot.php:

    #!ipxe
    set fog-ip 192.168.0.61
    set fog-webroot fog
    set boot-url http://${fog-ip}/${fog-webroot}
    cpuid --ext 29 && set arch x86_64 || set arch i386
    goto get_console
    :console_set
    colour --rgb 0x00567a 1 ||
    colour --rgb 0x00567a 2 ||
    colour --rgb 0x00567a 4 ||
    cpair --foreground 7 --background 2 2 ||
    goto MENU
    :alt_console
    cpair --background 0 1 ||
    cpair --background 1 2 ||
    goto MENU
    :get_console
    console --picture http://192.168.0.61/fog/service/ipxe/bg.png --left 100 --right 80 && goto console_set || goto alt_console
    :MENU
    menu
    colour --rgb 0xff0000 0 ||
    cpair --foreground 1 1 ||
    cpair --foreground 0 3 ||
    cpair --foreground 4 4 ||
    item --gap Host is NOT registered!
    item --gap -- -------------------------------------
    item fog.local Boot from hard disk
    item fog.memtest Run Memtest86+
    item fog.reginput Perform Full Host Registration and Inventory
    item fog.reg Quick Registration and Inventory
    item fog.quickimage Quick Image
    item fog.multijoin Join Multicast Session
    item fog.sysinfo Client System Information (Compatibility)
    choose --default fog.local --timeout 600000 target && goto ${target}
    :fog.local
    sanboot --no-describe --drive 0x80 || goto MENU
    :fog.memtest
    kernel memdisk iso raw
    initrd memtest.bin
    boot || goto MENU
    :fog.reginput
    kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 keymap= web=192.168.0.61/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=manreg
    imgfetch init_32.xz
    boot || goto MENU
    :fog.reg
    kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 keymap= web=192.168.0.61/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=autoreg
    imgfetch init_32.xz
    boot || goto MENU
    :fog.quickimage
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param qihost 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    :fog.multijoin
    login
    params
    param mac0 ${net0/mac}
    param arch ${arch}
    param username ${username}
    param password ${password}
    param sessionJoin 1
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
    :fog.sysinfo
    kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 keymap= web=192.168.0.61/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=sysinfo
    imgfetch init_32.xz
    boot || goto MENU
    :bootme
    chain -ar http://192.168.0.61/fog/service/ipxe/boot.php##params ||
    goto MENU
    autoboot
    

    apache error log:

    Sun May 22 04:49:53.788641 2016] [auth_digest:notice] [pid 8788] AH01757: generating secret for digest authentication ...
    [Sun May 22 04:49:53.789729 2016] [lbmethod_heartbeat:notice] [pid 8788] AH02282: No slotmem from mod_heartmonitor
    [Sun May 22 04:49:53.791652 2016] [ssl:warn] [pid 8788] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
    [Sun May 22 04:49:53.815864 2016] [mpm_prefork:notice] [pid 8788] AH00163: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.6.21 configured -- resuming normal operations
    [Sun May 22 04:49:53.815881 2016] [core:notice] [pid 8788] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
    [Mon May 23 10:08:03.225088 2016] [:error] [pid 23441] [client 192.168.0.222:35657] PHP Fatal error:  Call to a member function isValid() on string in /var/www/html/fog/lib/fog/host.class.php on line 523
    [Mon May 23 10:08:03.730143 2016] [:error] [pid 23438] [client 192.168.0.219:56385] PHP Fatal error:  Call to a member function isValid() on string in /var/www/html/fog/lib/fog/host.class.php on line 523
    [Mon May 23 10:08:04.424228 2016] [:error] [pid 23442] [client 192.168.0.220:47121] PHP Fatal error:  Call to a member function isValid() on string in /var/www/html/fog/lib/fog/host.class.php on line 523
    [Mon May 23 10:40:20.206685 2016] [:error] [pid 23442] [client 192.168.0.220:38148] PHP Fatal error:  Call to a member function isValid() on string in /var/www/html/fog/lib/fog/host.class.php on line 523
    [Mon May 23 11:19:29.336449 2016] [mpm_prefork:notice] [pid 8788] AH00170: caught SIGWINCH, shutting down gracefully
    [Mon May 23 11:19:57.079658 2016] [suexec:notice] [pid 14458] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
    [Mon May 23 11:19:57.081599 2016] [ssl:warn] [pid 14458] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
    AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
    [Mon May 23 11:19:57.122846 2016] [auth_digest:notice] [pid 14458] AH01757: generating secret for digest authentication ...
    [Mon May 23 11:19:57.123758 2016] [lbmethod_heartbeat:notice] [pid 14458] AH02282: No slotmem from mod_heartmonitor
    [Mon May 23 11:19:57.125343 2016] [ssl:warn] [pid 14458] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
    [Mon May 23 11:19:57.151032 2016] [mpm_prefork:notice] [pid 14458] AH00163: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.6.21 configured -- resuming normal operations
    [Mon May 23 11:19:57.151059 2016] [core:notice] [pid 14458] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
    [Mon May 23 11:19:59.349340 2016] [:error] [pid 14465] [client 192.168.0.61:58808] PHP Warning:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_def$
    [Mon May 23 11:19:59.884341 2016] [:error] [pid 14465] [client 192.168.0.61:58808] PHP Warning:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_def$
    [Mon May 23 11:28:47.934149 2016] [:error] [pid 14465] [client 192.168.0.175:61295] PHP Fatal error:  Cannot access protected property FOGCore::$DB in /var/www/html/fog/commons/schemaupdater/index.php on line 1474, referer: http:/$
    [Mon May 23 11:29:05.653900 2016] [:error] [pid 14499] [client 192.168.0.175:61317] PHP Fatal error:  Cannot access protected property FOGCore::$DB in /var/www/html/fog/commons/schemaupdater/index.php on line 1474, referer: http:/$
    [Mon May 23 11:31:31.549072 2016] [:error] [pid 16939] [client 192.168.0.220:25403] PHP Fatal error:  Call to a member function isValid() on string in /var/www/html/fog/lib/fog/host.class.php on line 523
    [Tue May 24 05:52:12.012763 2016] [:error] [pid 14468] [client 192.168.0.220:56086] PHP Fatal error:  Call to a member function isValid() on string in /var/www/html/fog/lib/fog/host.class.php on line 523
    [Tue May 24 05:53:37.443512 2016] [mpm_prefork:notice] [pid 14458] AH00170: caught SIGWINCH, shutting down gracefully
    [Tue May 24 05:54:07.133315 2016] [suexec:notice] [pid 30673] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
    [Tue May 24 05:54:07.135106 2016] [ssl:warn] [pid 30673] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
    AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
    [Tue May 24 05:54:07.172200 2016] [auth_digest:notice] [pid 30673] AH01757: generating secret for digest authentication ...
    [Tue May 24 05:54:07.173095 2016] [lbmethod_heartbeat:notice] [pid 30673] AH02282: No slotmem from mod_heartmonitor
    [Tue May 24 05:54:07.174578 2016] [ssl:warn] [pid 30673] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
    [Tue May 24 05:54:07.198162 2016] [mpm_prefork:notice] [pid 30673] AH00163: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.6.21 configured -- resuming normal operations
    [Tue May 24 05:54:07.198192 2016] [core:notice] [pid 30673] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
    [Tue May 24 05:55:34.617525 2016] [:error] [pid 30683] [client 192.168.0.175:62337] PHP Strict Standards:  Only variables should be passed by reference in /var/www/html/fog/lib/pages/schemaupdaterpage.class.php on line 48, referer$
    
    

  • Moderator

    @Sebastian-Roth said in PXE Boot Error Input/output error after upgrading from 1.2.0 to GIT 7723:

    @ppustisr Please open http://192.168.0.61/fog/service/ipxe/boot.php in your normal browser and post the full output here in the forum.

    To quote Sebastian ^^


  • Senior Developer

    @ppustisr How does that help?



  • @Tom-Elliott

    Updated to 7821. Still broken.

    Thanks


  • Senior Developer

    Also try updating to the most current to see if the issue has already been fixed. 7799 is the current latest.


  • Developer

    @ppustisr Please open http://192.168.0.61/fog/service/ipxe/boot.php in your normal browser and post the full output here in the forum. Sure we can find and fix this easily. As it says input/output error you might not see anything in the browser either. Then check the apache error log (see my signature below this message on where to find the log).


  • Moderator

    Let me see if I understand.

    1. The dell models still boot no issue
    2. The new lenovo does not
    3. Since the lenovo has no built in ethernet port you purchases a compatible one recommended by lenovo to pxe boot. This tells me that you could be booting these devices in uefi mode?

    What is the value of dhcp option 67 {boot file} currently configured? For uefi system the ipxe.efi kernel is required. For bios system typically undionly.kpxe is used.

    Please make sure the security chip is disabled in the lenovo too for uefi pxe booting.

    [edit] just a follow on question your fog server has a static IP address (not defined by dhcp) right?


Log in to reply
 

453
Online

38715
Users

10544
Topics

99817
Posts

Looks like your connection to FOG Project was lost, please wait while we try to reconnect.