Remplacement d’un disque dans un RAID logiciel et reconstruction d’une partition ZFS

Pour remplacer un disque dans un système utilisant un RAID logiciel et reconstruire une partition ZFS, voici les étapes à suivre :

Remplacement d’un disque dans un RAID logiciel

  1. Identifier le disque défectueux :
    • Utilisez la commande mdadm –detail /dev/mdX pour vérifier l’état de votre RAID et identifier le disque défectueux.
  2. Déclarer le disque en panne :
    • Exécutez la commande suivante pour marquer le disque défectueux : bash
      mdadm –manage /dev/mdX –fail /dev/sdY
    • Remplacez /dev/mdX par votre ensemble RAID et /dev/sdY par le disque défectueux.
  3. Retirer le disque du RAID :
    • Utilisez la commande : bash
      mdadm –manage /dev/mdX –remove /dev/sdY
  4. Remplacer le disque :
    • Éteignez le système, remplacez le disque défectueux par un nouveau disque de même taille, puis redémarrez.
  5. Préparer le nouveau disque :
    • Créez une table de partition sur le nouveau disque (par exemple, avec gdisk ou fdisk) et créez une partition RAID.
  6. Ajouter le nouveau disque au RAID :
    • Exécutez la commande suivante pour ajouter le nouveau disque : bash
      mdadm –manage /dev/mdX –add /dev/sdZ1
    • Remplacez /dev/sdZ1 par la partition RAID du nouveau disque.
  7. Vérifier la reconstruction :
    • Surveillez le processus de reconstruction avec : bash
      cat /proc/mdstat

Reconstruction d’une partition ZFS

  1. Identifier le pool ZFS :
    • Utilisez la commande zpool status pour vérifier l’état de votre pool ZFS.
  2. Remplacer un disque dans le pool ZFS :
    • Si un disque dans le pool ZFS est défectueux, utilisez la commande suivante : bash
      zpool replace nom_du_pool /dev/sdY /dev/sdZ
    • Remplacez nom_du_pool par le nom de votre pool, /dev/sdY par le disque défectueux et /dev/sdZ par le nouveau disque.
  3. Vérifier la reconstruction du pool :
    • Utilisez à nouveau zpool status pour suivre la progression de la reconstruction.
  4. Ajuster la taille du pool si nécessaire :
    • Si vous avez remplacé des disques par des disques de plus grande capacité, vous devrez peut-être agrandir le pool avec : bash
      zpool online -e nom_du_pool /dev/sdZ

Conclusion

Ces étapes vous permettront de remplacer un disque dans un RAID logiciel et de reconstruire une partition ZFS. Assurez-vous de toujours avoir des sauvegardes de vos données avant de procéder à des opérations de maintenance sur vos disques.

 

lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 3,6T 0 disk
sdb 8:16 0 3,6T 0 disk
├─sdb1 8:17 0 511M 0 part /boot/efi
├─sdb2 8:18 0 1G 0 part
│ └─md2 9:2 0 1022M 0 raid1 /boot
├─sdb3 8:19 0 20G 0 part
├─sdb4 8:20 0 8G 0 part [SWAP]
└─sdb5 8:21 0 3,6T 0 part
lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
sdb
├─sdb1 vfat FAT16 EFI_SYSPART FDA7-8FE8 504,9M 1% /boot/efi
├─sdb2 linux_raid_member 1.2 md2 077117d6-b50b-0d30-576d-1b90ba7f2b30
│ └─md2 ext4 1.0 boot 63f3b188-1c35-42d7-8dff-e241ede10f18 645,5M 28% /boot
├─sdb3 zfs_member 5000 zp0 10374875040805075716
├─sdb4 swap 1 swap-sdb4 47a6c975-c815-46c3-a2b5-9d8d0877e580 [SWAP]
└─sdb5 zfs_member 5000 data 13015998859447614543
fdisk -l

Disk /dev/sdb: 3,64 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: HGST HUS726040AL
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: AD092E63-261C-4AA9-889F-49FABC01C16D

Device Start End Sectors Size Type
/dev/sdb1 2048 1048575 1046528 511M EFI System
/dev/sdb2 1048576 3145727 2097152 1G Linux RAID
/dev/sdb3 3145728 45088767 41943040 20G Linux filesystem
/dev/sdb4 45088768 61865983 16777216 8G Linux filesystem
/dev/sdb5 61865984 7814031359 7752165376 3,6T Linux filesystem

