Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-97179

Guest with OS installed on a RAID can't boot into OS after v2v conversion if the root partition is not on the first disk [rhel-10.1]

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • rhel-10.1
    • virt-v2v
    • No
    • Assignee, Qa Contact, Doc Contact, AssignedTeam, Watchers, Developer
    • None
    • rhel-virt-tools
    • None
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • Manual
    • Unspecified
    • Unspecified
    • Unspecified
    • x86_64
    • None

      Description of problem:
      Guest with OS installed on a RAID can't boot into OS after v2v conversion if the root partition is not on the first disk

      Version-Release number of selected component (if applicable):
      seabios-bin-1.16.3-7.el10.noarch
      virt-v2v-2.8.0-1.el10.x86_64
      libguestfs-fssupport-10.1-2.el10.x86_64
      libguestfs-1.56.0-1.el10.1.x86_64
      nbdkit-1.42.2-8.el10.x86_64
      libnbd-1.22.2-1.el10.x86_64
      libvirt-libs-11.4.0-1.el10.x86_64
      qemu-img-10.0.0-5.el10.x86_64

      How reproducible:
      100%

      Steps:
      1. Prepare a  guest with OS installed on a RAID on VMware env

      # lsblk
      NAME      MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS
      sr0        11:0    1 1024M  0 rom   
      sda       254:0    0   10G  0 disk  
      └─sda1    254:1    0  512M  0 part  /boot/efi
      sdb       254:16   0   10G  0 disk  
      └─md0       9:0    0   20G  0 raid0 
        ├─md0p1 259:0    0 15.7G  0 part  /var
        │                                 /opt
        │                                 /tmp
        │                                 /usr/local
        │                                 /root
        │                                 /srv
        │                                 /boot/grub2/x86_64-efi
        │                                 /boot/grub2/i386-pc
        │                                 /.snapshots
        │                                 /
        ├─md0p2 259:1    0    2G  0 part  [SWAP]
        └─md0p3 259:2    0    2G  0 part  /home
      sdc       254:32   0   10G  0 disk  
      └─md0       9:0    0   20G  0 raid0 
        ├─md0p1 259:0    0 15.7G  0 part  /var
        │                                 /opt
        │                                 /tmp
        │                                 /usr/local
        │                                 /root
        │                                 /srv
        │                                 /boot/grub2/x86_64-efi
        │                                 /boot/grub2/i386-pc
        │                                 /.snapshots
        │                                 /
        ├─md0p2 259:1    0    2G  0 part  [SWAP]
        └─md0p3 259:2    0    2G  0 part  /home

      2. Convert the guest from VMware by virt-v2v

      #  virt-v2v -ic vpx://non-admin%40vsphere.local@10.73.212.129/data/10.73.212.36/?no_verify=1  -it vddk -io vddk-libdir=/home/vddk8.0.3 -io vddk-thumbprint=CB:9F:B1:9D:33:49:6C:60:AD:3C:A5:16:77:91:5F:CD:1B:24:B1:43 -ip /home/passwd Auto-esx8.0-sles15sp6-x86_64-efi-with-raid0-btrfs
      [   0.4] Setting up the source: -i libvirt -ic vpx://non-admin%40vsphere.local@10.73.212.129/data/10.73.212.36/?no_verify=1 -it vddk Auto-esx8.0-sles15sp6-x86_64-efi-with-raid0-btrfs
      [   4.5] Opening the source
      [  25.5] Checking filesystem integrity before conversion
      [  76.3] Detecting if this guest uses BIOS or UEFI to boot
      [  76.9] Inspecting the source
      [  81.9] Checking for sufficient free disk space in the guest
      [  81.9] Converting SUSE Linux Enterprise Server 15 SP6 (sle15sp6) to run on KVM
      virt-v2v: warning: could not determine a way to update the configuration of 
      Grub2
      virt-v2v: The QEMU Guest Agent will be installed for this guest at first 
      boot.
      virt-v2v: This guest has virtio drivers installed.
      [ 104.0] Setting a random seed
      [ 104.1] SELinux relabelling
      [ 104.4] Mapping filesystem data to avoid copying unused and blank areas
      [ 113.9] Checking filesystem integrity after conversion
      [ 116.0] Closing the overlay
      [ 116.3] Assigning disks to buses
      [ 116.3] Checking if the guest needs BIOS or UEFI to boot
      virt-v2v: This guest requires UEFI on the target to boot.
      [ 116.3] Setting up the destination: -o libvirt
      [ 120.5] Copying disk 1/3
      █ 100% [****************************************]
      [ 341.5] Copying disk 2/3
      █ 100% [****************************************]
      [ 386.6] Copying disk 3/3
      █ 100% [****************************************]
      [ 427.6] Creating output metadata
      [ 427.6] Finishing off

      3. Power on the guest but found the guest can't boot into OS, check the guest libvirtxml as below

      # virsh dumpxml Auto-esx8.0-sles15sp6-x86_64-efi-with-raid0-btrfs
      ........
       <disk type='volume' device='disk'>
            <driver name='qemu' type='raw'/>
            <source pool='default' volume='Auto-esx8.0-sles15sp6-x86_64-efi-with-raid0-btrfs-sda'/>
            <target dev='vda' bus='virtio'/>
            <boot order='1'/>
            <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
          </disk>
          <disk type='volume' device='disk'>
            <driver name='qemu' type='raw'/>
            <source pool='default' volume='Auto-esx8.0-sles15sp6-x86_64-efi-with-raid0-btrfs-sdb'/>
            <target dev='vdb' bus='virtio'/>
            <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
          </disk>
          <disk type='volume' device='disk'>
            <driver name='qemu' type='raw'/>
            <source pool='default' volume='Auto-esx8.0-sles15sp6-x86_64-efi-with-raid0-btrfs-sdc'/>
            <target dev='vdc' bus='virtio'/>
            <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
          </disk>
      ........

      4. Power off the guest and modify the guest libvirtxml as follows to ensure all disks are selected in the boot menu

      # virsh dumpxml Auto-esx8.0-sles15sp6-x86_64-efi-with-raid0-btrfs
      ........
      <disk type='volume' device='disk'>
            <driver name='qemu' type='raw'/>
            <source pool='default' volume='Auto-esx8.0-sles15sp6-x86_64-efi-with-raid0-btrfs-sda' index='4'/>
            <backingStore/>
            <target dev='vda' bus='virtio'/>
            <boot order='1'/>
            <alias name='virtio-disk0'/>
            <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
          </disk>
          <disk type='volume' device='disk'>
            <driver name='qemu' type='raw'/>
            <source pool='default' volume='Auto-esx8.0-sles15sp6-x86_64-efi-with-raid0-btrfs-sdb' index='3'/>
            <backingStore/>
            <target dev='vdb' bus='virtio'/>
            <boot order='2'/>
            <alias name='virtio-disk1'/>
            <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
          </disk>
          <disk type='volume' device='disk'>
            <driver name='qemu' type='raw'/>
            <source pool='default' volume='Auto-esx8.0-sles15sp6-x86_64-efi-with-raid0-btrfs-sdc' index='2'/>
            <backingStore/>
            <target dev='vdc' bus='virtio'/>
            <boot order='3'/>
            <alias name='virtio-disk2'/>
            <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
          </disk>
      ......

      5. Power on the guest, then guest can boot into OS normally

      Actual result:
      As above description

      Expect result:
      Using `-boot strict=off` will "fix" the bug 

      Additional info
      Related bug https://bugzilla.redhat.com/show_bug.cgi?id=1924972

              virt-maint virt-maint
              mxie@redhat.com Ming Xie
              virt-maint virt-maint
              virt-bugs virt-bugs
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated: