## page was renamed from CransTechnique/Services/Virtualisation/RestaurationLVMPourLesNuls #acl +All:read <> = BJR, G CASSÉ MON LVM EN WIPANT SA SIGNATURE AVEC FDISK, JE FÉ KOI? = Félicitations, vous avez buté votre LVM favori. On va tenter de le sauver ensemble. Attention, c'est censé marcher mais parfois, on a tellement cassé les choses qu'on ne peut pas les réparer. Donc partez du principe que vous avez éventuellement perdu vos données. La première chose à imprimer, c'est que si vous '''n'avez rien fait de plus''' que virer la signature LVM avec fdisk, normalement, vous n'avez fait ''que'' démolir les métadonnées LVM. LVM est un logiciel plutôt cool, quand on crée un vg ou quand on fait des modifications dans les métadonnées, il fait une sauvegarde dans {{{/etc/lvm/backup/nom_du_vg}}}. Essentiellement, une sauvegarde, ça ressemble à cela : {{{ root@stitch:/home/b/becue# cat /etc/lvm/backup/nem # Generated by LVM2 version 2.02.168(2) (2016-11-30): Sun Apr 22 04:26:31 2018 contents = "Text Format Volume Group" version = 1 description = "Created *after* executing 'vgdisplay nem'" creation_host = "stitch" # Linux stitch 4.13.16-2-pve #1 SMP PVE 4.13.16-47 (Mon, 9 Apr 2018 09:58:12 +0200) x86_64 creation_time = 1524363991 # Sun Apr 22 04:26:31 2018 nem { id = "xlIUjC-k0JQ-tgfm-Hvnh-9dVR-a0mz-nKBxgF" seqno = 16 format = "lvm2" # informational status = ["RESIZEABLE", "READ", "WRITE"] flags = [] extent_size = 8192 # 4 Megabytes max_lv = 0 max_pv = 0 metadata_copies = 0 physical_volumes { pv0 { id = "xANpFs-IWgL-fawa-ZbFE-Bell-utXn-Oz81ek" device = "/dev/mapper/mpath-nem" # Hint only status = ["ALLOCATABLE"] flags = [] dev_size = 16775168 # 7,99902 Gigabytes pe_start = 2048 pe_count = 2047 # 7,99609 Gigabytes } } logical_volumes { vm-101-disk-1 { id = "s1MmWg-6R7B-2UVq-AUq1-Ih0r-Jp3G-xCF8cb" status = ["READ", "WRITE", "VISIBLE"] flags = [] creation_time = 1413721943 # 2014-10-19 14:32:23 +0200 creation_host = "ft" segment_count = 1 segment1 { start_extent = 0 extent_count = 2047 # 7,99609 Gigabytes type = "striped" stripe_count = 1 # linear stripes = [ "pv0", 0 ] } } } } }}} Paye tes accolades. (si t'aimes pas mon style de documentation subversif, tu peux réécrire cette page de la façon qui te sied dans la belle langue de Molière, ou celle de Shakespeare) Généralement, il est sain de copier ce fichier avant d'utiliser les commandes suivantes, des fois… qu'elles modifient le fichier. {{{cp /etc/lvm/backup/nem /root/nem.bak}}} == Restauration du PV == La seule info qu'on doit extraire d'ici, c'est celle sur le PV (volume physique). Imaginons que vous ayez pété le pv0 (c'est-à-dire effacé les métadonnées sur le disque associé), il faut recréer ce volume physique. Pour cela, on a besoin de ce fichier, mais surtout de l'uuid d'origine du PV. Ici c'est "xANpFs-IWgL-fawa-ZbFE-Bell-utXn-Oz81ek". Une fois cela trouvé, il suffit d'appeler la commande {{{pvcreate}}} avec les bons arguments {{{pvcreate -u xANpFs-IWgL-fawa-ZbFE-Bell-utXn-Oz81ek --restore-file /root/nem.bak /dev/mapper/mpath-nem}}} Ça dit qu'on veut créer le pv avec l'uid spécifiquement mentionné, en utilisant le fichier de restoration {{{/root/nem.bak}}}, sur le disque {{{/dev/mapper/mpath-nem}}}. Le retour peut avoir ce genre de tête {{{ Couldn't find device with uuid xANpFs-IWgL-fawa-ZbFE-Bell-utXn-Oz81ek. WARNING: dos signature detected on /dev/mapper/mpath-nem at offset 510. Wipe it? [y/n]: y Wiping dos signature on /dev/mapper/mpath-nem. Physical volume "/dev/mapper/mpath-nem" successfully created. }}} Le "Couldn't find ..." n'est pas une erreur, c'est une vérification. S'il y a déjà un device (PV) avec cet uid, lvm ne pourrait pas l'utiliser. Question de sanity check. Le warning c'est parce que pour les besoins du test, j'avais sciemment créé une partition sur le disque dans le but de péter le LVM. Du coup {{{pvcreate}}} la voit et me demande si je suis sûr de moi. Je suis sûr de moi (parce que je suis prétentieux, sans doute), du coup je dis oui. Pouf, c'est bon, j'ai recréé le PV. Si vous en avez cassé plusieurs, l'opération est à répéter pour chaque PV à recréer. == Restauration du VG == À ce stade, les devices utilisés par le volumegroup doivent tous être recréés avec le restorefile et le bon uid. Maintenant on va réparer le volumegroup. Premier test, lancez un {{{vgscan}}}. Si vous voyez le volumegroup, sautez directement à la partie "Restauration de la configuration du VG (la vraie partie, quoi)", sinon, continuez, en recréant le volumegroup. (pensez à mettre tous les PV en argument après "nem", là y en a qu'un seul, mais si vous en avez plusieurs il faut '''tous''' les mentionner) {{{vgcreate nem /dev/mapper/mpath-nem}}} La sortie devrait être du genre {{{Volume group "nem" successfully created}}}. == Restauration de la configuration du VG (la vraie partie, quoi) == Et là, la commande magique. {{{vgcfgrestore -f /root/nem.bak nem}}} {{{ root@stitch:/etc/lvm/backup# vgcfgrestore -f /root/nem.bak nem Restored volume group nem root@stitch:/etc/lvm/backup# vgdisplay nem --- Volume group --- VG Name nem System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 16 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 8,00 GiB PE Size 4,00 MiB Total PE 2047 Alloc PE / Size 2047 / 8,00 GiB Free PE / Size 0 / 0 VG UUID xlIUjC-k0JQ-tgfm-Hvnh-9dVR-a0mz-nKBxgF --- \o/ }}} = Si ce tutoriel t'a plu = Merci de donner de l'ARGENT sur ma page Tipeee, qui n'existe pas, parce que je veux pas de ta thune. Kthxbaï. = Note plus sérieuse = Cette page est le fruit d'une erreur d'une nounou qui a détruit le LVM de nem (un de nos DNS récursifs). J'ai donc pris la peine de le réparer avec cette méthode. Ici, je résume les étapes importantes. Pour les curieux, il y a une [[attachment:nemsaving.txt|pièce jointe]] qui contient un log quasi complet de ma session sur stitch où j'ai fait les opérations. C'est un peu fouillis mais ça peut toujours servir.