cat <<EOF > /usr/local/sbin/resize-rootfs.sh
#!/bin/bash
set -e
PARTITION_NB=2
PARTITION="/dev/sda\${PARTITION_NB}" # Remplace par la bonne partition racine
DISK="/dev/sda"
# Vérifie si la partition est déjà au max
resize_needed=\$(growpart -N \$DISK \$PARTITION_NB 2>&1 || true)
if echo "\$resize_needed" | grep -q 'NOCHANGE'; then
echo "La partition est déjà à sa taille maximale."
exit 0
fi
echo "Extension de la partition \$PARTITION..."
growpart \$DISK \$PARTITION_NB
echo "Redimensionnement du système de fichiers..."
# Détermine le type de FS automatiquement
FSTYPE=\$(findmnt -n -o FSTYPE /)
case "\$FSTYPE" in
ext4)
resize2fs \$PARTITION
;;
xfs)
xfs_growfs /
;;
*)
echo "Système de fichiers \$FSTYPE non supporté automatiquement."
exit 1
;;
esac
echo "Redimensionnement terminé."
EOF
cat <<EOF > /etc/systemd/system/resize-rootfs.service
[Unit]
Description=Resize root partition and filesystem on boot
After=cloud-init.service
ConditionPathExists=/usr/local/sbin/resize-rootfs.sh
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/resize-rootfs.sh
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
EOF
systemctl enable resize-rootfs.service