Disk /dev/sda: 3,64 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: HGST HUS726T4TAL
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/md2: 1022 MiB, 1071644672 bytes, 2093056 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Utiliser parted

apt install parted

parted /dev/sdb

Ensuite, tapez « print » pour afficher la table des partitions. Vous verrez une colonne indiquant le type de chaque partition. Les partitions de type primary sont les partitions primaires, et celles de type extended sont les partitions étendues

 

Model: ATA HGST HUS726040AL (scsi)
Disk /dev/sdb: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name     Flags
 1      1049kB  537MB   536MB   fat16           primary  boot, esp
 2      537MB   1611MB  1074MB                  primary  raid
 3      1611MB  23,1GB  21,5GB  zfs             primary
 4      23,1GB  31,7GB  8590MB  linux-swap(v1)  primary
 5      31,7GB  4001GB  3969GB  zfs             primary

Table de partition MS-DOS vs GPT

Il n’est pas possible de créer 5 partitions primaires sur un disque dur utilisant le format de partition classique MS-DOS. Ce format limite le nombre de partitions primaires à 4. Cependant, vous pouvez contourner cette limitation en créant une partition étendue qui peut contenir plusieurs partitions logiques.

Voici comment procéder :

  • Étape 1 : Créer 4 partitions primaires

    • Utilisez un outil comme fdisk pour créer vos 4 partitions primaires.
  • Étape 2 : Créer une partition étendue

    • Une fois vos 4 partitions primaires créées, vous pouvez créer une partition étendue. Cela vous permettra de créer plusieurs partitions logiques à l’intérieur de cette partition étendue.
  • Étape 3 : Créer des partitions logiques

    • À l’intérieur de la partition étendue, vous pouvez créer autant de partitions logiques que vous le souhaitez, ce qui vous permettra d’avoir plus de 4 partitions au total.

Exemple de configuration

  • sda1 : Partition primaire (ex. : Windows)
  • sda2 : Partition primaire (ex. : Linux)
  • sda3 : Partition primaire (ex. : Swap)
  • sda4 : Partition primaire (ex. : Données)
  • sda5 : Partition logique (dans la partition étendue)
  • sda6 : Partition logique (dans la partition étendue)
  • sda7 : Partition logique (dans la partition étendue)

Remarque sur GPT

GPT est l’acronyme de GUID Partition Table : c’est le nouveau standard pour les périphériques de stockage : il fait partie des spécifications du firmware UEFI et est le successeur du MBR, dont il surmonte plusieurs limitations. MBR, par exemple, autorise un maximum de 4 partitions principales (GPT en prend en charge jusqu’à 128) et ne fonctionne qu’avec des disques d’une taille maximale de 2 To. Sous  Linux, il existe plusieurs outils que nous pouvons utiliser pour créer et manipuler des tables de partition GPT.

Si vous utilisez une table de partition GPT (GUID Partition Table), il n’y a pas de limitation sur le nombre de partitions primaires, et vous pouvez créer plus de 4 partitions sans avoir besoin de partitions étendues.

Choix de la table de partition GPT lors de l’installation de Debian

Le choix entre MBR (Master Boot Record) et GPT (GUID Partition Table) lors de l’installation de Debian est déterminé par le programme d’installation, en fonction de plusieurs critères :

  • Architecture du système : Pour les systèmes 64 bits (x86_64), si l’installateur détecte un système EFI ou un Mac, ou si le disque à partitionner a une taille de 2 To ou plus, il choisit GPT.

  • Mode de démarrage : Si l’installateur est lancé en mode EFI, il utilisera GPT par défaut. En revanche, si le démarrage se fait en mode BIOS (legacy), il optera pour MBR.

Options pour forcer l’utilisation de GPT

Bien que l’installateur ne propose pas directement l’option de choisir entre MBR et GPT, il est possible de forcer l’utilisation de GPT en ajoutant des paramètres de démarrage. Par exemple, en ajoutant d-i:partman-partitioning/default_label=gpt à la commande de démarrage de l’installateur.

