2 votes

Pourquoi mon serveur ne démarre-t-il pas après avoir déplacé les fichiers de la racine, à l'intérieur de LVM, vers le système raid ?

J'essaie de déplacer ma partition racine vers des volumes physiques de type raid, et j'ai l'impression d'échouer. et j'ai l'impression d'échouer.

La procédure que j'utilise est un peu compliquée, mais c'est parce que mes hébergeur a des capacités d'installation très limitées, je ne peux donc pas Je ne peux donc pas commencer avec un système de fichiers racine créé à l'aide de lvm sur des volumes raid.

Pour tester mon cas, j'ai créé une instance virtuelle dans VirtualBox, avec 4 disques :

  • /dev/sda - 8GB
  • /dev/sdb - 8GB
  • /dev/sdc - 20GB
  • /dev/sdd - 20GB

J'y ai installé Linux (Debian 8.5). Initialement, après l'installation, l'affichage est le suivant :

  • /dev/sd[bcd] - non partitionné, non utilisé
  • /dev/sda - 1 partition (/dev/sda1), petite (4GB), utilisée comme PV pour LVM
  • sur ce PV, j'ai créé VG, et LV, qui est maintenant utilisé comme / :

Voici à quoi cela ressemble :

=# mount /
mount: /dev/mapper/vg-root is already mounted or / busy
=# lvs
LV   VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
root vg   -wi-ao---- 3.72g
=# vgs
VG   #PV #LV #SN Attr   VSize VFree
vg     1   1   0 wz--n- 3.72g    0
=# pvs
PV         VG   Fmt  Attr PSize PFree
/dev/sda1  vg   lvm2 a--  3.72g    0

Maintenant, ce dont j'ai besoin / envie, c'est de créer quelques raids sur de petits et grands disques, et de mettre / dessus.

Je commence donc par créer les partitions. Puisque je vais devoir repartitionner /dev/sda, c'est la disposition intermédiaire, et elle ressemble à ceci :

=# for a in /dev/sd[abcd]; do fdisk -l $a; done | grep ^/
/dev/sda1  *     2048 7813119 7811072  3.7G 8e Linux LVM
/dev/sdb1        2048 16777215 16775168   8G fd Linux raid autodetect
/dev/sdc1           2048 16777215 16775168   8G fd Linux raid autodetect
/dev/sdc2       16777216 41943039 25165824  12G fd Linux raid autodetect
/dev/sdd1           2048 16777215 16775168   8G fd Linux raid autodetect
/dev/sdd2       16777216 41943039 25165824  12G fd Linux raid autodetect

Ensuite, je crée un raid1 sur les partitions /dev/sd[cd]2 :

\=# mdadm -C /dev/md0 -l 1 --raid-devices 2 /dev/sd[cd]2

Cela m'a donné /dev/md0, que j'utiliserai comme emplacement temporaire pour le système de fichiers / :

=# pvcreate /dev/md0
=# vgextend vg /dev/md0
=# pvmove /dev/sda1 /dev/md0
=# vgreduce vg /dev/sda1
=# pvremove /dev/sda1

À ce stade, /dev/sda est libre, je peux donc le repartitionner selon les spécifications exactes de /dev/sdb (cette étape n'est pas très pertinente, mais c'est juste pour être complet).

Maintenant que tout cela est en place, je mets à jour mdadm.conf :

=# mdadm --detail /dev/md0 --brief >> /etc/mdadm/mdadm.conf && update-initramfs -u

Cette ligne ajoutée :

ARRAY /dev/md0 metadata=1.2 name=debian:0 UUID=55692d54:b0beedae:9d85bc20:324d7f9f

Je redémarre ensuite le système pour m'assurer qu'il fonctionne correctement. Et immédiatement il se plante, sur Grub, avec le message :

error: disk `lvmid/F9eO8I-PB9F-Dsli-ZOSY-rVA1-7a37-Faos46/1N3Ah7-wIjT-HFxc-MS9U-lAcw-tYZw-N7sRO8' not found.
Entering rescue mode...
grub rescue>

ls dans l'invite s'affiche :

(hd0) (hd0,msdos1) (hd1) (hd1,msdos1) (hd2) (hd2,msdos2) (hs2,msdos1) (hd3) (hd3,msdos2) (hd3,msdos1)

Qu'ai-je fait de mal ? Qu'ai-je oublié ?

3voto

Tero Kilkanen Points 32968

Vous devez mettre à jour votre installation Grub et le noyau de démarrage.

  1. update-initramfs -u

Cette commande met à jour la configuration du noyau de démarrage pour qu'elle corresponde à l'état actuel du système.

  1. mdadm --detail --scan > /tmp/mdadm.conf

Copie /tmp/mdadm.conf le contenu de /etc/mdadm/mdadm.conf remplaçant toutes les entrées précédentes. De cette manière, les informations de configuration du dispositif MD seront correctes.

  1. update-grub

Cela mettra à jour la configuration de Grub de manière à ce qu'il connaisse les nouveaux périphériques.

  1. dpkg-reconfigure grub-pc

Cette opération installe Grub sur les disques durs du serveur.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X