HowtoRAIDLogiciel: avertissements et cas UEFI

This commit is contained in:
Alexis Ben Miloud--Josselin 2023-09-06 17:55:35 +02:00
parent 62d39acbd5
commit c1a7d0624a

View file

@ -99,40 +99,42 @@ ARRAY /dev/md42 UUID=457bb528:02ab827a:a7d2dac2:42fd5302
### Remplacer un disque ### Remplacer un disque
Cas classique : vous avez un disque défectueux (prenons */dev/sdz*) et plusieurs volumes RAID, 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 : par exemple `md1`, `md2`, etc. Voici précisément comment le remettre en place :
En table de partitions GPT : En table de partitions GPT :
**Rappel** : `/dev/newdisk` est le disque à remplacer, `/dev/sda` est un disque sain.
~~~ ~~~
# apt install gdisk # apt install gdisk
# sgdisk --replicate=/dev/sdz.new /dev/sda.old # sgdisk --replicate=/dev/newdisk /dev/sda
# sgdisk --randomize-guids /dev/sdz.new # sgdisk --randomize-guids /dev/newdisk
~~~ ~~~
En table de partitions DOS (si inférieure ou égale à Debian 7) : 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 --dump /dev/sda > /tmp/part.out
# sfdisk --force /dev/sdz.new < /tmp/part.out # sfdisk --force /dev/newdisk < /tmp/part.out
# partprobe /dev/sdz.new # partprobe /dev/newdisk
~~~ ~~~
Puis on restaure les partitions, par exemple : Puis on restaure les partitions, par exemple :
~~~ ~~~
# mdadm /dev/md1 --add /dev/sdz.new1 # mdadm /dev/md1 --add /dev/newdisk1
mdadm: added /dev/sdz.new1 mdadm: added /dev/newdisk1
# mdadm /dev/md2 --add /dev/sdz.new2 # mdadm /dev/md2 --add /dev/newdisk2
mdadm: added /dev/sdz.new2 mdadm: added /dev/newdisk2
# mdadm /dev/md3 --add /dev/sdz.new3 # mdadm /dev/md3 --add /dev/newdisk3
mdadm: added /dev/sdz.new3 mdadm: added /dev/newdisk3
# mdadm /dev/md5 --add /dev/sdz.new5
mdadm: added /dev/sdz.new5
# mdadm /dev/md6 --add /dev/sdz.new7
mdadm: added /dev/sdz.new7
~~~ ~~~
**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. > *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 ### 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 : 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' # 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`.