« 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 uniquement la partition système sda1
# Script pour étendre la partition système sda2 sur un système EFI
# À 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
 
# Affichage de l'état actuel
print_message "\nÉtat actuel du système:" "$GREEN"
df -h /
print_message "\nTable de partitions actuelle:" "$GREEN"
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
 
# Rescan du disque pour détecter les changements de taille
print_message "\nRescan du disque..." "$YELLOW"
echo 1 > /sys/class/block/sda/device/rescan
 
# Récupération de l'ancien point de début de sda2
START_SDA2=$(fdisk -l /dev/sda | grep "sda3" | awk '{print $2}')
 
# Utilisation de fdisk pour redimensionner sda1
print_message "Modification de la partition sda1..." "$YELLOW"
(
echo d    # Supprimer une partition
echo 1    # Partition numéro 1
echo n    # Nouvelle partition
echo p    # Partition primaire
echo 1    # Numéro 1
echo 2048 # Premier secteur (par défaut)
echo $START_SDA2    # Dernier secteur (juste avant sda2)
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
 
# Extension du système de fichiers
print_message "Extension du système de fichiers..." "$YELLOW"
resize2fs /dev/sda2
 
# Vérification finale
print_message "\nNouvelle configuration:" "$GREEN"
df -h /
fdisk -l /dev/sda
 
print_message "\nOpération terminée avec succès!" "$GREEN"
</syntaxhighlight><syntaxhighlight lang="bash">
#!/bin/bash
 
# Script pour étendre la partition étendue 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
 
# Affichage de l'état actuel
print_message "\nÉtat actuel du système:" "$GREEN"
fdisk -l /dev/sda
 
# Récupération du point de début de sda2
START_SDA2=$(fdisk -l /dev/sda | grep "sda2" | awk '{print $2}')
 
# 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 pour sécurité
print_message "\nDésactivation temporaire du swap..." "$YELLOW"
swapoff -a
 
# Rescan du disque pour détecter les changements de taille
print_message "Rescan du disque..." "$YELLOW"
echo 1 > /sys/class/block/sda/device/rescan
 
# Utilisation de fdisk pour redimensionner sda2
print_message "Modification de la partition étendue sda2..." "$YELLOW"
(
echo d    # Supprimer une partition
echo 5    # Supprimer d'abord sda5 (swap)
echo d    # Supprimer une autre partition
echo 2    # Supprimer sda2 (étendue)
echo n    # Nouvelle partition
echo e    # Partition étendue
echo 2    # Numéro 2
echo $START_SDA2    # Même point de début
echo      # Utiliser tout l'espace disponible
echo n    # Nouvelle partition logique
echo      # Accept default
echo      # Accept default
echo t    # Changer le type
echo 5    # Partition 5
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
 
# Reformatage du swap
print_message "Reformatage du swap..." "$YELLOW"
mkswap /dev/sda5
 
# Réactivation du swap
print_message "Réactivation du swap..." "$YELLOW"
swapon -a
 
# Vérification finale
print_message "\nNouvelle configuration:" "$GREEN"
fdisk -l /dev/sda
swapon --show
 
print_message "\nOpération terminée avec succès!" "$GREEN"
 
# Vérification du fstab
if ! grep -q "^/dev/sda5.*swap" /etc/fstab; then
    print_message "\nPensez à vérifier votre /etc/fstab pour le swap" "$YELLOW"
    print_message "Ligne à avoir : /dev/sda5 none swap sw 0 0" "$YELLOW"
fi
</syntaxhighlight><syntaxhighlight lang="bash">
#!/bin/bash
 
# Script pour étendre la partition étendue sda2
# À exécuter en tant que root
# À exécuter en tant que root


Ligne 198 : Ligne 28 :
                   parted \
                   parted \
                   util-linux \
                   util-linux \
                  procps \
                   e2fsprogs
                   e2fsprogs \
                  coreutils \
                  grep \
                  gawk
 
# Vérification que tous les outils sont bien installés
REQUIRED_TOOLS="fdisk parted swapon swapoff mkswap partprobe grep awk"
MISSING_TOOLS=""
 
for tool in $REQUIRED_TOOLS; do
    if ! command -v $tool &> /dev/null; then
        MISSING_TOOLS="$MISSING_TOOLS $tool"
    fi
done
 
if [ ! -z "$MISSING_TOOLS" ]; then
    print_message "Erreur : les outils suivants sont manquants malgré l'installation :$MISSING_TOOLS" "$RED"
    exit 1
fi


# Affichage de l'état actuel
# Affichage de l'état actuel
print_message "\nÉtat actuel du système:" "$GREEN"
print_message "\nÉtat actuel du système:" "$GREEN"
df -h /
fdisk -l /dev/sda
fdisk -l /dev/sda


# Récupération du point de début de sda2
# Récupération des points de début de sda3
START_SDA2=$(fdisk -l /dev/sda | grep "sda2" | awk '{print $2}')
START_SDA3=$(fdisk -l /dev/sda | grep "sda3" | awk '{print $2}')


# 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 (actuellement configuré à 250G)"
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 246 : Ligne 58 :
echo 1 > /sys/class/block/sda/device/rescan
echo 1 > /sys/class/block/sda/device/rescan


# Sauvegarde de la taille actuelle du swap
# Modification des partitions avec gdisk pour préserver la table GPT
SWAP_SIZE=$(fdisk -l /dev/sda | grep "sda5" | awk '{print $3 - $2}')
print_message "Modification des partitions..." "$YELLOW"
 
# Utilisation de fdisk pour redimensionner sda2
print_message "Modification de la partition étendue sda2..." "$YELLOW"
(
(
echo d    # Supprimer une partition
echo d    # Supprimer une partition
echo 5   # Supprimer d'abord sda5 (swap)
echo 3   # Supprimer sda3 (swap)
echo d    # Supprimer une autre partition
echo d    # Supprimer une autre partition
echo 2    # Supprimer sda2 (étendue)
echo 2    # Supprimer sda2
echo n    # Nouvelle partition
echo n    # Nouvelle partition
echo e    # Partition étendue
echo     # Numéro par défaut (2)
echo 2    # Numéro 2
echo     # Premier secteur par défaut
echo $START_SDA2    # Même point de début
echo -1G  # Laisser 1G à la fin pour le swap
echo      # Utiliser tout l'espace disponible
echo      # Type par défaut (Linux filesystem)
echo n    # Nouvelle partition logique
echo n    # Nouvelle partition pour le swap
echo      # Accept default
echo      # Numéro par défaut (3)
echo      # Accept default (utilisera l'espace disponible)
echo      # Premier secteur par défaut
echo      # Dernier secteur par défaut
echo t    # Changer le type
echo t    # Changer le type
echo 5   # Partition 5
echo 3   # Partition 3
echo 82  # Type swap
echo 82  # Type swap
echo w    # Écrire les changements
echo w    # Écrire les changements
echo y    # Confirmer
) | fdisk /dev/sda
) | fdisk /dev/sda


Ligne 274 : Ligne 85 :
partprobe /dev/sda
partprobe /dev/sda


# Attente que le système détecte les changements
# Extension du système de fichiers
sleep 2
print_message "Extension du système de fichiers..." "$YELLOW"
resize2fs /dev/sda2


# Reformatage du swap
# Reformatage du swap
print_message "Reformatage du swap..." "$YELLOW"
print_message "Reformatage du swap..." "$YELLOW"
mkswap /dev/sda5
mkswap /dev/sda3


# Réactivation du swap
# Réactivation du swap
Ligne 287 : Ligne 99 :
# Vérification finale
# Vérification finale
print_message "\nNouvelle configuration:" "$GREEN"
print_message "\nNouvelle configuration:" "$GREEN"
df -h /
fdisk -l /dev/sda
fdisk -l /dev/sda
echo -e "\nÉtat du swap :"
swapon --show
swapon --show


Ligne 294 : Ligne 106 :


# Vérification du fstab
# Vérification du fstab
if ! grep -q "^/dev/sda5.*swap" /etc/fstab; then
if ! grep -q "^/dev/sda3.*swap" /etc/fstab; then
     print_message "\nPensez à vérifier votre /etc/fstab pour le swap" "$YELLOW"
     print_message "\nVérifiez que votre /etc/fstab contient la bonne référence pour le swap:" "$YELLOW"
     print_message "Ligne à avoir : /dev/sda5 none swap sw 0 0" "$YELLOW"
     print_message "La ligne devrait être : /dev/sda3 none swap sw 0 0" "$YELLOW"
fi
fi
# Vérification de l'espace
df -h / | awk 'NR==2 {print "Espace disponible sur /: " $4 " libre sur " $2}'
</syntaxhighlight>
</syntaxhighlight>

Version du 26 novembre 2024 à 11:43

#!/bin/bash

# Script pour étendre la partition système sda2 sur un système EFI
# À 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 des paquets nécessaires
print_message "\nVérification et installation des paquets nécessaires..." "$YELLOW"
apt-get update
apt-get install -y fdisk \
                   parted \
                   util-linux \
                   e2fsprogs

# Affichage de l'état actuel
print_message "\nÉtat actuel du système:" "$GREEN"
df -h /
fdisk -l /dev/sda

# Récupération des points de début de sda3
START_SDA3=$(fdisk -l /dev/sda | grep "sda3" | awk '{print $2}')

# Demande de confirmation
print_message "\nATTENTION: Assurez-vous d'avoir:" "$RED"
echo "1. Augmenté la taille du disque dans VMware (actuellement configuré à 250G)"
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 pour sécurité
print_message "\nDésactivation temporaire du swap..." "$YELLOW"
swapoff -a

# Rescan du disque pour détecter les changements de taille
print_message "Rescan du disque..." "$YELLOW"
echo 1 > /sys/class/block/sda/device/rescan

# Modification des partitions avec gdisk pour préserver la table GPT
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
echo y    # Confirmer
) | fdisk /dev/sda

# Mise à jour de la table de partitions
print_message "Mise à jour de la table de partitions..." "$YELLOW"
partprobe /dev/sda

# 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 /
fdisk -l /dev/sda
swapon --show

print_message "\nOpération terminée avec succès!" "$GREEN"

# Vérification du fstab
if ! grep -q "^/dev/sda3.*swap" /etc/fstab; then
    print_message "\nVérifiez que votre /etc/fstab contient la bonne référence pour le swap:" "$YELLOW"
    print_message "La ligne devrait être : /dev/sda3 none swap sw 0 0" "$YELLOW"
fi

# Vérification de l'espace
df -h / | awk 'NR==2 {print "Espace disponible sur /: " $4 " libre sur " $2}'