#!/bin/bash
# Roda NO nfs01. ntfsfix -> virt-v2v -> fix-boot no disco de boot do KAMELL.
# Pre-requisito: /NFS01/migrate/ENSAIO-KAMELL/KAMELL-disk-0.qcow2 convertido.
set -eu
D=/NFS01/migrate/ENSAIO-KAMELL
S() { echo "$SUDOPW" | sudo -S "$@"; }
: "${SUDOPW:?exporte SUDOPW}"
mkdir -p "$D/v2vtmp" && chmod 777 "$D/v2vtmp"
export LIBGUESTFS_BACKEND=direct LIBGUESTFS_CACHEDIR="$D/v2vtmp" TMPDIR="$D/v2vtmp"

echo "=== [1] ntfsfix em todas as NTFS"
S modprobe nbd max_part=16
S qemu-nbd -c /dev/nbd0 "$D/KAMELL-disk-0.qcow2"
sleep 5; S partprobe /dev/nbd0 || true
lsblk /dev/nbd0 || true
for P in /dev/nbd0p*; do
  T=$(S blkid -o value -s TYPE "$P" 2>/dev/null || true)
  echo "  $P tipo=$T"
  [ "$T" = "ntfs" ] && S ntfsfix -d "$P" || true
done
S qemu-nbd -d /dev/nbd0
sleep 2

echo "=== [2] virt-v2v (injeta virtio; origem SATA/e1000)"
S env LIBGUESTFS_BACKEND=direct LIBGUESTFS_CACHEDIR="$D/v2vtmp" TMPDIR="$D/v2vtmp" \
   VIRTIO_WIN=/tmp/virtio-win.iso \
   virt-v2v -v -x -i disk "$D/KAMELL-disk-0.qcow2" -o local -of qcow2 -os "$D" -on KAMELL-boot
ls -la "$D"

echo "=== [3] renomear a saida (-o local gera <nome>-sda SEM extensao)"
[ -f "$D/KAMELL-boot-sda" ] && S mv "$D/KAMELL-boot-sda" "$D/KAMELL-boot.qcow2"
S qemu-img info "$D/KAMELL-boot.qcow2" | head -5

echo "=== [4] fix-boot-windows.sh (origem GPT/UEFI -> MBR)"
S bash /NFS01/migrate/fix-boot-windows.sh "$D/KAMELL-boot.qcow2"

echo "=== [5] layout final"
S qemu-nbd -c /dev/nbd0 "$D/KAMELL-boot.qcow2"; sleep 4; S partprobe /dev/nbd0 || true
S fdisk -l /dev/nbd0
S qemu-nbd -d /dev/nbd0
echo "=== FIM OK"
