diff --git a/HowtoRAIDLogiciel.md b/HowtoRAIDLogiciel.md index 2087bb2c..965720b3 100644 --- a/HowtoRAIDLogiciel.md +++ b/HowtoRAIDLogiciel.md @@ -99,40 +99,42 @@ ARRAY /dev/md42 UUID=457bb528:02ab827a:a7d2dac2:42fd5302 ### Remplacer un disque -Cas classique : vous avez un disque défectueux (prenons */dev/sdz*) et plusieurs volumes RAID, -par exemple *md1*, *md2*, etc. Voici précisément comment le remettre en place : +Cas classique : vous avez un disque défectueux, `/dev/newdisk`, et plusieurs volumes RAID, +par exemple `md1`, `md2`, etc. Voici précisément comment le remettre en place : En table de partitions GPT : +**Rappel** : `/dev/newdisk` est le disque à remplacer, `/dev/sda` est un disque sain. + ~~~ # apt install gdisk -# sgdisk --replicate=/dev/sdz.new /dev/sda.old -# sgdisk --randomize-guids /dev/sdz.new +# sgdisk --replicate=/dev/newdisk /dev/sda +# sgdisk --randomize-guids /dev/newdisk ~~~ En table de partitions DOS (si inférieure ou égale à Debian 7) : +**Rappel** : `/dev/newdisk` est le disque à remplacer, `/dev/sda` est un disque sain. + ~~~ -# sfdisk --dump /dev/sda.old > /tmp/part.out -# sfdisk --force /dev/sdz.new < /tmp/part.out -# partprobe /dev/sdz.new +# sfdisk --dump /dev/sda > /tmp/part.out +# sfdisk --force /dev/newdisk < /tmp/part.out +# partprobe /dev/newdisk ~~~ Puis on restaure les partitions, par exemple : ~~~ -# mdadm /dev/md1 --add /dev/sdz.new1 -mdadm: added /dev/sdz.new1 -# mdadm /dev/md2 --add /dev/sdz.new2 -mdadm: added /dev/sdz.new2 -# mdadm /dev/md3 --add /dev/sdz.new3 -mdadm: added /dev/sdz.new3 -# mdadm /dev/md5 --add /dev/sdz.new5 -mdadm: added /dev/sdz.new5 -# mdadm /dev/md6 --add /dev/sdz.new7 -mdadm: added /dev/sdz.new7 +# mdadm /dev/md1 --add /dev/newdisk1 +mdadm: added /dev/newdisk1 +# mdadm /dev/md2 --add /dev/newdisk2 +mdadm: added /dev/newdisk2 +# mdadm /dev/md3 --add /dev/newdisk3 +mdadm: added /dev/newdisk3 ~~~ +**Attention** : si le serveur démarre en UEFI, il faut aussi copier la partition EFI et la définir comme option de démarrage avec `efibootmgr`. Voir la section [#partition-efi](). + > *Note* : `sfdisk` peut nécessiter d'avoir un disque déjà partitionné, le contournement est de créer une partition quelconque avant de l'utiliser avec un disque vierge. ### Sortir une partition d'un volume RAID @@ -408,8 +410,10 @@ sdb disk On veut que le serveur puisse démarrer sur `/dev/sdb1` si jamais `/dev/sda` est hors service. Pour copier `/dev/sda1` dans `/dev/sdb1` et ajouter une nouvelle entrée de démarrage : ``` -# dd if=/dev/sda1 of=/dev/sdb1 +# cp /dev/sda1 /dev/sdb1 # efibootmgr -c -g -d /dev/sdb -p 1 -L debian -l '\EFI\debian\grubx64.efi' ``` -Attention : les données dans `/dev/sdb1` ne seront pas mises à jour en même temps que celles dans `/dev/sda1`. Il faudra rejouer la commande `dd` pour mettre à jour la partition. Pour savoir quelle partition est actuellement montée sur `/boot/efi` : `# findmnt /boot/efi`. +Attention : pour un disque NVMe, si la partition EFI est `/dev/nvme0n1p1`, le disque à donner à `efibootmgr` (option `-d`) est `/dev/nvme0n1` sans la lettre `p`. + +Attention : les données dans `/dev/sdb1` ne seront pas mises à jour en même temps que celles dans `/dev/sda1`. Il faudra rejouer la commande `cp` pour mettre à jour la partition. Pour savoir quelle partition est actuellement montée sur `/boot/efi` : `# findmnt /boot/efi`.