• Extraer discos de máquinas virtuales de PVE directamente desde una unidad LVM

    Si tenemos el volumen local-lvm de proxmox en un disco aparte, y queremos rescatar los discos de esas máquinas virtuales directamente desde el volumen montándolo en otro Linux, procedemos de esta forma:

    Primero, para ver los volúmenes tvm-thin que tiene ese disco, ejecutamos como root:

    lvdisplay

    Nos dará una salida como esta:

    --- Logical volume ---
    LV Path /dev/pve/vm-211-disk-0
    LV Name vm-221-disk-0
    VG Name pve
    LV UUID aaaaaa-aaaa-aaaa-aaaa-aaaa-aaaa-aaaaaa
    LV Write Access read/write
    LV Creation host, time ibpve1, 2025-11-20 21:02:12 +0100
    LV Pool name data
    LV Status NOT available
    LV Size 60,00 GiB Current LE 15360 Segments 1 Allocation inherit Read ahead sectors auto
    
    --- Logical volume ---
    LV Path /dev/pve/vm-221-disk-0
    LV Name vm-211-disk-0 VG Name pve
    LV UUID bbbbbb-bbbb-bbbb-bbbb-bbbb-bbbb-bbbbbb
    LV Write Access read/write
    LV Creation host, time ibpve1, 2025-11-20 21:04:11 +0100
    LV Pool name data
    LV Status NOT available
    LV Size 100,00 GiB Current LE 25600 Segments 1 Allocation inherit Read ahead sectors auto
    
    --- Logical volume ---
    LV Path /dev/pve/vm-231-disk-0
    LV Name vm-231-disk-0
    VG Name pve
    LV UUID cccccc-cccc-cccc-cccc-cccc-cccc-cccccc
    LV Write Access read/write
    LV Creation host, time ibpve1, 2025-11-23 02:51:50 +0100
    LV Pool name data
    LV Status NOT available
    LV Size 60,00 GiB Current LE 15360 Segments 1 Allocation inherit Read ahead sectors auto

    De esa salida podemos observar que hay tres discos de máquinas virtuales:

    /dev/pve/vm-211-disk-0
    /dev/pve/vm-221-disk-0
    /dev/pve/vm-231-disk-0

    Desactivamos el thin-pool:

    vgchange -an pve

    Activamos el thin-volume de las tres máquinas virtuales:

    lvchange -ay /dev/pve/vm-211-disk-0
    lvchange -ay /dev/pve/vm-221-disk-0
    lvchange -ay /dev/pve/vm-231-disk-0

    Clonamos los tres discos, por ejemplo, dentro de la carpeta /root:

    qemu-img convert -p -f raw -O raw -S 4k /dev/pve/vm-211-disk-0 /root/vm-211-disk-0.raw
    qemu-img convert -p -f raw -O raw -S 4k /dev/pve/vm-221-disk-0 /root/vm-221-disk-0.raw
    qemu-img convert -p -f raw -O raw -S 4k /dev/pve/vm-231-disk-0 /root/vm-231-disk-0.raw

    Verificamos que la clonación creó volúmenes correctos:

    qemu-img info /root/vm-211-disk-0.raw
    qemu-img info /root/vm-221-disk-0.raw
    qemu-img info /root/vm-231-disk-0.raw

    Desactivamos primero los LVs de las VMs y luego el VG completo::

    sync
    lvchange -an /dev/pve/vm-211-disk-0
    lvchange -an /dev/pve/vm-221-disk-0
    lvchange -an /dev/pve/vm-231-disk-0
    vgchange -an pve

    Luego, opcionalmente, podemos expulsar el disco donde está el lvm:

    blockdev --flushbufs /dev/sdh
    echo 1 > /sys/block/sdh/device/delete

    Los comentarios están cerrados.