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

Guest whose OS is installed multiple disks but boot partition is installed on single disk can't boot into OS [rhel-9.7]

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

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • rhel-9.7
    • virt-v2v
    • None
    • No
    • None
    • rhel-virt-confidential-firmware
    • None
    • False
    • False
    • Hide

      None

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

      Description of problem:
      Guest whose OS is installed multiple disks but boot partition is installed on single disk can't boot into OS 

      Version-Release number of selected component (if applicable):
      seabios-bin-1.16.3-4.el9.noarch
      virt-v2v-2.7.1-12.el9.x86_64
      libguestfs-1.54.0-8.el9.x86_64
      guestfs-tools-1.52.2-5.el9.x86_64
      qemu-img-9.1.0-23.el9.x86_64
      nbdkit-1.38.5-10.el9.x86_64
      libnbd-1.20.3-4.el9.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 MOUNTPOINT
      sda             8:0    0    5G  0 disk 
      └─sda1          8:1    0    5G  0 part 
        ├─rhel-root 253:0    0   26G  0 lvm  /
        └─rhel-swap 253:1    0    3G  0 lvm  [SWAP]
      sdb             8:16   0    7G  0 disk 
      └─sdb1          8:17   0    7G  0 part 
        └─rhel-root 253:0    0   26G  0 lvm  /
      sdc             8:32   0    8G  0 disk 
      └─sdc1          8:33   0    8G  0 part 
        └─rhel-root 253:0    0   26G  0 lvm  /
      sdd             8:48   0   10G  0 disk 
      ├─sdd1          8:49   0    1G  0 part /boot
      └─sdd2          8:50   0    9G  0 part 
        └─rhel-root 253:0    0   26G  0 lvm  /
      sr0            11:0    1 1024M  0 rom  

      2. Convert the guest from VMware by virt-v2v

      #  virt-v2v -ic vpx://administrator%40vsphere.local@10.73.213.102/data/10.73.212.38/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk7.0.3 -io  vddk-thumbprint=86:25:2F:5E:74:5C:43:D9:28:62:31:E0:1F:BB:1F:FD:AC:18:A5:93  -ip /home/passwd Auto-esx7.0-rhel7.5-multi-disks
      [   0.3] Setting up the source: -i libvirt -ic vpx://administrator%40vsphere.local@10.73.213.102/data/10.73.212.38/?no_verify=1 -it vddk Auto-esx7.0-rhel7.5-multi-disks
      [   5.9] Opening the source
      [  26.0] Inspecting the source
      [  53.7] Checking for sufficient free disk space in the guest
      [  53.7] Converting Red Hat Enterprise Linux Server 7.5 (Maipo) (rhel7.5) to run on KVM
      virt-v2v: This guest has virtio drivers installed.
      [ 241.9] Setting a random seed
      [ 241.9] SELinux relabelling
      [ 291.8] Mapping filesystem data to avoid copying unused and blank areas
      [ 294.2] Closing the overlay
      [ 294.5] Assigning disks to buses
      [ 294.5] Checking if the guest needs BIOS or UEFI to boot
      [ 294.5] Setting up the destination: -o libvirt
      [ 305.3] Copying disk 1/4
      █ 100% [****************************************]
      [ 469.1] Copying disk 2/4
      █ 100% [****************************************]
      [ 489.7] Copying disk 3/4
      █ 100% [****************************************]
      [ 508.8] Copying disk 4/4
      █ 100% [****************************************]
      [ 557.5] Creating output metadata
      [ 557.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-esx7.0-rhel7.5-multi-disks
      ........
      <disk type='volume' device='disk'>
            <driver name='qemu' type='raw'/>
            <source pool='default' volume='Auto-esx7.0-rhel7.5-multi-disks-sda' index='4'/>
            <backingStore/>
            <target dev='vda' bus='virtio'/>
            <alias name='virtio-disk0'/>
            <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
          </disk>
          <disk type='volume' device='disk'>
            <driver name='qemu' type='raw'/>
            <source pool='default' volume='Auto-esx7.0-rhel7.5-multi-disks-sdb' index='3'/>
            <backingStore/>
            <target dev='vdb' bus='virtio'/>
            <alias name='virtio-disk1'/>
            <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-esx7.0-rhel7.5-multi-disks-sdc' index='2'/>
            <backingStore/>
            <target dev='vdc' bus='virtio'/>
            <alias name='virtio-disk2'/>
            <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-esx7.0-rhel7.5-multi-disks-sdd' index='1'/>
            <backingStore/>
            <target dev='vdd' bus='virtio'/>
            <alias name='virtio-disk3'/>
            <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-esx7.0-rhel7.5-multi-disks-sda' index='4'/>
            <backingStore/>
            <target dev='vda' bus='virtio'/>
            <boot order='1'/>
            <alias name='virtio-disk0'/>
            <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
          </disk>
          <disk type='volume' device='disk'>
            <driver name='qemu' type='raw'/>
            <source pool='default' volume='Auto-esx7.0-rhel7.5-multi-disks-sdb' index='3'/>
            <backingStore/>
            <target dev='vdb' bus='virtio'/>
            <boot order='2'/>
            <alias name='virtio-disk1'/>
            <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-esx7.0-rhel7.5-multi-disks-sdc' index='2'/>
            <backingStore/>
            <target dev='vdc' bus='virtio'/>
            <boot order='3'/>
            <alias name='virtio-disk2'/>
            <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-esx7.0-rhel7.5-multi-disks-sdd' index='1'/>
            <backingStore/>
            <target dev='vdd' bus='virtio'/>
            <boot order='4'/>
            <alias name='virtio-disk3'/>
            <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, related bug https://bugzilla.redhat.com/show_bug.cgi?id=1924972

      Additional info

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

                Created:
                Updated: