ipxe/boot.php hanging on capture
-
@ftgjason I don’t know if that’s the latest version, I’ve been a little under the weather lately.
I found this reference, looks professional and is detailed:
https://www.g-loaded.eu/2008/05/12/how-to-disable-ipv6-in-fedora-and-centos/Copy/pasting it so that it’s here still in case the link/site disappears in the future:
They say that by disabling IPv6 things get a bit smoother and faster regarding networking. I don’t really know if this is true, but I guess, if you’ve decided to disable this feature, you probably care to do it the Right Way. As far as I know, trying to disable IPv6 through anaconda during the installation of Fedora or CentOS does not turn off the IPv6 functionality completely, but it just disables it for the configured network interface. This is not actually a problem, but, why should this network layer be enabled system-wide, if you do not use it at all? This small article assists you in disabling IPv6 in the latest Fedora and CentOS releases in an aggressive and unforgiving way.
Check if the module is loadedIPv6 functionality is being made available to the system by the ipv6 kernel module. To check if this module is currently loaded in your system, issue the following command as root:
lsmod | grep ipv6
If you see ipv6 in its output, then the module is loaded.
Performing this check is absolutely not necessary. It is included in this article for completeness.
Disable IPv6You can prevent a module from being inserted into the kernel by either blacklisting it or by completely disabling it.
In this case, since you will most probably turn off the IPv6 firewall (ip6tables) as well, it is highly recommended to completely disable the ipv6 module, to avoid any accidental loading of the IPv6 stack without any firewall protection at the same time.
How the module blacklist worksThis information about blacklisting a kernel module exists here for educational purposes. It has been mentioned above that for ipv6 it is important to completely disable it.
From the modprobe.conf man page:
Modules can contain their own aliases: usually these are aliases describing the devices they support, such as “pci:123…”. These “internal” aliases can be overridden by normal “alias” keywords, but there are cases where two or more modules both support the same devices, or a module invalidly claims to support a device: the blacklist keyword indicates that all of that particular module’s internal aliases are to be ignored.
So, blacklist indicates that a module’s aliases should be ignored. But, what happens if an application requires to load that specific module or if root uses modprobe to load it on demand? Let’s test it…
To blacklist the module, simply save the following line in a file inside /etc/modprobe.d:
blacklist ipv6
Next, disable any services that use IPv6, eg ip6tables or any IPv6-enabled network interfaces and reboot (mandatory).
After you’ve logged-in again, try, for example, to load the ipv6 module with the modprobe command (as root):
[root@centos]# modprobe -v ipv6 insmod /lib/modules/2.6.18-53.1.14.el5/kernel/net/ipv6/ipv6.ko [root@centos]# lsmod | grep v6 ipv6 251393 8
The blacklisted module has been loaded. This is what happens if it is needed by a system service, regardless of the fact that it has been blacklisted. In the case of ipv6 this could be a security risk, provided that the ipv6 firewall has been turned off but some network interfaces still use IPv6. So, frankly, it is suggested to read on how to disable the module more aggressively…
Completely disable the ipv6 moduleTo completely disable IPv6 in your system, all you have to do is save the following line in a file inside /etc/modprobe.d/.
install ipv6 /bin/true
The above line means: whenever the system needs to load the ipv6 kernel module, it is forced to execute the command true instead of actually loading the module. Since /bin/true, does absolutely nothing, the module never gets loaded.
Again, it is required to reboot for the changes to take effect.
It is obvious that this is an aggressive method to disable kernel modules, but it guarantees that the module never gets loaded.
This is the recommended way to disable IPv6.
Other Configuration TasksSince the IPv6 functionality has been disabled, you can disable the ip6tables service (IPv6 Firewall). Issue the following command as root:
chkconfig ip6tables off
It is also a good idea, since the ip6tables service has been turned off, to disable any IPv6-related functionality in the network interface configuration. Even if you do not do this, the IPv6 stack will not be initialized because the ipv6 module cannot be loaded. But, generally, you could set the following options to “no” inside your network interface scripts, for example: /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no IPV6_AUTOCONF=no
Finally, In fedora 8 or newer you can safely remove the following option from the /etc/sysconfig/network file, if it exists:
NETWORKING_IPV6=no
Final Thoughts
Using the instructions above, you can completely disable IPv6 in your system. On the other hand, you should understand that IPv6 is not an evil thing… It exists in order to address certain issues. If you ever think about actually trying to configure and use it instead of just disabling it every time you install your Linux operating system, here is a good place to start…
How to Disable IPv6 in Fedora and CentOS by George Notaras is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Permissions beyond the scope of this license may be available at Licensing Information.
Copyright 2008 - Some Rights Reserved -
@Wayne-Workman I’m sure those are great instructions for a ‘non-rookie’ on Fedora, but I struggle. For some reason I think that ipv6 is disabled because you had me disable that when I installed Fedora 22 about a 14 months ago.
But as is, I followed another site that gave me an in-depth how-to (http://linoxide.com/linux-how-to/disable-ipv6-centos-fedora-rhel/) and restarted my server…same issue with uploading client to server still exists. -
@Wayne-Workman Here is the latest errors I see in apache log from
[root@localhost ~]# tail -n 100 /var/log/httpd/error_log
[Tue Sep 20 11:08:23.892875 2016] [suexec:notice] [pid 776] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
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 Sep 20 11:08:23.959982 2016] [auth_digest:notice] [pid 776] AH01757: generating secret for digest authentication …
[Tue Sep 20 11:08:23.961781 2016] [lbmethod_heartbeat:notice] [pid 776] AH02282: No slotmem from mod_heartmonitor
[Tue Sep 20 11:08:24.545092 2016] [mpm_prefork:notice] [pid 776] AH00163: Apache/2.4.18 (Fedora) OpenSSL/1.0.1k-fips PHP/5.6.23 configured – resuming normal operations
[Tue Sep 20 11:08:24.545149 2016] [core:notice] [pid 776] AH00094: Command line: ‘/usr/sbin/httpd -D FOREGROUND’
[Tue Sep 20 11:11:36.051028 2016] [:error] [pid 1080] [client 192.168.0.64:18394] PHP Fatal error: Uncaught exception ‘Exception’ with message ‘Type: 8, File: /var/www/html/fog/lib/fog/fogbase.class.php, Line: 791, Message: Undefined index: value, Host: 192.168.20.49, Username: fog’ in /var/www/html/fog/lib/fog/fogftp.class.php:74\nStack trace:\n#0 /var/www/html/fog/lib/fog/storagenode.class.php(113): FOGFTP->connect()\n#1 /var/www/html/fog/lib/fog/fogcontroller.class.php(831): StorageNode->loadImages()\n#2 /var/www/html/fog/lib/fog/fogcontroller.class.php(212): FOGController->loadItem(‘images’)\n#3 /var/www/html/fog/lib/fog/storagenode.class.php(45): FOGController->get(‘images’)\n#4 /var/www/html/fog/lib/fog/storagegroup.class.php(73): StorageNode->get(‘images’)\n#5 [internal function]: StorageGroup->{closure}(Object(StorageNode), 1)\n#6 /var/www/html/fog/lib/fog/storagegroup.class.php(87): array_walk(Array, Object(Closure))\n#7 /var/www/html/fog/lib/fog/bootmenu.class.php(1381): StorageGroup->getOptimalStorageNode(‘8’)\n#8 /var/www/html/fog/lib/fog/bootmenu.class.php(424): BootMenu->getTasking()\n#9 [internal funct in /var/www/html/fog/lib/fog/fogftp.class.php on line 74
[root@localhost ~]# -
@ftgjason run
ip addr show
again and post the output please. -
@Wayne-Workman
looks like it is still there…huh?[root@localhost ~]# ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 18:03:73:df:0d:93 brd ff:ff:ff:ff:ff:ff inet 192.168.0.49/23 brd 192.168.1.255 scope global eno1 valid_lft forever preferred_lft forever inet6 fe80::1a03:73ff:fedf:d93/64 scope link valid_lft forever preferred_lft forever [root@localhost ~]#
Mod edited to use code box.
-
@ftgjason Yep, which is why I asked you to check. that IPv6 address won’t be there anymore when you’ve successfully disabled IPv6.
-
@ftgjason said in ipxe/boot.php hanging on capture:
@Tom-Elliott here is the latest couple of entries…
[Mon Sep 19 15:46:48.827081 2016] [:error] [pid 2156] [client 192.168.0.66:8904] PHP Fatal error: Uncaught exception 'Exception' with message 'Type: 8, File: / var/www/html/fog/lib/fog/fogbase.class.php, Line: 791, Message: Undefined index: value, Host: 192.168.20.49, Username: fog' in /var/www/html/fog/lib/fog/fogftp. class.php:74\nStack trace:\n#0 /var/www/html/fog/lib/fog/storagenode.class.php(1 13): FOGFTP->connect()\n#1 /var/www/html/fog/lib/fog/fogcontroller.class.php(831 ): StorageNode->loadImages()\n#2 /var/www/html/fog/lib/fog/fogcontroller.class.p hp(212): FOGController->loadItem('images')\n#3 /var/www/html/fog/lib/fog/storage node.class.php(45): FOGController->get('images')\n#4 /var/www/html/fog/lib/fog/s toragegroup.class.php(73): StorageNode->get('images')\n#5 [internal function]: S torageGroup->{closure}(Object(StorageNode), 1)\n#6 /var/www/html/fog/lib/fog/sto ragegroup.class.php(87): array_walk(Array, Object(Closure))\n#7 /var/www/html/fo g/lib/fog/bootmenu.class.php(1381): StorageGroup->getOptimalStorageNode('8')\n#8 /var/www/html/fog/lib/fog/bootmenu.class.php(424): BootMenu->getTasking()\n#9 [ internal funct in /var/www/html/fog/lib/fog/fogftp.class.php on line 74 [Tue Sep 20 09:06:32.035780 2016] [:error] [pid 2113] [client 192.168.0.64:3636] PHP Fatal error: Uncaught exception 'Exception' with message 'Type: 8, File: / var/www/html/fog/lib/fog/fogbase.class.php, Line: 791, Message: Undefined index: value, Host: 192.168.20.49, Username: fog' in /var/www/html/fog/lib/fog/fogftp. class.php:74\nStack trace:\n#0 /var/www/html/fog/lib/fog/storagenode.class.php(1 13): FOGFTP->connect()\n#1 /var/www/html/fog/lib/fog/fogcontroller.class.php(831 ): StorageNode->loadImages()\n#2 /var/www/html/fog/lib/fog/fogcontroller.class.p hp(212): FOGController->loadItem('images')\n#3 /var/www/html/fog/lib/fog/storage node.class.php(45): FOGController->get('images')\n#4 /var/www/html/fog/lib/fog/s toragegroup.class.php(73): StorageNode->get('images')\n#5 [internal function]: S torageGroup->{closure}(Object(StorageNode), 1)\n#6 /var/www/html/fog/lib/fog/sto ragegroup.class.php(87): array_walk(Array, Object(Closure))\n#7 /var/www/html/fo g/lib/fog/bootmenu.class.php(1381): StorageGroup->getOptimalStorageNode('8')\n#8 /var/www/html/fog/lib/fog/bootmenu.class.php(424): BootMenu->getTasking()\n#9 [ internal funct in /var/www/html/fog/lib/fog/fogftp.class.php on line 74 [Tue Sep 20 09:26:50.788079 2016] [:error] [pid 2152] [client 192.168.0.64:43304 ] PHP Fatal error: Uncaught exception 'Exception' with message 'Type: 8, File: /var/www/html/fog/lib/fog/fogbase.class.php, Line: 791, Message: Undefined index : value, Host: 192.168.20.49, Username: fog' in /var/www/html/fog/lib/fog/fogftp .class.php:74\nStack trace:\n#0 /var/www/html/fog/lib/fog/storagenode.class.php( 113): FOGFTP->connect()\n#1 /var/www/html/fog/lib/fog/fogcontroller.class.php(83 1): StorageNode->loadImages()\n#2 /var/www/html/fog/lib/fog/fogcontroller.class. php(212): FOGController->loadItem('images')\n#3 /var/www/html/fog/lib/fog/storag enode.class.php(45): FOGController->get('images')\n#4 /var/www/html/fog/lib/fog/ storagegroup.class.php(73): StorageNode->get('images')\n#5 [internal function]: StorageGroup->{closure}(Object(StorageNode), 1)\n#6 /var/www/html/fog/lib/fog/st oragegroup.class.php(87): array_walk(Array, Object(Closure))\n#7 /var/www/html/f og/lib/fog/bootmenu.class.php(1381): StorageGroup->getOptimalStorageNode('8')\n# 8 /var/www/html/fog/lib/fog/bootmenu.class.php(424): BootMenu->getTasking()\n#9 [internal funct in /var/www/html/fog/lib/fog/fogftp.class.php on line 74 [root@localhost ~]#
Mod edited to use code box.
I’m thinking more about these errors and the screenshot you posted - what in the world does FTP have to do with getting boot parameters from boot.php @Developers ? Makes no sense to me.
The screenshot says input/output error. I guess we can check what it’s talking about. If you give me your FOG server’s IP address, and the MAC address of the computer you’re working with, I can give you a URL to look at.
-
@Wayne-Workman It will look at ftp if a requested node is unable to find localized images. It will try finding images by way of ftp if it cannot set them internally first. This process usually works fine but if ftp is bad then this might happen.
-
@Wayne-Workman
FOG - 192.168.0.49
Mac of Client
78:45:c4:24:82:d8 -
http://192.168.0.49/fog/service/ipxe/boot.php?mac=78:45:c4:24:82:d8
Let us know what it shows, too. Just copy/paste, use the forum’s code snippit tool.
-
@Wayne-Workman Here’s what I get after pasting in web-browser
#!ipxe
set fog-ip 192.168.0.49
set fog-webroot fog
set boot-url http://${fog-ip}/${fog-webroot} -
@ftgjason Well that would definitely cause an input output error. Here’s what my home fog server gives me for a registered MAC address.
#!ipxe set fog-ip 10.0.0.4 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://10.0.0.4/fog/service/ipxe/bg.png --left 100 --right 80 && goto console_set || goto alt_console :MENU menu colour --rgb 0x00567a 0 || cpair --foreground 1 1 || cpair --foreground 0 3 || cpair --foreground 4 4 || item --gap Host is registered as LIVINGROOM! item --gap -- ------------------------------------- item fog.local Boot from hard disk item fog.memtest Run Memtest86+ item fog.keyreg Update Product Key item fog.deployimage Deploy Image item fog.multijoin Join Multicast Session item fog.quickdel Quick Host Deletion item fog.sysinfo Client System Information (Compatibility) choose --default fog.local --timeout 3000 target && goto ${target} :fog.local sanboot --no-describe --drive 0x80 || goto MENU kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=10.0.0.4/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 imgfetch init_32.xz boot || goto MENU :fog.memtest kernel memdisk iso raw initrd memtest.bin boot || goto MENU kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=10.0.0.4/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 imgfetch init_32.xz boot || goto MENU :fog.keyreg login params param mac0 ${net0/mac} param arch ${arch} param username ${username} param password ${password} param keyreg 1 isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme :fog.deployimage 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.quickdel login params param mac0 ${net0/mac} param arch ${arch} param username ${username} param password ${password} param delhost 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 web=10.0.0.4/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=sysinfo imgfetch init_32.xz boot || goto MENU :bootme chain -ar http://10.0.0.4/fog/service/ipxe/boot.php##params || goto MENU autoboot
And here’s what I get for a non-registered MAC address:
#!ipxe set fog-ip 10.0.0.4 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://10.0.0.4/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.deployimage Deploy Image item fog.multijoin Join Multicast Session item fog.sysinfo Client System Information (Compatibility) choose --default fog.local --timeout 3000 target && goto ${target} :fog.local sanboot --no-describe --drive 0x80 || goto MENU kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=10.0.0.4/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 imgfetch init_32.xz boot || goto MENU :fog.memtest kernel memdisk iso raw initrd memtest.bin boot || goto MENU kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=10.0.0.4/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 imgfetch init_32.xz boot || goto MENU :fog.reginput kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=10.0.0.4/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 web=10.0.0.4/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=autoreg imgfetch init_32.xz boot || goto MENU :fog.deployimage 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 web=10.0.0.4/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=sysinfo imgfetch init_32.xz boot || goto MENU :bootme chain -ar http://10.0.0.4/fog/service/ipxe/boot.php##params || goto MENU autoboot
This is using svn version 5956.
-
@ftgjason Given that it only happens on registered hosts, go into FOG Settings and disable menu items only available to registered hosts and see if that helps.
-
Crosslinking similar threads:
https://forums.fogproject.org/topic/8604/could-not-boot-input-output-error-http-ipxe-org-1d0c6539 -
@Quazz I guess I am missing that setting, can you give me more info on what the actual heading is for the setting in Fog Settings. Thanks
-
@ftgjason Configure Boot Menu or something like it. Then go over each option, it has a drop down menu for when you can see the items.
-
@Quazz @Wayne-Workman I have changed a thing or two that looks like what you are talking about, but nothing has changed on the capture end of things. Still not 100% certain on where the change needed to be made.
-
@ftgjason Never mind that, I was kind of distracted and didn’t notice this was happening on capture not on the boot menu.
Check out the link Wayne posted.
-
@Wayne-Workman @Quazz Ok…combing through some of the logs…I find a host, which I assume is the FOG server itself, and it has the wrong ip address.
It should be 192.168.0.49 not the 192.168.20.49.
Am I on the right track?[Wed Sep 21 09:03:13.096909 2016] [:error] [pid 1099] [client 192.168.0.64:33342] PHP Fatal error: Uncaught exception 'Exception' with message 'Type: 8, File: /var/www/html/fog/lib/fog/fogbase.class.php, Line: 791, Message: Undefined index: value, Host: 192.168.20.49, Username: fog' in /var/www/html/fog/lib/fog/fogftp.class.php:74\nStack trace:\n#0 /var/www/html/fog/lib/fog/storagenode.class.php(113): FOGFTP->connect()\n#1 /var/www/html/fog/lib/fog/fogcontroller.class.php(831): StorageNode->loadImages()\n#2 /var/www/html/fog/lib/fog/fogcontroller.class.php(212): FOGController->loadItem('images')\n#3 /var/www/html/fog/lib/fog/storagenode.class.php(45): FOGController->get('images')\n#4 /var/www/html/fog/lib/fog/storagegroup.class.php(73): StorageNode->get('images')\n#5 [internal function]: StorageGroup->{closure}(Object(StorageNode), 1)\n#6 /var/www/html/fog/lib/fog/storagegroup.class.php(87): array_walk(Array, Object(Closure))\n#7 /var/www/html/fog/lib/fog/bootmenu.class.php(1381): StorageGroup->getOptimalStorageNode('8')\n#8 /var/www/html/fog/lib/fog/bootmenu.class.php(424): BootMenu->getTasking()\n#9 [internal funct in /var/www/html/fog/lib/fog/fogftp.class.php on line 74
-
@ftgjason Check storage node settings!