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 MENUClients 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. 
- 
 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. 
- 
 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: - 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- 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
 
- PXE
- 
 @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 MENUYou got the kernel and initrd.cgz from the isolinux directory off the ISO? 
- 
 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”. 
- 
 @matekub You posted the config file exactly as it was presented to you? what confuses me is this reference to the kernel kernel /localhost.kernelfor pxe booting that localhost.kernelshould be the kernel name exactlylocalhost.kernelnot what you supplied askernel
- 
 sorry, I’ve changed filename in meantime 
- 
 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 pngMenu Startmenuentry ‘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 300label 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
- 
 @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=tty0converting 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=tty0This 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=tty0The 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.cgzSome of this is a bit of black art skills to make it work. 
- 
 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.cgzShould 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 addressBoth options (1,2) cause the same error. 
- 
 @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 addressIt 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 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
