#!/bin/bash
# Roda NO HELPER (177.85.38.249). Prepara os discos do banco do Multiseg ANTES do primeiro boot:
#  - formata o /database-backup novo (vdd)
#  - cresce o /database de 602 -> 800 G (vdb, offline)
#  - reescreve o fstab do guest por UUID (o erro que travou o Guimaraes)
set -eu
echo "=== 1) formatando o /database-backup (vdd, volume NOVO de 200 G)"
sudo parted -s /dev/vdd mklabel gpt mkpart primary ext4 0% 100%
sudo partprobe /dev/vdd; sleep 3
sudo mkfs.ext4 -q -L database-backup /dev/vdd1
UUID_BKP=$(sudo blkid -s UUID -o value /dev/vdd1)
echo "   UUID do backup: $UUID_BKP"

echo "=== 2) crescendo o /database de 602 para 800 G (offline)"
sudo e2fsck -fp /dev/vdb1 || true
sudo growpart /dev/vdb 1
sudo partprobe /dev/vdb; sleep 3
sudo resize2fs /dev/vdb1
UUID_DB=$(sudo blkid -s UUID -o value /dev/vdb1)
echo "   UUID do /database: $UUID_DB"
sudo dumpe2fs -h /dev/vdb1 2>/dev/null | grep -E "Block count|Block size" | head -2

echo "=== 3) montando o root do guest (LVM ol-root) e reescrevendo o fstab"
sudo vgchange -ay ol
sudo mkdir -p /mnt/guest
sudo mount /dev/ol/root /mnt/guest
echo "--- fstab ANTES:"
sudo grep -vE "^#|^$" /mnt/guest/etc/fstab
sudo cp /mnt/guest/etc/fstab /mnt/guest/etc/fstab.pre-wci
sudo sed -i -E "s|^/dev/vdb1[[:space:]]+/database[[:space:]]|UUID=$UUID_DB /database |" /mnt/guest/etc/fstab
sudo sed -i -E "s|^/dev/vdc1[[:space:]]+/database-backup[[:space:]]|UUID=$UUID_BKP /database-backup |" /mnt/guest/etc/fstab
echo "--- fstab DEPOIS:"
sudo grep -vE "^#|^$" /mnt/guest/etc/fstab
echo "--- sobrou algum /dev/vd no fstab? (tem que ser vazio)"
sudo grep -E "^/dev/vd" /mnt/guest/etc/fstab || echo "   nenhum - OK"
echo "=== 4) conferindo o conteudo do /database (deve ter o Oracle)"
sudo mkdir -p /mnt/db && sudo mount -o ro /dev/vdb1 /mnt/db
sudo df -h /mnt/db | tail -1
sudo ls /mnt/db | head -8
sudo ls -d /mnt/db/app/oracle/product/21.0.0/dbhome_1 2>/dev/null && echo "   ORACLE_HOME presente - OK"
sudo umount /mnt/db
sudo umount /mnt/guest
sudo vgchange -an ol
echo "=== FIM OK"
