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
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`.