Une partition sur un disque dur est une division logique du disque en sections indépendantes qui peuvent être formatées et utilisées comme des disques distincts.
Cela permet d'organiser les fichiers sur le disque et de gérer l'espace de stockage de manière plus efficace.
Il y a 4 type de partitions sous Linux:
1. Partition Primaire
2. Partition Étendue
3. Partition Logique
4. Partition de Swap
Il existe principalement deux structures (ou schémas) de partition modernes :
1. MBR (Master Boot Record)
2. GPT (GUID Partition Table)
3. Structures historiques (plus rares)
Le premier secteur d'un disque dur (cylindre 0, tête 0 et secteur 1), contient:
Choisir entre MBR et GPT???
/ # Partition racine (obligatoire)
/home # Données des utilisateurs
/boot # Fichiers de démarrage
swap # Mémoire virtuelle
df -h # Affiche l'utilisation des partitions
fdisk -l # Liste les partitions
mount # Monte une partition
umount # Démonte une partition
blkid # Affiche les UUID des partitions
gparted # Interface graphique
fdisk # Ligne de commande
parted # Ligne de commande avancée
Points importants à retenir
Commande pour installer gparted
sudo apt update
sudo apt install gparted
Volume physique: C'est un périphérique de stockage physique, comme un disque dur ou une clé USB, qui peut être partitionné en plusieurs volumes logiques.
Volume logique: C'est une portion d'un périphérique de stockage physique qui peut être formatée et utilisée comme un système de fichiers séparé. Par exemple, une partition d'un disque dur est un volume logique.
Groupe de volumes: C'est une collection de volumes logiques qui sont présentés à l'OS comme un seul volume de stockage logique. Les groupes de volumes sont utilisés pour fournir des fonctionnalités telles que la réduction de la taille de la table de partition, la réduction de la complexité de la gestion des partitions et l'augmentation de la tolérance aux pannes. Les exemples courants de groupes de volumes incluent RAID (‘’Redundant Array of Inexpensive Disks’’) et LVM (‘’Logical Volume Manager’').
Les fichiers de données sur les disques se répartissent dans des blocs de taille fixe.
La lecture ou l’écriture d’un élément d’un fichier impliquera donc le transfert du bloc entier entre la mémoire et le disque.
On peut formater les disques avec une taille particulière de blocs.
Cette taille résulte d’un compromis entre la vitesse d’accès aux éléments des fichiers et l’espace perdu sur le disque.
Un fichier de 100 Ko (ex.: Fichier A) va prendre la place de 2 blocs physiques de 64 Ko, donc un espace total de 128 Ko.
Un fichier de 150 Ko (ex.: Fichier B) va prendre la place de 3 blocs physiques de 64 Ko, donc un espace total de 192 Ko.
À chaque fichier correspond une liste de blocs contenant ses données.
L’allocation est en général non contiguë et les blocs sont donc répartis quasi-aléatoirement sur le disque.
Les fichiers conservent l’ensemble de leurs blocs suivant deux méthodes :
Une liste chaînée sur un disque dur est une structure où :
Bloc 1 → Bloc 2 → Bloc 3 → Bloc 4 → NULL
[Data|→] [Data|→] [Data|→] [Data|⌧]
Cette méthode rend l’accès direct aux éléments d’un fichier particulièrement inefficace.
Le numéro du premier bloc de chacun des fichiers est conservé dans son répertoire.
Avantages/Désavantages des listes chaînées
Avantages
Incovénients
Utilisation dans les Systèmes de Fichiers
MS-DOS optimise ensuite l’accès aux blocs suivants en gardant leurs références dans une table d’allocation de fichiers (FAT). Chaque disque dispose d’une FAT. Chaque entrée de FAT contient le numéro du bloc suivant.
La table d'index sous Linux, appelée i-node (index node), est une structure de données fondamentale qui contient toutes les métadonnées d'un fichier : permissions, propriétaire, timestamps, taille et pointeurs vers les blocs de données réels.
Chaque fichier possède un numéro d'i-node unique qui sert de référence dans le système de fichiers, permettant ainsi au système d'exploitation de retrouver rapidement toutes les informations associées à ce fichier, y compris l'emplacement physique des données sur le disque.
Les i-nodes utilisent un système de pointeurs directs et indirects pour gérer les fichiers de différentes tailles : les premiers pointeurs sont directs pour un accès rapide aux petits fichiers, tandis que les pointeurs indirects permettent de gérer des fichiers plus volumineux en créant des niveaux supplémentaires d'indirection.
1. Métadonnées :
- Permissions
- Propriétaire et groupe
- Timestamps (création, modification, accès)
- Taille du fichier
- Nombre de liens
2. Pointeurs :
- Directs (10-12 premiers blocs)
- Indirect simple
- Indirect double
- Indirect triple
Directs → [Blocs de données]
Indirect simple → [Pointeurs] → [Blocs de données]
Indirect double → [Pointeurs] → [Pointeurs] → [Blocs de données]
Indirect triple → [Pointeurs] → [Pointeurs] → [Pointeurs] → [Blocs de données]
ls -i # Affiche le numéro d'i-node
stat fichier # Affiche les informations de l'i-node
df -i # Affiche l'utilisation des i-nodes
# Création de 100 000 fichiers vides
for i in {1..100000}; do
touch file$i
done
# Vérification
df -i # Montre l'utilisation des i-nodes
df -h # Montre l'utilisation de l'espace disque
Stratégie générale d’utilisation de la mémoire cache :
Si le bloc ce trouve en mémoire cache la donnée est chargée immédiatement sinon, le SE chargera le bloc du disque en mémoire cache et la donnée sera chargée.
GRUB (Grand Unified Bootloader) est un gestionnaire de démarrage qui est utilisé sur de nombreux systèmes d'exploitation, y compris Linux.
Lorsque vous allumez votre ordinateur, le BIOS ou l'UEFI commence par initialiser le matériel et rechercher un périphérique de stockage contenant un système d'exploitation. Une fois qu'il trouve un périphérique contenant un système d'exploitation amorçable, le BIOS ou l'UEFI charge le chargeur de démarrage (bootloader) du système d'exploitation.
C'est à ce moment-là que GRUB entre en jeu sur un système Linux. GRUB est le programme qui se charge après le BIOS ou l'UEFI et qui vous permet de sélectionner quel système d'exploitation vous voulez démarrer si vous avez plusieurs systèmes d'exploitation installés sur votre ordinateur. GRUB affiche généralement une liste des systèmes d'exploitation disponibles et vous permet de sélectionner celui que vous voulez utiliser.
De plus, GRUB permet également aux utilisateurs avancés de personnaliser les options de démarrage et de résoudre les problèmes de démarrage en modifiant les paramètres de démarrage, tels que le noyau Linux utilisé, les options de démarrage, etc.
Dans ce schéma :
Points clés illustrés :
Cette structure unifiée est un concept fondamental de Linux : tous les périphériques montés sont accessibles via l'arborescence unique partant de la racine (/).
# Monter un système de fichiers
mount /dev/sdb1 /mnt/usb
# Démonter
umount /mnt/usb
# Voir les montages actuels
mount
df -h
# Montage automatique (fstab)
cat /etc/fstab
/ # Racine
/home # Répertoire utilisateurs
/mnt # Montages temporaires
/media # Supports amovibles
/boot # Fichiers de démarrage
Identifier la clé USB
lsblk
fdisk -l
# Notons que la clé est /dev/sdb1
Créer un point de montage
sudo mkdir /mnt/cle_usb
Monter la clé USB (je prends pour exemple que la clé USB est sous /dev/sdb1)
sudo mount /dev/sdb1 /mnt/cle_usb
# Vérifier le montage avec la commande 'mount'
Créer une structure de répertoires
cd /mnt/cle_usb
mkdir Documents Images Musique
Créer quelques fichiers
touch Documents/rapport.txt
echo "Ceci est un test" > Documents/test.txt
touch Images/photo.jpg
Créer une sous-structure
mkdir Documents/Projets
mkdir Documents/Projets/Projet1
touch Documents/Projets/Projet1/notes.txt
Faire des copies
cp Documents/test.txt Documents/Projets/
cp -r Images Documents/Projets/Projet1/
Supprimer certains éléments
rm Images/photo.jpg
rmdir Images
Synchroniser et démonter
sync # S'assure que toutes les données sont écrites
cd ~ # Sort du répertoire de la clé
sudo umount /mnt/cle_usb
Nettoyer le point de montage
sudo rmdir /mnt/cle_usb
Résultat final attendu :
Points à vérifier :