Considérations supplémentaires

  • Si vous souhaitez installer Debian en dual-boot avec Windows, il est important de vérifier le mode de démarrage de Windows (UEFI ou BIOS) pour éviter des problèmes de démarrage.

  • Pour les installations en mode BIOS, il est recommandé de créer une petite partition de type « BIOS boot » si vous optez pour GPT.

Conclusion

Le choix entre MBR et GPT lors de l’installation de Debian dépend principalement de l’architecture du système et du mode de démarrage utilisé. Pour les utilisateurs souhaitant une installation en GPT, il est possible de le spécifier via des paramètres de démarrage.

fdisk /dev/sda

Welcome to fdisk (util-linux 2.38.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
The size of this disk is 3,6 TiB (4000787030016 bytes). DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes for 512-byte sectors. Use GUID partition table format (GPT).

Created a new DOS (MBR) disklabel with disk identifier 0x3439ebbf.

Command (m for help):

[fdisk] Créer une nouvelle partition : n

Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-4294967295, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-4294967295, default 4294967295): 1048575

Created a new partition 1 of type ‘Linux’ and of size 511 MiB.

[fdisk] Changer le type de partition : t

Entrez le numéro de la partition que vous venez de créer (1).

Tapez 1 pour sélectionner le type EFI System (qui correspond à vfat). (01 FAT12 )
Appuyez sur w pour écrire les modifications sur le disque.

Formater la partition :

mkfs.vfat -F 16 /dev/sda1

 

Changer le label d'une partition sur Debian

Pour changer le label d’une partition sur un système Debian, vous pouvez utiliser différentes commandes en fonction du type de système de fichiers de la partition. Voici les méthodes appropriées :

Pour les partitions ext2, ext3 et ext4

Il faut au préalable avoir définit un systeme de fichier sur la partition pour lui donner un label : mkfs.ext4

Utilisez la commande e2label ou tune2fs :

  • Pour changer le label avec e2label :

    sudo e2label /dev/sdX « NOUVEAU_LABEL »

  • Pour changer le label avec tune2fs : bash

    sudo tune2fs -L « NOUVEAU_LABEL » /dev/sdX

Pour les partitions NTFS

Utilisez la commande ntfslabel :

sudo ntfslabel /dev/sdX NOUVEAU_LABEL

Pour les partitions XFS

Pour les partitions XFS, le label est généralement défini lors de la création du système de fichiers. Pour changer le label, vous devrez utiliser la commande xfs_admin : bash

sudo xfs_admin -L NOUVEAU_LABEL /dev/sdX

Pour les partitions SWAP

Pour changer le label d’une partition SWAP, utilisez la commande mkswap : bash

sudo mkswap -L NOUVEAU_LABEL /dev/sdX

Pour les partitions vfat (FAT16)

Étape 1 : Installer mtools
apt-get install mtools


Étape 2 : Configurer mtools Après l’installation, vous devez configurer mtools pour qu’il reconnaisse votre partition. Éditez le fichier de configuration : nano /etc/mtools.conf Ajoutez la ligne suivante pour définir votre partition : drive c: file= »/dev/sda1″




Étape 3 : Vérifier le label actuel
Avant de changer le label, vous pouvez vérifier le label actuel avec la commande suivante :
mdir c:




Étape 4 : Changer le label Pour changer le label de la partition, utilisez la commande suivante :



mlabel -i /dev/sda1 ::NOUVEAU_LABEL


Vérification du changement de label

Après avoir modifié le label, vous pouvez vérifier les labels des partitions avec la commande blkid :

Remarque

Assurez-vous que la partition est démontée avant de changer son label pour éviter toute perte de données.

Ces étapes vous permettront de modifier le label d’une partition sur Debian sans supprimer le système de fichiers existant.

