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 MENU
You 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.kernel
for pxe booting that
localhost.kernel
should be the kernel name exactlylocalhost.kernel
not 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 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 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=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.
-
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