Kernel panic - not syncing: VFS

  • Server
    • FOG Version: 1.3.4
    • OS: Debian 8.7

    Hi. My name is Marcos. I make a clean install of Debian, and install FOG. I´ve already have a DHCP, so I setup dnsmasq with tftp and boot the pxe menu.
    My problem comes when I select and option, for example, registration, deploy or quick registration, it show a kernel panic as you can see in the image:
    This happens with a desktop with intel of amd. In this test, i try with a HP Prodesk 400 G3(intel core i5), and the other model is a HP Compaq dc5750 minitower(AMD Athlon X2).
    I´ve already update the kernel from the web gui:

    Kernel Versions
    DefaultMember FOG Version: (1.3.4)

    bzImage Version: 4.10.1
    bzImage32 Version: 4.10.1

    Official Published Kernels

    Kernel - 4.10.1 TomElliott
    Date : March 9, 2017
    Version : 4.10.1
    FOG Type: TomElliott
    Arch Type: (x86_64)

    So, I can’t upload, deploy or register a host. :(
    Can anyone please help me please?
    If it helps, I show the /fog/service/ipxe/boot.php

    set fog-ip x.x.x.x
    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
    colour --rgb 0x00567a 1 ||
    colour --rgb 0x00567a 2 ||
    colour --rgb 0x00567a 4 ||
    cpair --foreground 7 --background 2 2 ||
    goto MENU
    cpair --background 0 1 ||
    cpair --background 1 2 ||
    goto MENU
    console --picture http://x.x.x.x/fog/service/ipxe/bg.png --left 100 --right 80 && goto console_set || goto alt_console
    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 10000 target && goto ${target}
    sanboot --no-describe --drive 0x80 || goto MENU
    kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4
    imgfetch init_32.xz
    boot || goto MENU
    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=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4
    imgfetch init_32.xz
    boot || goto MENU
    kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=manreg
    imgfetch init_32.xz
    boot || goto MENU
    kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=autoreg
    imgfetch init_32.xz
    boot || goto MENU
    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
    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
    kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=sysinfo
    imgfetch init_32.xz
    boot || goto MENU
    chain -ar http://x.x.x.x/fog/service/ipxe/boot.php##params ||
    goto MENU

    Thank you so much for the help you can give me.


  • Senior Developer

    @cleric.marcos You’re more than welcome. I do want to say I did very little to help anything here. I think @george1421 deserves more of the kudo’s here than I do.

  • @george1421 and @Tom-Elliott Thank you SO much!
    After some test, I discover the issue.
    I install fog in a desktop, rename the undionly.kpxe, make the soft link, and enable the tftp service on dnsmasq, and it worked!!!
    I documented everything, and made ir again on virtualbox, and it worked, so the problem was me, hehe.
    Thank you very much for all the help and patience. I’am working in cibersecurity, and Iam also in charge of the workstation here, so FOG really help me out.
    Thanks again to both of you.
    If I find a bug o security issue I will notify it.

    See ya!

  • Senior Developer

    @Wayne-Workman I believe they were trying to follow “best practices” and/or “standards”.

    When DNSMasq started to come into existence, I believe the norm was to boot to a “.0” labelled file. So to lessen typing, you could just request pxelinux instead of the whole pxelinux.0 bit of it. (Pxelinux was pretty much the norm at this point I would say.) Of course as more modern nbp systems came out this didn’t hold any more value for reasons we all know too well now.

  • Moderator

    @george1421 My mind is still blown concerning why anyone would have made dnsmasq add stuff to filenames. I’m so so glad that’s fixed now.

  • Moderator

    @cleric.marcos You might have an older version of dnsmasq on your system than I think.

    Lets try this. Change this line

    pxe-service=X86PC, "Boot from network", undionly.kpxe


    pxe-service=X86PC, "Boot from network", undionly

    The version of dnsmasq you have may not like the extension on the boot from menu

    Then you need to create a new symbolic link:
    ln -s /tftpboot/undionly.kpxe /tftpboot/undionly.0

    From your picture you can see its launching the section:
    pxe-service=X86PC, "Boot from network"

    because its printing “Boot from network” on the screen. I’m guessing it didn’t like the .kpxe as part of the boot file.

    If this doesn’t work we’re going to need to get a pcap of the dhcp process to understand what dnsmasq is sending to the target computer.

  • @george1421
    The file is in the folder, and the symbolic link is made:

    rwxr-xr-x  6 fog  root   4096 Mar 16 13:35 .
    drwxr-xr-x 25 root root   4096 Mar 15 10:41 ..
    drwxr-xr-x  2 fog  root   4096 Mar 15 10:31 10secdelay
    -rw-r-xr-x  1 fog  root    868 Mar 15 10:41 boot.txt
    -rw-r-xr-x  1 fog  root    426 Mar 15 10:41 default.ipxe
    drwxr-xr-x  2 fog  root   4096 Mar 15 10:31 i386-7156-efi
    drwxr-xr-x  2 fog  root   4096 Mar 15 10:31 i386-efi
    -rw-r-xr-x  1 fog  root 199200 Mar 15 10:41 intel7156.efi
    -rw-r-xr-x  1 fog  root 220960 Mar 15 10:41 intel.efi
    -rw-r-xr-x  1 fog  root  93889 Mar 15 10:41 intel.kkpxe
    -rw-r-xr-x  1 fog  root  93937 Mar 15 10:41 intel.kpxe
    -rw-r-xr-x  1 fog  root  93969 Mar 15 10:41 intel.pxe
    -rw-r-xr-x  1 fog  root 942112 Mar 15 10:41 ipxe7156.efi
    -rw-r-xr-x  1 fog  root 981696 Mar 15 10:41 ipxe.efi
    -rw-r-xr-x  1 fog  root 866304 Mar 15 10:41 ipxe.iso
    -rw-r-xr-x  1 fog  root 344618 Mar 15 10:41 ipxe.kkpxe
    -rw-r-xr-x  1 fog  root 344666 Mar 15 10:41 ipxe.kpxe
    -rw-r-xr-x  1 fog  root 344118 Mar 15 10:41 ipxe.krn
    -rw-r-xr-x  1 fog  root 344884 Mar 15 10:41 ipxe.pxe
    -rw-r-xr-x  1 fog  root 123448 Mar 15 10:41 ldlinux.c32
    -rw-r-xr-x  1 fog  root 187820 Mar 15 10:41 libcom32.c32
    -rw-r-xr-x  1 fog  root  26468 Mar 15 10:41 libutil.c32
    -rw-r-xr-x  1 fog  root  26140 Mar 15 10:41 memdisk
    -rw-r-xr-x  1 fog  root  29208 Mar 15 10:41 menu.c32
    -rw-r-xr-x  1 fog  root  43186 Mar 15 10:41 pxelinux.0
    -rw-r-xr-x  1 fog  root  43210 Mar 15 10:41 pxelinux.0.old
    drwxr-xr-x  2 fog  root   4096 Mar 15 12:53 pxelinux.cfg
    -rw-r-xr-x  1 fog  root 199168 Mar 15 10:41 realtek7156.efi
    -rw-r-xr-x  1 fog  root 220448 Mar 15 10:41 realtek.efi
    -rw-r-xr-x  1 fog  root  94755 Mar 15 10:41 realtek.kkpxe
    -rw-r-xr-x  1 fog  root  94803 Mar 15 10:41 realtek.kpxe
    -rw-r-xr-x  1 fog  root  94807 Mar 15 10:41 realtek.pxe
    -rw-r-xr-x  1 fog  root 197984 Mar 15 10:41 snp7156.efi
    -rw-r-xr-x  1 fog  root 219520 Mar 15 10:41 snp.efi
    -rw-r-xr-x  1 fog  root 198176 Mar 15 10:41 snponly7156.efi
    -rw-r-xr-x  1 fog  root 219744 Mar 15 10:41 snponly.efi
    -rw-r-xr-x  1 fog  root  93515 Mar 15 10:41 undionly.kkpxe
    -rw-r-xr-x  1 fog  root  93563 Mar 15 10:41 undionly.kpxe
    lrwxrwxrwx  1 fog  root     23 Mar 16 13:19 undionly.kpxe.0 -> /tftpboot/undionly.kpxe
    -rw-r-xr-x  1 fog  root  29728 Mar 15 10:41 vesamenu.c32


  • Moderator

    @cleric.marcos said in Kernel panic - not syncing: VFS:

    pxe-service=X86PC, “Boot from network”, pxelinux

    Change this line

    pxe-service=X86PC, "Boot from network", pxelinux


    pxe-service=X86PC, "Boot from network", undionly.kpxe

    And then on the fog server you need to create a symbolic link from undionly.kpxe to undionly.kpxe.0

    ln -s /tftpboot/undionly.kpxe /tftpboot/undionly.kpxe.0

  • @george1421 Oh sorry, i thought I did in my original post.
    I follow this tutorial to setup in FOG.
    I also have a DHCP in my network. It’s a dnsmasq too.
    It’s like this:

    # Sample configuration for dnsmasq to function as a proxyDHCP server,
    # enabling LTSP clients to boot when an external, unmodifiable DHCP
    # server is present.
    # The main dnsmasq configuration is in /etc/dnsmasq.conf;
    # the contents of this script are added to the main configuration.
    # You may modify the file to suit your needs.
    # Don't function as a DNS server:
    # Log lots of extra information about DHCP transactions.
    # Dnsmasq can also function as a TFTP server. You may uninstall
    # tftpd-hpa if you like, and uncomment the next line:
    # enable-tftp
    # Set the root directory for files available via FTP.
    # The boot filename.
    # rootpath option, for NFS
    # kill multicast
    # Disable re-use of the DHCP servername and filename fields as extra
    # option space. That's to avoid confusing some old or broken DHCP clients.
    # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,
    # Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
    # This option is first and will be the default if there is no input from the user.
    pxe-service=X86PC, "Boot from network", pxelinux
    # A boot service type of 0 is special, and will abort the
    # net boot procedure and continue booting from local media.
    #pxe-service=X86PC, "Boot from local hard disk", 0
    # If an integer boot service type, rather than a basename is given, then the
    # PXE client will search for a suitable boot service for that type on the
    # network. This search may be done by multicast or broadcast, or direct to a
    # server if its IP address is provided.
    # pxe-service=x86PC, "Install windows from RIS server", 1
    # This range(s) is for the public interface, where dnsmasq functions
    # as a proxy DHCP server providing boot information but no IP leases.
    # Any ip in the subnet will do, so you may just put your server NIC ip here.
    # Since dnsmasq is not providing true DHCP services, you do not want it
    # handing out IP addresses.  Just put your servers IP address for the interface
    # that is connected to the network on which the FOG clients exist.
    # If this setting is incorrect, the dnsmasq may not start, rendering
    # your proxyDHCP ineffective.
    # This range(s) is for the private network on 2-NIC servers,
    # where dnsmasq functions as a normal DHCP server, providing IP leases.
    # dhcp-range=,,8h
    # For static client IPs, and only for the private subnets,
    # you may put entries like this:
    # dhcp-host=00:20:e0:3b:13:af,,client111,infinite

  • Moderator

    @cleric.marcos Wait, you never said you were running dnsmasq. We need all info or we make assumptions based on what we think you have.

    Please post your dnsmasq configuration here.

  • @Tom-Elliott after i made the changes i restart the service (/etc/init.d/dnsmasq restart)
    do you think I have to wait and install the FOG 1.3.5 RC 15? I see that they remove the pxelinux.0 default file

  • Senior Developer

    @cleric.marcos I think you need to be clear.

    You made the change, but this appears to be a linux service. After making the change did you restart the service?

  • @george1421 I did the change, but it happens the same. kernel panic.

  • Moderator

    @cleric.marcos for legacy/bios systems yes that is correct.

  • @george1421
    It will be like this?


  • Moderator

    @cleric.marcos Yes for sure. You MUST change the iPXE boot file to undionly.kpxe for legacy (bios) hosts or ipxe.efi for uefi systems. Pxelinux.0 will cause the exact error message you are seeing. That image is old and only left in fog for a highly specific reason (which you don’t need).

  • @Tom-Elliott Yes, is trying to hand out the pxelinux.0

    # The boot filename.

    Do I have to change it to some other?

  • Moderator

    @cleric.marcos OK I’m a bit lost where exactly we are in this thread. Because we’ve jumped around a bit.

    I just want to reconfirm everything here.

    1. You updated your campus dhcp server to set dhcp option 66 {next-server} should be the IP address of your FOG server.
    2. You set dhcp option 67 {boot-file} should be undionly.kpxe

    This is currently what you have setup?

  • @george1421 I did the changes in the dhcp, but the result war the same.
    i follow this tutorial, and the transaction of the image is working, and the xinit the menu shows me the options, but when i select to inventory o any other option, the kernel panic message appear.
    in fact, i select deploy, login with the credentials, and ir shows me the image definition that i previously create on the web management, so i asume that this has to be something with the kernel or image booting.

    Thank you so much for the help!

  • Senior Developer

    @cleric.marcos What do you mean?

    Is your dhcp server trying to hand out pxelinux.0

Log in to reply





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