Partition Linux Raid
  1. Préparation du nouveau disque :

    • Assurez-vous que le nouveau disque est correctement installé et reconnu par le système. Utilisez la commande fdisk -l pour vérifier la présence du disque.
    • Si le disque est neuf, vous devrez créer une table de partitions. Utilisez fdisk ou gdisk (pour GPT) pour créer une partition de type RAID. Par exemple, pour fdisk : fdisk /dev/sdX Remplacez /dev/sdX par le nom de votre nouveau disque. Créez une nouvelle partition avec le type fd (Linux RAID autodetect).
    • fdisk /dev/sda
      •  n (new) > 2 (partion 2) > fd (type linux raid) > w (write)
  2. Ajout du disque au RAID :

    • Si vous avez un RAID existant et que vous souhaitez ajouter le nouveau disque, utilisez la commande suivante : mdadm --manage /dev/md0 --add /dev/sdX1 Remplacez /dev/md0 par le nom de votre ensemble RAID et /dev/sdX1 par la partition que vous avez créée sur le nouveau disque.
    • mdadm –manage /dev/md2 –add /dev/sda2
      mdadm: added /dev/sda2
  3. Vérification de l’état du RAID :

    • Pour suivre la reconstruction du RAID, utilisez : cat /proc/mdstat Cela vous montrera l’état de la reconstruction et vous informera lorsque le RAID sera de nouveau en état normal.
    • cat /proc/mdstat
      Personalities : [raid1] [raid0] [raid6] [raid5] [raid4] [raid10]
      md2 : active raid1 sda2[2] sdb2[1]
      1046528 blocks super 1.2 [2/2] [UU]
  4. Mise à jour de la configuration :

    • Une fois la reconstruction terminée, il est important de mettre à jour le fichier de configuration de mdadm : mdadm --detail --scan >> /etc/mdadm/mdadm.conf
  5. Redémarrage et vérification :

    • Redémarrez votre système pour vous assurer que tout fonctionne correctement. Vérifiez à nouveau l’état du RAID avec la commande cat /proc/mdstat.

Remarques importantes :

  • Sauvegarde des données : Avant de procéder à toute manipulation sur le RAID, il est fortement recommandé de sauvegarder vos données importantes.
  • Attention aux erreurs : Si vous rencontrez des problèmes lors de l’ajout du disque ou de la reconstruction, vérifiez les messages d’erreur et consultez les fichiers journaux (/var/log/syslog ou /var/log/messages) pour plus d’informations.

Partitionner un nouveau disque avec fdisk et rétablir le RAID ZFS

Pour partitionner un nouveau disque sous Debian avec fdisk et rétablir un RAID ZFS, voici les étapes à suivre :

Étape 1 : Partitionner le disque avec fdisk

  1. Lister les disques disponibles : Exécutez la commande suivante pour voir les disques connectés : bash

    fdisk -l

  2. Sélectionner le disque à partitionner : Remplacez /dev/sdX par le chemin de votre nouveau disque (par exemple, /dev/sdb). bash

    fdisk /dev/sdX

  3. Créer une nouvelle partition :

    • Tapez n pour créer une nouvelle partition.
    • Choisissez p pour une partition primaire.
    • Suivez les instructions pour définir le numéro de partition, le premier secteur et le dernier secteur (ou utilisez les valeurs par défaut pour utiliser tout l’espace disponible).
  4. Écrire les modifications : Tapez w pour écrire la table de partitions sur le disque et quitter fdisk.

  5. Formater la partition en ZFS : ZFS ne nécessite pas de formatage traditionnel comme EXT4. Vous pouvez directement créer un pool ZFS sur la partition nouvellement créée.

  6. fdisk /dev/sda
    1. n (new) > p (primary) > 3 (partition 3) > … > w (write)

Étape 2 : Rétablir le RAID ZFS

  1. Retrouver le nom du pool existant
    1. lsblk -f
      ├─sdb3 zfs_member 5000 zp0
    2. zpool list
      
      
    3. NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT data 3.61T 227G 3.39T – – 5% 6% 1.00x DEGRADED – zp0 19.5G 4.46G 15.0G – – 32% 22% 1.00x DEGRADED –
    4.  

  2. Regarder le status du pool :
    zpool status zp0
    	NAME                     STATE     READ WRITE CKSUM
    	zp0                      DEGRADED     0     0     0
    	  mirror-0               DEGRADED     0     0     0
    	    5011397994770140140  UNAVAIL      0     0     0  was /dev/sda3
    	    sdb3                 ONLINE       0     0     0
    Trouver la référence de la nouvelle partion disque à mettre en place :
    ls -l /dev/disk/by-id/ Cela affichera tous les disques connectés avec leurs identifiants respectifs

    
    

    
    
  3. Utilisez la commande zpool replace <nom_du_pool> <disque_défaillant> <nouveau_disque> pour remplacer le disque défaillant par le nouveau disque dans votre pool ZFS.
    zpool replace zp0 5011397994770140140 /dev/sda3
  4. Vérifier l’état du pool : Pour vérifier que votre pool ZFS est opérationnel, utilisez : bash

    zpool status

