« Feuille classe » : différence entre les versions
De Travail-ivan
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 2 : | Ligne 2 : | ||
#!/bin/bash | #!/bin/bash | ||
# Script pour étendre la partition système sda2 | # Script pour étendre la partition système sda2 | ||
# À exécuter en tant que root | # À exécuter en tant que root | ||
Ligne 22 : | Ligne 22 : | ||
fi | fi | ||
# Installation des paquets nécessaires | # Installation forcée des paquets nécessaires | ||
print_message "\ | print_message "\nInstallation des paquets nécessaires..." "$YELLOW" | ||
# Mise à jour des dépôts et installation des paquets | |||
apt-get update | apt-get update | ||
apt-get install -y fdisk | print_message "Installation de fdisk..." "$YELLOW" | ||
apt-get install -y fdisk | |||
print_message "Installation de util-linux..." "$YELLOW" | |||
apt-get install -y util-linux | |||
print_message "Installation de e2fsprogs..." "$YELLOW" | |||
apt-get install -y e2fsprogs | |||
print_message "Installation de parted..." "$YELLOW" | |||
apt-get install -y parted | |||
# Vérification de l'installation des commandes essentielles | |||
COMMANDS=("fdisk" "swapon" "swapoff" "partprobe" "resize2fs" "mkswap") | |||
MISSING_COMMANDS=() | |||
for cmd in "${COMMANDS[@]}"; do | |||
if ! which "$cmd" > /dev/null 2>&1; then | |||
MISSING_COMMANDS+=("$cmd") | |||
fi | |||
done | |||
if [ ${#MISSING_COMMANDS[@]} -ne 0 ]; then | |||
print_message "Les commandes suivantes sont toujours manquantes : ${MISSING_COMMANDS[*]}" "$RED" | |||
print_message "Tentative d'installation via le chemin complet..." "$YELLOW" | |||
# Créer des liens symboliques si nécessaire | |||
if [ ! -f "/sbin/fdisk" ] && [ -f "/usr/sbin/fdisk" ]; then | |||
ln -s /usr/sbin/fdisk /sbin/fdisk | |||
fi | |||
if [ ! -f "/sbin/swapon" ] && [ -f "/usr/sbin/swapon" ]; then | |||
ln -s /usr/sbin/swapon /sbin/swapon | |||
fi | |||
if [ ! -f "/sbin/swapoff" ] && [ -f "/usr/sbin/swapoff" ]; then | |||
ln -s /usr/sbin/swapoff /sbin/swapoff | |||
fi | |||
if [ ! -f "/sbin/partprobe" ] && [ -f "/usr/sbin/partprobe" ]; then | |||
ln -s /usr/sbin/partprobe /sbin/partprobe | |||
fi | |||
fi | |||
# Vérification finale des commandes | |||
FINAL_CHECK=0 | |||
for cmd in "${COMMANDS[@]}"; do | |||
if ! which "$cmd" > /dev/null 2>&1; then | |||
print_message "La commande $cmd n'est toujours pas disponible." "$RED" | |||
FINAL_CHECK=1 | |||
fi | |||
done | |||
if [ $FINAL_CHECK -eq 1 ]; then | |||
print_message "Certaines commandes sont toujours manquantes. Installation impossible." "$RED" | |||
print_message "Essayez d'installer manuellement : apt-get install -y fdisk util-linux e2fsprogs parted" "$YELLOW" | |||
exit 1 | |||
fi | |||
# Affichage de l'état actuel | # Affichage de l'état actuel | ||
Ligne 34 : | Ligne 83 : | ||
df -h / | df -h / | ||
fdisk -l /dev/sda | fdisk -l /dev/sda | ||
# Demande de confirmation | # Demande de confirmation | ||
print_message "\nATTENTION: Assurez-vous d'avoir:" "$RED" | print_message "\nATTENTION: Assurez-vous d'avoir:" "$RED" | ||
echo "1. Augmenté la taille du disque dans VMware | echo "1. Augmenté la taille du disque dans VMware" | ||
echo "2. Créé un snapshot de la VM" | echo "2. Créé un snapshot de la VM" | ||
echo "3. Sauvegardé vos données importantes" | echo "3. Sauvegardé vos données importantes" | ||
Ligne 50 : | Ligne 96 : | ||
fi | fi | ||
# Désactivation du swap | # Désactivation du swap | ||
print_message "\nDésactivation temporaire du swap..." "$YELLOW" | print_message "\nDésactivation temporaire du swap..." "$YELLOW" | ||
swapoff -a | swapoff -a | ||
# Rescan du disque | # Rescan du disque | ||
print_message "Rescan du disque..." "$YELLOW" | print_message "Rescan du disque..." "$YELLOW" | ||
echo 1 > /sys/class/block/sda/device/rescan | echo 1 > /sys/class/block/sda/device/rescan | ||
# Modification des partitions | # Modification des partitions | ||
print_message "Modification des partitions..." "$YELLOW" | print_message "Modification des partitions..." "$YELLOW" | ||
( | ( | ||
Ligne 78 : | Ligne 124 : | ||
echo 82 # Type swap | echo 82 # Type swap | ||
echo w # Écrire les changements | echo w # Écrire les changements | ||
) | fdisk /dev/sda | ) | fdisk /dev/sda | ||
Ligne 84 : | Ligne 129 : | ||
print_message "Mise à jour de la table de partitions..." "$YELLOW" | print_message "Mise à jour de la table de partitions..." "$YELLOW" | ||
partprobe /dev/sda | partprobe /dev/sda | ||
# Pause pour laisser le système détecter les changements | |||
sleep 5 | |||
# Extension du système de fichiers | # Extension du système de fichiers | ||
Ligne 100 : | Ligne 148 : | ||
print_message "\nNouvelle configuration:" "$GREEN" | print_message "\nNouvelle configuration:" "$GREEN" | ||
df -h / | df -h / | ||
print_message "\nTableau des partitions:" "$GREEN" | |||
fdisk -l /dev/sda | fdisk -l /dev/sda | ||
print_message "\nÉtat du swap:" "$GREEN" | |||
swapon --show | swapon --show | ||
print_message "\nOpération terminée | print_message "\nOpération terminée!" "$GREEN" | ||
</syntaxhighlight> | </syntaxhighlight> |
Version du 26 novembre 2024 à 11:50
#!/bin/bash
# Script pour étendre la partition système sda2
# À exécuter en tant que root
# Couleurs pour les messages
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Fonction pour afficher les messages
print_message() {
echo -e "${2}${1}${NC}"
}
# Vérification des privilèges root
if [ "$(id -u)" != "0" ]; then
print_message "Ce script doit être exécuté en tant que root" "$RED"
exit 1
fi
# Installation forcée des paquets nécessaires
print_message "\nInstallation des paquets nécessaires..." "$YELLOW"
# Mise à jour des dépôts et installation des paquets
apt-get update
print_message "Installation de fdisk..." "$YELLOW"
apt-get install -y fdisk
print_message "Installation de util-linux..." "$YELLOW"
apt-get install -y util-linux
print_message "Installation de e2fsprogs..." "$YELLOW"
apt-get install -y e2fsprogs
print_message "Installation de parted..." "$YELLOW"
apt-get install -y parted
# Vérification de l'installation des commandes essentielles
COMMANDS=("fdisk" "swapon" "swapoff" "partprobe" "resize2fs" "mkswap")
MISSING_COMMANDS=()
for cmd in "${COMMANDS[@]}"; do
if ! which "$cmd" > /dev/null 2>&1; then
MISSING_COMMANDS+=("$cmd")
fi
done
if [ ${#MISSING_COMMANDS[@]} -ne 0 ]; then
print_message "Les commandes suivantes sont toujours manquantes : ${MISSING_COMMANDS[*]}" "$RED"
print_message "Tentative d'installation via le chemin complet..." "$YELLOW"
# Créer des liens symboliques si nécessaire
if [ ! -f "/sbin/fdisk" ] && [ -f "/usr/sbin/fdisk" ]; then
ln -s /usr/sbin/fdisk /sbin/fdisk
fi
if [ ! -f "/sbin/swapon" ] && [ -f "/usr/sbin/swapon" ]; then
ln -s /usr/sbin/swapon /sbin/swapon
fi
if [ ! -f "/sbin/swapoff" ] && [ -f "/usr/sbin/swapoff" ]; then
ln -s /usr/sbin/swapoff /sbin/swapoff
fi
if [ ! -f "/sbin/partprobe" ] && [ -f "/usr/sbin/partprobe" ]; then
ln -s /usr/sbin/partprobe /sbin/partprobe
fi
fi
# Vérification finale des commandes
FINAL_CHECK=0
for cmd in "${COMMANDS[@]}"; do
if ! which "$cmd" > /dev/null 2>&1; then
print_message "La commande $cmd n'est toujours pas disponible." "$RED"
FINAL_CHECK=1
fi
done
if [ $FINAL_CHECK -eq 1 ]; then
print_message "Certaines commandes sont toujours manquantes. Installation impossible." "$RED"
print_message "Essayez d'installer manuellement : apt-get install -y fdisk util-linux e2fsprogs parted" "$YELLOW"
exit 1
fi
# Affichage de l'état actuel
print_message "\nÉtat actuel du système:" "$GREEN"
df -h /
fdisk -l /dev/sda
# Demande de confirmation
print_message "\nATTENTION: Assurez-vous d'avoir:" "$RED"
echo "1. Augmenté la taille du disque dans VMware"
echo "2. Créé un snapshot de la VM"
echo "3. Sauvegardé vos données importantes"
read -p "Voulez-vous continuer? (o/N) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Oo]$ ]]; then
print_message "Opération annulée" "$YELLOW"
exit 1
fi
# Désactivation du swap
print_message "\nDésactivation temporaire du swap..." "$YELLOW"
swapoff -a
# Rescan du disque
print_message "Rescan du disque..." "$YELLOW"
echo 1 > /sys/class/block/sda/device/rescan
# Modification des partitions
print_message "Modification des partitions..." "$YELLOW"
(
echo d # Supprimer une partition
echo 3 # Supprimer sda3 (swap)
echo d # Supprimer une autre partition
echo 2 # Supprimer sda2
echo n # Nouvelle partition
echo # Numéro par défaut (2)
echo # Premier secteur par défaut
echo -1G # Laisser 1G à la fin pour le swap
echo # Type par défaut (Linux filesystem)
echo n # Nouvelle partition pour le swap
echo # Numéro par défaut (3)
echo # Premier secteur par défaut
echo # Dernier secteur par défaut
echo t # Changer le type
echo 3 # Partition 3
echo 82 # Type swap
echo w # Écrire les changements
) | fdisk /dev/sda
# Mise à jour de la table de partitions
print_message "Mise à jour de la table de partitions..." "$YELLOW"
partprobe /dev/sda
# Pause pour laisser le système détecter les changements
sleep 5
# Extension du système de fichiers
print_message "Extension du système de fichiers..." "$YELLOW"
resize2fs /dev/sda2
# Reformatage du swap
print_message "Reformatage du swap..." "$YELLOW"
mkswap /dev/sda3
# Réactivation du swap
print_message "Réactivation du swap..." "$YELLOW"
swapon -a
# Vérification finale
print_message "\nNouvelle configuration:" "$GREEN"
df -h /
print_message "\nTableau des partitions:" "$GREEN"
fdisk -l /dev/sda
print_message "\nÉtat du swap:" "$GREEN"
swapon --show
print_message "\nOpération terminée!" "$GREEN"