Hi
I am trying to solve this above issue. The problem happens when we convert RHEL 7.9
VMware VM using virt-v2v to KVM (not limited to RHEL 7.9). These are the steps
1. Create a RHEL7.9 VM in vmware
2. Boot the VM in VMware, and change the /etc/fstab to have /dev/sda* instead of FS
partition UUID where initramfs and vmlinuz are to be found.
3. Power down the VM
4. Use virt-v2v to convert the VM - successfully done
5. If we try to boot the converted VM, the error messages show up
error: can't find command linux16
error: can't find command initrd16
While debugging the problem - I localized the source which in my understanding could be
problematic
In File virt-v2v/convert/convert_linux.ml
Line Number ~1265
if String.starts_with "/files/etc/crypttab" path &&
String.starts_with "/dev/sd" value then (
try
let uuid = g#vfs_uuid value in
"UUID=" ^ uuid
with ex ->
warning (f_"failed to translate encrypted device name %s to a UUID \
in /etc/crypttab. This may prevent the guest from booting \
after conversion. You may have to manually change the file and \
reconvert. The original error was: %s")
value (Printexc.to_string ex);
adjusted_dev
) else
adjusted_dev
This is from function remap_block_devices, while it checks for /etc/crypttab and device
file, and determines the UUID of the device file, it does not seem to consider /etc/fstab
entries for similar exercise. This seems to be related to the problem at hand.
Wanted to know if my thinking is on the right line. Appreciate any inputs