Ces étapes vous permettront de partitionner un nouveau disque sous Debian avec fdisk et de rétablir un RAID ZFS. Assurez-vous de sauvegarder toutes les données importantes avant de manipuler les partitions, car ces opérations peuvent entraîner une perte de données si elles ne sont pas effectuées correctement.

Création d'une partition swap avec fdisk sous Debian

Pour créer une partition swap sur un système Debian en utilisant fdisk, suivez les étapes ci-dessous :

  1. Lister les disques : Ouvrez un terminal et utilisez la commande suivante pour lister les disques disponibles : bash

    fdisk -l

  2. Sélectionner le disque : Identifiez le disque sur lequel vous souhaitez créer la partition swap (par exemple, /dev/sdb) et lancez fdisk sur ce disque :

    fdisk /dev/sda

  3. Créer une nouvelle partition :

    • Tapez n pour créer une nouvelle partition.
    • Choisissez p pour une partition primaire.
    • Acceptez le numéro de partition par défaut ou spécifiez-en un.
    • Pour le premier secteur, utilisez la valeur par défaut.
    • Pour le dernier secteur, spécifiez la taille de la partition swap. Par exemple, pour créer une partition de 0.5 Go, vous pouvez entrer +500M.
  4. Changer le type de partition :

    • Tapez t pour changer le type de la partition.
    • Entrez le numéro de la partition que vous venez de créer.
    • Tapez 82 pour définir le type de partition comme « Linux swap ».
  5. Écrire les modifications : Tapez w pour écrire la table de partitions et quitter fdisk.

  6. Formater la partition swap : Utilisez la commande suivante pour formater la partition en tant que swap :

    mkswap /dev/sdb1 (Remplacez /dev/sdb1 par le nom de votre partition swap).
    mkswap -L swap-sda4 /dev/sda4

  7. Activer la partition swap : Activez la partition swap avec la commande suivante :

    swapon /dev/sda4

  8. Vérifier l’activation : Pour vérifier que la partition swap est active, utilisez :

    swapon --show

  9. Rendre la partition swap permanente : Pour que la partition swap soit activée au démarrage, ajoutez une ligne dans le fichier /etc/fstab : /dev/sda4 none swap sw 0 0

Conversion de MBR en GPT sous Debian

Pour convertir une partition de MBR en GPT sous Debian sans perte de données, vous pouvez utiliser l’outil gdisk. Voici les étapes à suivre :

Étapes de conversion

  1. Installer gdisk : Exécutez la commande suivante pour installer gdisk : bash
    sudo apt install gdisk -y

  2. Lister les disques : Identifiez le disque que vous souhaitez convertir en exécutant : bash
    sudo fdisk -l
    Dans votre cas, le disque à convertir semble être /dev/sda.

  3. Exécuter gdisk : Lancez gdisk sur le disque identifié : bash
    sudo gdisk /dev/sda
    Remplacez /dev/sda par le nom correct de votre disque si nécessaire.

  4. Créer une table de partition GPT : Une fois dans l’interface de gdisk, vous pouvez créer une table de partition GPT. Tapez w pour écrire la nouvelle table de partition sur le disque. Si vous êtes invité à confirmer, appuyez sur y.

  5. Vérifier la conversion : Pour vous assurer que la conversion a réussi, vous pouvez relancer gdisk : bash
    sudo gdisk /dev/sda

Remarques importantes

  • Sauvegarde : Avant de commencer, il est fortement recommandé de sauvegarder vos données importantes, même si la conversion est conçue pour être sans risque.

  • Dual Boot : Si vous avez un système dual boot avec Windows, assurez-vous que Windows est également configuré pour démarrer en mode UEFI après la conversion.

  • Partition EFI : Si vous passez à GPT, vous devrez également créer une partition EFI pour le démarrage UEFI si elle n’existe pas déjà.

Conclusion

En suivant ces étapes, vous devriez pouvoir convertir votre partition de MBR à GPT sous Debian sans perdre de données. Assurez-vous de bien comprendre chaque étape et de sauvegarder vos données avant de procéder.