Oracle Linux 7.9 Replication from on perm to OCI not  Booting in to OS looping in to cycle 


Background :


Source server Oracle Linux 7.9  with the below configuration 

 / ( root ) file system is not an LVM  

/usr ( or any other critical OS directory ) is on LVM


When we migrate this kind of configuration server  from  On perm to OCI Target server not able to boot back in to OS



Environment details : 


RMM v7.4.0.583

Oracle Linux Server 7.9

Host sync autoprovision   



Issue: 


Target will not boot in to OS , RMM host sync will fail with the below error 


Timed out while waiting for xxxx-tgt to boot into the host operating system 


Symptoms :


Target will be looping in to  cycle as given in the below screen shot  if we force reboot target from OCI console and  select Rackware microkernel in the boot menu will boot in to Rackware micro kernel 





Root cause:


 /(root ) file system not and lvm and /usr ( or other critical directory is on LVM )  server is not able to determine where the /usr configuration is present


 

Patch to Fix the issue :


If root / is on LVM then this would work without issue.

We also have temporary patch . If you exclude any file systems that is on LVM it could cause an issue.


To apply the patch


copy patch  to /opt/rackware on the RMM server
then run
patch -p1 < usr-bootfix.patch


Manual Work around :  

If you have another server that has issues like this, and you don't have the patch you can manually boot by checking source kernel parameters
cat /proc/cmdline

take each rd.lvm value from the source, and manually add it to the line like
kernel<uefi|16>=/vmlinuz-

ex: rd.lvm.lv=ol/usr

linux16 /vmlinuz-3.10.0-1127.el7.x86_64 root=/dev/mapper/ol-root ro crashkernel=auto rd.lvm.lv=ol/user rhgb quiet LANG=en_US.UTF-8


This will be a one time boot.
then you can run
rw host release <rmm friendly name>

then modify /etc/default/grub
add the same rd.lvm values from above into the line:
GRUB_CMDLINE_LINUX=

after that is modified, you need to generate the grub.cfg
on uefi this will usually be /boot/efi/EFI/redhat/grub.cfg
bios: /boot/grub2/grub.cfg

grub2-mkconfig -o <grub-cfg file here>

It is a good idea to back it up before running this.