Bug 2140548
| Summary: | [RFE] virt-v2v can't convert windows guest if C drive is dynamic | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 9 | Reporter: | mxie <mxie> | ||||
| Component: | virt-v2v | Assignee: | Virtualization Maintenance <virt-maint> | ||||
| Status: | CLOSED MIGRATED | QA Contact: | Virtualization Bugs <virt-bugs> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | medium | ||||||
| Version: | 9.2 | CC: | chhu, hongzliu, juzhou, lersek, mzhan, rjones, tyan, tzheng, vwu, xiaodwan | ||||
| Target Milestone: | rc | Keywords: | FutureFeature, MigratedToJIRA, Triaged | ||||
| Target Release: | --- | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2023-07-07 20:45:45 UTC | Type: | Feature Request | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
We don't support virt-v2v with the system disk on a dynamic drive at the moment, although we did write some experimental tooling to handle it: https://github.com/mdbooth/libldm (This is not packaged in RHEL) This is the closest existing bug I can find related to this: https://bugzilla.redhat.com/show_bug.cgi?id=2068173 I'm not certain if it's common for the system drive to use LDM (I actually thought it was not possible before reading this bug), but the request to support this would need to come from a customer. FWIW I tried this on Fedora and it revealed an upstream bug in libguestfs, now fixed here: https://github.com/libguestfs/libguestfs/commit/d5472a221905116e2133e923dae89fb9fb7f2f26 (This does not affect RHEL, nor does it fix this bug) After fixing this, virt-v2v incorrectly detects the guest as multi-boot: Dual- or multi-boot operating system detected. Choose the root filesystem that contains the main operating system from the list below: [1] /dev/mapper/ldm_vol_DESKTOP-ONJ2VA0-Dg0_Volume1 (Windows 10 Enterprise LTSC 2021) [2] /dev/mapper/ldm_vol_DESKTOP-ONJ2VA0-Dg0_Volume1 (Windows 10 Enterprise LTSC 2021) Enter a number between 1 and 2, or ‘exit’: I think this is related to https://listman.redhat.com/archives/libguestfs/2022-March/028493.html I added "--root first" to the virt-v2v command line to pick one of these, but it failed later: mount: /sysroot/Windows/Temp/ESP_8NeuBD: /dev/sda1 already mounted or mount point busy. dmesg(1) may have more information after failed mount system call. ocaml_exn: 'mount' raised 'Failure' exception guestfsd: error: mount exited with status 32: mount: /sysroot/Windows/Temp/ESP_8NeuBD: /libguestfs: trace: v2v: mount = -1 (error) virt-v2v: error: libguestfs error: mount: mount exited with status 32: mount: /sysroot/Windows/Temp/ESP_8NeuBD: /dev/sda1 already mounted or mount point busy. dmesg(1) may have more information after failed mount system call. So this still won't work (not to mention that ldmtool would have to be packaged for RHEL which is another kettle of fish). I'll opt to 'park' this on the backlog for the time being. I'd like to understand how popular the use of a dynamic system disk in virtualized windows guests is first.. Rich: is this documented as a standing limitation in the product documentation? Thanks, -Klaus I thought it was, but I checked now (both upstream and downstream) and in fact we do not document this limitation at present. As it would be worth documenting it, I pushed this: https://github.com/libguestfs/virt-v2v/commit/6aa09ca0a9e912e1ae2e984b384ee54eb5d5b3aa |
Created attachment 1922663 [details] vmware-win10-LDM.png Description of problem: virt-v2v can't convert windows guest if C drive is dynamic Version-Release number of selected component (if applicable): virt-v2v-2.0.7-6.el9.x86_64 libguestfs-1.48.4-2.el9.x86_64 guestfs-tools-1.48.2-7.el9.x86_64 libvirt-libs-8.9.0-2.el9.x86_64 qemu-img-7.1.0-4.el9.x86_64 nbdkit-server-1.30.8-1.el9.x86_64 libnbd-1.12.6-1.el9.x86_64 How reproducible: 100% Steps to Reproduce: 1.Prepare a windows guest on VMware 2.Convert C drive from basic to dynamic in disk management, pls refer to attached screenshot 3.Convert the guest from VMware by v2v # virt-v2v -ic vpx://root.213.107/data/10.73.212.38/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk7.0.3 -io vddk-thumbprint=87:F9:29:E7:33:DE:34:68:74:3F:6A:C9:61:96:C3:51:E2:1E:EA:2B -ip /home/passwd esx7.0-win10-x86_64-LDM [ 1.3] Setting up the source: -i libvirt -ic vpx://root.213.107/data/10.73.212.38/?no_verify=1 -it vddk esx7.0-win10-x86_64-LDM [ 3.3] Opening the source [ 13.5] Inspecting the source virt-v2v: error: inspection could not detect the source guest (or physical machine). Assuming that you are running virt-v2v/virt-p2v on a source which is supported (and not, for example, a blank disk), then this should not happen. No root device found in this operating system image. If reporting bugs, run virt-v2v with debugging enabled and include the complete output: virt-v2v -v -x [...] Actual results: As above description Expected results: virt-v2v can convert windows guest if C drive is dynamic Additional info: