|
|
(4 versions intermédiaires par le même utilisateur non affichées) |
Ligne 1 : |
Ligne 1 : |
| <syntaxhighlight lang="bash"> | | <syntaxhighlight lang="bash"> |
| #!/bin/bash | | #!/bin/bash |
|
| |
| # Script pour étendre uniquement la partition système sda1
| |
| # À 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
| |
|
| |
| # 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 | | # Vérification des privilèges root |
| if [ "$(id -u)" != "0" ]; then | | if [ "$EUID" -ne 0 ]; then |
| print_message "Ce script doit être exécuté en tant que root" "$RED" | | echo "Ce script doit être exécuté en tant que root" |
| exit 1 | | exit 1 |
| fi | | fi |
|
| |
|
| # Installation des paquets nécessaires | | # Installation des outils nécessaires |
| print_message "\nVérification et installation des paquets nécessaires..." "$YELLOW"
| |
| apt-get update | | apt-get update |
| apt-get install -y fdisk \ | | apt-get install -y parted fdisk |
| parted \
| |
| util-linux \
| |
| procps \
| |
| 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
| | # Afficher l'état actuel |
| if ! command -v $tool &> /dev/null; then
| | echo "État actuel du disque :" |
| 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 | |
| print_message "\nÉtat actuel du système:" "$GREEN"
| |
| fdisk -l /dev/sda | | fdisk -l /dev/sda |
| | echo "-------------------" |
| | df -h /dev/sda2 |
| | echo "-------------------" |
|
| |
|
| # Récupération du point de début de sda2 | | # Calculer la taille maximale disponible (juste avant la partition swap) |
| START_SDA2=$(fdisk -l /dev/sda | grep "sda2" | awk '{print $2}')
| | SWAP_START=$(fdisk -l /dev/sda | grep "sda3" | awk '{print $2}') |
| | | echo "Début de la partition SWAP : $SWAP_START" |
| # 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
| |
|
| |
|
| # Sauvegarde de la taille actuelle du swap | | # Redimensionner avec fdisk |
| SWAP_SIZE=$(fdisk -l /dev/sda | grep "sda5" | awk '{print $3 - $2}')
| |
| | |
| # Utilisation de fdisk pour redimensionner sda2
| |
| print_message "Modification de la partition étendue sda2..." "$YELLOW"
| |
| ( | | ( |
| echo d # Supprimer une partition | | echo "d" # Supprimer partition |
| echo 5 # Supprimer d'abord sda5 (swap) | | echo "2" # Partition numéro 2 |
| echo d # Supprimer une autre partition
| | echo "n" # Nouvelle partition |
| echo 2 # Supprimer sda2 (étendue)
| | echo "p" # Type primaire |
| echo n # Nouvelle partition | | echo "2" # Partition numéro 2 |
| echo e # Partition étendue | | echo # Premier secteur (par défaut) |
| echo 2 # Numéro 2 | | echo "$((SWAP_START - 1))" # Dernier secteur (juste avant le swap) |
| echo $START_SDA2 # Même point de début | | echo "N" # Ne pas supprimer la signature |
| echo # Utiliser tout l'espace disponible | | echo "w" # Écrire les changements |
| echo n # Nouvelle partition logique
| |
| echo # Accept default
| |
| echo # Accept default (utilisera l'espace disponible)
| |
| echo t # Changer le type
| |
| echo 5 # Partition 5 | |
| echo 82 # Type swap
| |
| echo w # Écrire les changements | |
| ) | fdisk /dev/sda | | ) | fdisk /dev/sda |
|
| |
|
| # Mise à jour de la table de partitions | | # Recharger la table des partitions |
| print_message "Mise à jour de la table de partitions..." "$YELLOW"
| |
| partprobe /dev/sda | | partprobe /dev/sda |
|
| |
|
| # Attente que le système détecte les changements | | # Redimensionner le système de fichiers |
| sleep 2
| | resize2fs /dev/sda2 |
|
| |
|
| # Reformatage du swap | | # Afficher le résultat |
| print_message "Reformatage du swap..." "$YELLOW"
| | echo "Nouvel état du disque :" |
| mkswap /dev/sda5
| | df -h /dev/sda2 |
| | |
| # 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
| |
| echo -e "\nÉtat du swap :" | |
| 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> |