#!/bin/bash
# Teste Veeam->WCI: flat.vmdk (raw) -> qcow2 local -> ntfsfix (NTFS sujo de backup a quente) -> virt-v2v (virtio)
export LIBGUESTFS_BACKEND=direct TMPDIR=/NFS01/migrate/.guestfs-tmp LIBGUESTFS_CACHEDIR=/NFS01/migrate/.guestfs-tmp VIRTIO_WIN=/tmp/virtio-win.iso
SRC=/mnt/veeam-export/ALPC-ACCESS/EV28645-ALPC-ACCESS_Disk_EV28645-ALPC-ACCESS-flat.vmdk
OUT=/NFS01/migrate/v2v-ALPC-ACCESS-TESTE; mkdir -p $OUT; Q=$OUT/src.qcow2
if [ ! -f $Q.ok ]; then echo "$(date +%T) qemu-img raw->qcow2"; qemu-img convert -f raw -O qcow2 "$SRC" $Q && touch $Q.ok || { echo "FALHA qemu-img"; exit 1; }; fi
echo "$(date +%T) ntfs: estado e ntfsfix"
NTFS=$(virt-filesystems --long -a $Q | awk "\$3==\"ntfs\" {print \$1, \$NF}" | sort -k2 -n | tail -1 | cut -d" " -f1)
echo "particao Windows: $NTFS"
guestfish --rw -a $Q <<GF
run
ntfsfix $NTFS clearbadsectors:false
-mount-ro $NTFS /
-is-file /hiberfil.sys
-umount-all
GF
guestfish --rw -a $Q -m $NTFS:/:remove_hiberfile:ntfs-3g <<GF 2>&1 | tail -3
-rm-f /hiberfil.sys
GF
echo "$(date +%T) INICIO virt-v2v"
virt-v2v -i disk -if qcow2 $Q -o local -of qcow2 -os $OUT -on ALPC-ACCESS-TESTE; RC=$?
echo "$(date +%T) FIM virt-v2v rc=$RC"
ls -la $OUT
