REAR Backup Rescue and FOG Project



  • Hello,

    I want add REAR Rescue boot ISO to FOG PXE.

    I’ve copied all files (initrd.cgz and kernel) to TFTP root folder and it is visible on server.

    I’ve added new entry to PXE by using GUI: Parameters are:

    kernel tftp://${fog-ip}/kernel
    initrd tftp://${fog-ip}/initrd.cgz
    imgargs initrd=initrd.cgz root=/dev/ram0
    boot || goto MENU

    Clients are able to connect to PXE server, download kernel, download initrd.cgz and then start kernel: then I was facing the issue - Kernel panic - not syncing: VFS: Unable to mount root fs on unknow-block(0,0)

    Something is wrong with my settings or names? This is my first time with FOG.



  • Thanks for your time and response.

    Yes, any of those 3 commands didn’t work.

    Based on information from that topic in REAR GitHub - the user after using PXE mode, they had pxelinux config and probably as you mentioned kernel (kernel file) and maybe file system (initrg.cgz) for BIOS, not UEFI.
    I guess i have the same and trying to boot on UEFI system.

    How to determine which file is for UEFI? I guess it should be part of ISO which works fine on BIOS and UEFI system.

    I have this content of ISO:

    Then I have this content in ISO:
    EFI G:\EFI
    boot G:\boot
    isolinux G:\isolinux
    BOOT G:\EFI\BOOT
    fonts G:\EFI\BOOT\fonts
    locale G:\EFI\BOOT\locale
    BOOTX64.efi G:\EFI\BOOT\BOOTX64.efi
    embedded_grub.cfg G:\EFI\BOOT\embedded_grub.cfg
    grub.cfg G:\EFI\BOOT\grub.cfg
    grubx64.efi G:\EFI\BOOT\grubx64.efi
    grub G:\boot\grub
    efiboot.img G:\boot\efiboot.img
    grub.cfg G:\boot\grub\grub.cfg
    boot.cat G:\isolinux\boot.cat
    chain.c32 G:\isolinux\chain.c32
    hdt.c32 G:\isolinux\hdt.c32
    initrd.cgz G:\isolinux\initrd.cgz
    isolinux.bin G:\isolinux\isolinux.bin
    isolinux.cfg G:\isolinux\isolinux.cfg
    kernel G:\isolinux\kernel
    ldlinux.c32 G:\isolinux\ldlinux.c32
    libcom32.c32 G:\isolinux\libcom32.c32
    libgpl.c32 G:\isolinux\libgpl.c32
    libmenu.c32 G:\isolinux\libmenu.c32
    libutil.c32 G:\isolinux\libutil.c32
    menu.c32 G:\isolinux\menu.c32
    message G:\isolinux\message
    pci.ids G:\isolinux\pci.ids
    rear.help G:\isolinux\rear.help
    reboot.c32 G:\isolinux\reboot.c32
    vesamenu.c32 G:\isolinux\vesamenu.c32


  • Moderator

    @matekub said in REAR Backup Rescue and FOG Project:

    Then he did this:
    linuxefi /node4.kernel
    initrdefi /node4.initrd.cgz
    Should I add a command like LINUXEFI and INITRDFI?

    These are grub specific commands. They tell grub to uefi boot these kernels. Adding them to iPXE will cause ipxe to error with unknown command.

    EFI Stub: Error: Failed to alloc highmem for files
    Trying to load files to higher address

    It almost sounds like you are trying to boot a bios kernel on a uefi system or the other way around. Did option 3 just error out?



  • Thanks. Checking it. It was very helpful.

    But what about GRUB settings and EFI parameters like this? It was mentioned in that post\issue - that created and used by my files are not for EFI

    Then he did this:
    linuxefi /node4.kernel
    initrdefi /node4.initrd.cgz

    Should I add a command like LINUXEFI and INITRDFI?

    Sorry I’m quite new in this area 😞

    UPDATE: (Checked)
    Now, I don’t have KERNEL PANIC - not syncing VFS - Unable to mount root FS on unknown block(0,0).

    Now, I’ve got error message before loading kernel:

    EFI Stub: Error: Failed to alloc highmem for files
    Trying to load files to higher address

    Both options (1,2) cause the same error.


  • Moderator

    @matekub said in REAR Backup Rescue and FOG Project:

    kernel /node4.kernel
    append initrd=/node4.initrd.cgz root=/dev/ram0 vga=normal rw selinux=0 console=ttyS0,9600 console=tty0

    converting syslinux commands over to iPXE is not hard because both have a similar lineage. So in iPXE format the command would look like this.

    kernel tftp://${fog-ip}/node4.kernel
    initrd tftp://${fog-ip}/node4.initrd.cgz
    imgargs initrd=node4.initrd.cgz root=/dev/ram0 vga=normal rw selinux=0 console=ttyS0,9600 console=tty0
    

    This would assume that you had a node4.kernel and node4.initrd.cgz in the /tftpboot directory.

    The grub menus are similar to syslinux and iPXE. But for grub I don’t see it pass any kernel parameters.

    Now there are two variations of the above menu depending how the kernel deals with kernel parameters.

    The first one inserts the kernel name just before initrd.

    kernel tftp://${fog-ip}/node4.kernel
    initrd tftp://${fog-ip}/node4.initrd.cgz
    imgargs node4.kernel initrd=node4.initrd.cgz root=/dev/ram0 vga=normal rw selinux=0 console=ttyS0,9600 console=tty0
    

    The second alternate method is by appending the imgargs to the end of the kernel call line and imgargs are not used.

    kernel tftp://${fog-ip}/node4.kernel initrd=node4.initrd.cgz root=/dev/ram0 vga=normal rw selinux=0 console=ttyS0,9600 console=tty0
    initrd tftp://${fog-ip}/node4.initrd.cgz
    

    Some of this is a bit of black art skills to make it work.



  • I guess this may be the issue - https://github.com/rear/rear/issues/2359
    I’ve also probably have files for BIOS, not UEFI.

    But how to add entry in FOG that can be handled by GRUB like in above issue?

    This is a workaround mentioned in that topic:

    Workaround:
    i have create the file grub.cfg and calling the kernel and initrd.cgz files
    [root@PXE-BOOT /]# cat /var/lib/tftpboot/efi.x64/grub.cfg
    set menu_color_normal=white/black
    set menu_color_highlight=black/light-gray
    set timeout=30
    insmod png

    Menu Start

    menuentry ‘Boot from Local Drive’ {
    exit
    }
    menuentry ‘Rear Recover for node4’ {
    linuxefi /node4.kernel
    initrdefi /node4.initrd.cgz
    }
    menuentry ‘Rear Recover for node5’ {
    linuxefi /node5.kernel
    initrdefi /node5.initrd.cgz
    }

    Because I’ve generated this and trying those settings in FOG:
    Recover mkbackup created the file rear-node4 suitable for BIOS not UEFI
    [root@PXE-BOOT node4]# cat rear-node4
    default hd
    prompt 1
    timeout 300

    label hd
    localboot -1
    say ENTER - boot local hard disk
    say --------------------------------------------------------------------------------
    display /node4.message
    say ----------------------------------------------------------
    say rear = disaster recover this system with Relax-and-Recover
    label rear
    kernel /node4.kernel
    append initrd=/node4.initrd.cgz root=/dev/ram0 vga=normal rw selinux=0 console=ttyS0,9600 console=tty0



  • sorry, I’ve changed filename in meantime


  • Moderator

    @matekub You posted the config file exactly as it was presented to you?

    what confuses me is this reference to the kernel

    kernel /localhost.kernel
    

    for pxe booting that localhost.kernel should be the kernel name exactly localhost.kernel not what you supplied as kernel



  • No, I have kernel and initrd from PXE option in REAR - then it doesn’t create ISO, only files with kernel and initrd + above config for “PXE Server”.


  • Moderator

    @matekub said in REAR Backup Rescue and FOG Project:

    I see you were missing a few kernel arguments, but that shouldn’t have had an impact on the kernel mounting the filesystem.

    kernel tftp://${fog-ip}/kernel
    initrd tftp://${fog-ip}/initrd.cgz
    imgargs initrd=initrd.cgz root=/dev/ram0 vga=normal rw selinux=0
    boot || goto MENU
    

    You got the kernel and initrd.cgz from the isolinux directory off the ISO?



  • Thanks for your help. Really appreciate.

    I’d like to add this backup boot media to Fog: https://relax-and-recover.org/

    When I build REAR Backup Rescue I can select as output PXE and ISO build:

    1. PXE
      Then I have:
      kernel and initrd.cgz file + config file:
    default hd
    prompt 1
    timeout 300
    
    label hd
        localboot -1
        say ENTER - boot local hard disk
        say --------------------------------------------------------------------------------
        display /localhost.message
        say ----------------------------------------------------------
        say rear = disaster recover this system with Relax-and-Recover
    label rear
        kernel /localhost.kernel
        append initrd=/localhost.initrd.cgz root=/dev/ram0 vga=normal rw  selinux=0 
    
    1. ISO
      Then I have this content in ISO:
      EFI G:\EFI
      boot G:\boot
      isolinux G:\isolinux
      BOOT G:\EFI\BOOT
      fonts G:\EFI\BOOT\fonts
      locale G:\EFI\BOOT\locale
      BOOTX64.efi G:\EFI\BOOT\BOOTX64.efi
      embedded_grub.cfg G:\EFI\BOOT\embedded_grub.cfg
      grub.cfg G:\EFI\BOOT\grub.cfg
      grubx64.efi G:\EFI\BOOT\grubx64.efi
      grub G:\boot\grub
      efiboot.img G:\boot\efiboot.img
      grub.cfg G:\boot\grub\grub.cfg
      boot.cat G:\isolinux\boot.cat
      chain.c32 G:\isolinux\chain.c32
      hdt.c32 G:\isolinux\hdt.c32
      initrd.cgz G:\isolinux\initrd.cgz
      isolinux.bin G:\isolinux\isolinux.bin
      isolinux.cfg G:\isolinux\isolinux.cfg
      kernel G:\isolinux\kernel
      ldlinux.c32 G:\isolinux\ldlinux.c32
      libcom32.c32 G:\isolinux\libcom32.c32
      libgpl.c32 G:\isolinux\libgpl.c32
      libmenu.c32 G:\isolinux\libmenu.c32
      libutil.c32 G:\isolinux\libutil.c32
      menu.c32 G:\isolinux\menu.c32
      message G:\isolinux\message
      pci.ids G:\isolinux\pci.ids
      rear.help G:\isolinux\rear.help
      reboot.c32 G:\isolinux\reboot.c32
      vesamenu.c32 G:\isolinux\vesamenu.c32

  • Moderator

    The unable to mount root fs means the kernel is having an issue connecting to the virtual hard drive (initrd). Your settings look right as long as “kernel” is matched to the initrd.cgz file it should boot. The only thing I can think is there are additional kernel parameters (imgargs) that might be required.

    So on that rescue cd is the boot loader based on grub or syslinux? Is there a grub.cfg, syslinux.cfg, or isolinux.cfg file? Is there a pxelinux directory on the ISO? These might contain additional kernel parameters needed to boot the kernel.


Log in to reply
 

201
Online

7.2k
Users

14.4k
Topics

135.6k
Posts