====== Supprimer un RAID logiciel pour récupérer ces disques======
* Objet : supprimer un raid1 logiciel
* Niveau requis : {{tag> avisé}}
* Commentaires : Ce wiki est écrit dans l'idée de partager ses "expériences", et n'est pas la rédaction d'un expert.
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
* Suivi :
* Création par [[user>Hypathie]] le 10/05/2014
* Testé par [[user>Hypathie]] Mai 2014
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=9002 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !
===== Introduction =====
Ce wiki prends la suite du wiki [[doc:install:raid-logiciel-crypte-lvm-a-l-installation-de-wheezy?raid1-lvm-sans-chiffrement-des-disques|Raid logiciel crypté + LVM à l'installation de wheezy]].\\
Je me suis basée sur la même machine virtuelle que celle qui a servie aux illustrations de ce dernier. J'ai changé les ports SATA des disques montés en raid /dev/sda et /dev/sdb (en port SATA0 et SATA1 avant modification), j'ai récupéré le disque virtuel sda (sur lequel une debian est fonctionnelle) d'une autre machine virtuelle sans raid. J'ai affecté le port SATA0 à ce disque ; le port SATA1 au premier disque du raid et le port SATA2 au deuxième disque du raid. Puis j'ai démarré le système.\\
Avec le disque d'une autre machine virtuelle, sans ce changement de numéro de port SATA, (lorsque ce disque ajouté à le port SATA2 ou plus), le système démarre sur le raid//.\\
J'ai opté pour cette façon de booter en dehors du raid, parce que mon matériel n'est pas assez puissant pour que la machine virtuelle fonctionne correctement depuis le live cd/dvd bootable (système live très très lent).//
J'ai testé aussi cette méthode de suppression du raid logiciel sur deux vieux disques physiques sur lesquels était installé un RAID1 + LVM avant installation.
Là encore pour la suppression, j'ai ajouté un troisième disque dur, sur lequel j'ai installé un système, et j'ai supprimé depuis ce dernier système redémarré.\\
Cette fois, parce que depuis le live CD d'ubuntu (option "essayer ubuntu"), le raid n'était pas détecté par mdadm qui a eu beaucoup de mal à s'y installer.\\
**Rappelez-vous après avoir sélectionné "configurer le raid logiciel" le message "Ces modifications sont irréversibles" était apparu :**
{{http://imagesup.org/images12/1399710792-rai-msg-alert.png|}}
* Sur le forum voir aussi : [[https://debian-facile.org/viewtopic.php?pid=217749#p217749]]
**Il est à noter que deux étapes sont inter-dépendantes :**
**A) stopper et supprimer le raid avec mdadm ;**\\
**B) détruire les anciennes partitions, en créer une nouvelle (au moins une) et formater la (ou les) nouvelle(s) partition(s).**\\
* gparted ne peut détruire les partitions montées en raid (on a un triangle et non un point d'exclamation à côté des partitions à supprimer : voir sur l'image paragraphe B) ;
* le formatage avec fdisk aboutit à un message d'erreur même après la commande dd pour détruire les partitions des disques en raid ;
* et bien qu'on le trouve en ligne l'affirmation contraire, **le partitionnement raid n'a pas disparu tant que l'on utilise pas gparted ou dd ; fdisk et mkfs pour détruire les anciennes partitions, en re-créer une (ou plusieurs) et la (les) formater !**\\
Sans l'état B **si l'on essaie de réinstaller tout le système** en bootant sur une image iso, la détection du matériel aboutit à ceci :
{{http://imagesup.org/images12/1399787067-raid-resistant.png|}}
*On voit le disque nouvellement ajouté : SCSI3 (sda) de 8.6GB\\
*Et le raid persistant sur les disques de 10.7GB, SCSI4 (sdb) et SCS5 (sdc).
**Voyons comment récupérer ces deux disques montés en raid avec ces deux étapes dans le détail.**
===== Installation =====
Pour supprimer le RAID, il faut démonter les partitions qui le constituent.\\
Voyons le retour de sfdisk -s : après suppression du raid les lignes /dev/md0 et /dev/md1 auront disparu.
sfdisk -s
/dev/sda: 10485760
/dev/sdb: 10485760
/dev/md0: 682432
/dev/md1: 9792384
/dev/mapper/systeme-root: 1949696
/dev/mapper/systeme-swap: 974848
/dev/mapper/systeme-usr: 1949696
/dev/mapper/systeme-var: 1462272
/dev/mapper/systeme-tmp: 974848
/dev/mapper/systeme-home: 2478080
total : 41235776 blocs
Si le système "tourne" sur le raid (/dev/sda et /dev/sdb montés) on ne peut pas stopper, puis supprimer le raid :
mdadm -S /dev/md0
mdadm: Cannot get exclusive access to /dev/md0: Perhaps a running process, mounted filesystem or active volume groupe?
**Plusieurs solutions sont possibles :**
* Munissez-vous d'un live CD d'Ubuntu et choissisez "essayer ubuntu" ;
* ou démarrer une live usb inscriptible de debian ;
===== A) suppression du raid avec mdadm + fdisque + mkfs =====
====1) Vérifier les partitions.====
**Repérer vos partitions raid avec fdisk -l, les disques en raid sont /dev/sdb et /dev/sdc parce qu'il s'agit de la machine virtuelle sur laquelle j'ai ajouté un disque avec le système en /dev/sda, afin de pouvoir donner ici les retours des commandes en exemple**
fdisk -l /dev/sdb
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 têtes, 63 secteurs/piste, 1305 cylindres,\
total 20971520 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) :\
512 octets / 512 octets
taille d'E/S (minimale / optimale) :\
512 octets / 512 octets
Identifiant de disque : 0x000a6acc
Périphérique Amorçage Début Fin Blocs Id. Système
/dev/sdb1 * 2048 1368063 683008 fd\
RAID Linux autodétecté
/dev/sdb2 1368064 20969471 9800704 fd\
RAID Linux autodétecté
** PUIS**
fdisk -l /dev/sdc
Disk /dev/sdc: 10.7 GB, 10737418240 bytes
255 têtes, 63 secteurs/piste, 1305 cylindres,\
total 20971520 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) :\
512 octets / 512 octets
taille d'E/S (minimale / optimale) :\
512 octets / 512 octets
Identifiant de disque : 0x00071fa4
Périphérique Amorçage Début Fin Blocs Id. Système
/dev/sdc1 * 2048 1368063 683008 fd\
RAID Linux autodétecté
/dev/sdc2 1368064 20969471 9800704 fd\
RAID Linux autodétecté
* ou encore :
sfdisk -s
/dev/sda: 8388608
/dev/sdb: 10485760
/dev/sdc: 10485760
/dev/md0: 682432
/dev/md1: 9792384
/dev/mapper/systeme-swap: 974848
/dev/mapper/systeme-root: 1949696
/dev/mapper/systeme-usr: 1949696
/dev/mapper/systeme-var: 1462272
/dev/mapper/systeme-tmp: 974848
/dev/mapper/systeme-home: 2478080
total : 49624384 blocs
====2) les commandes mdadm à lancer====
* arrêter raid0 et raid1 :
mdadm -S /dev/md0
mdadm: stopped /dev/md0
#PUIS
mdadm -S /dev/md1
mdadm: stopped /dev/md1
* supprimer raid0 et raid1 sur chacune des partitions
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
mdadm --zero-superblock /dev/sdc1
mdadm --zero-superblock /dev/sdc2
=> le retour du prompt indique que tout s'est bien passé.
Le retour de la commande **sfdisk -s** ne contient plus **/dev/md0 et /md1**.
Mais les commandes **''fdisk -l /dev/sdb''** puis **''fdisk -l /dev/sdc''**, renvoient encore :
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 têtes, 63 secteurs/piste, 1305 cylindres,\
total 20971520 secteurs
[...]
Périphérique Amorçage Début Fin Blocs Id. Système
/dev/sdb1 * 2048 1368063 683008 fd RAID Linux autodétecté
/dev/sdb2 1368064 20969471 9800704 fd RAID Linux autodétecté
root@hypathie-VirtualBox:/home/hypathie# fdisk -l /dev/sdc
[...]
Périphérique Amorçage Début Fin Blocs Id. Système
/dev/sdc1 * 2048 1368063 683008 fd RAID Linux autodétecté
/dev/sdc2 1368064 20969471 9800704 fd RAID Linux autodétecté
**Après avoir stoppé le raid et lancé les commandes de suppression du raid (mdadm --zero-superblock /dev/sdxx), il est maintenant possible de supprimer ces partitions et d'en créer une nouvelle en ext4 par exemple avec gparted, ce qui n'était pas possible avant.**
**Il peut arriver qu'après avoir stoppé et supprimé /dev/md0** (commandes mdadm -S /dev/md0 puis mdadm --zero-superblock /dev/sdb1 et mdadm --zero-superblock /dev/sdb2), **que ces commandes ne soient pas fonctionnelles sur /dev/md1.**\\
Cela m'est arrivé (trois fois sur quatre essais sur MV, jamais sur les disques physiques (trois essais).\\
** Bien que le système soit démarré sur /dev/sda\\
et que les commandes umount /dev/sdb1 ; umount /dev/sdb2 ; umount /dev/sdc1 ; umount /dev/sdc2 indiquent des partitions non montées,\\
on peut avoir :**
mdadm -S /dev/md0
mdadm: stopped /dev/md0
mdadm --zero-superblock /dev/sdb1
> retour du prompt
**Mais**
mdadm -S /dev/md1
mdadm: Cannot get exclusive access to /dev/md1\
:Perhaps a running process, mounted filesystem\
or active volume group?
mdadm --zero-superblock /dev/sdb2
mdadm: Couldn't open /dev/sdb2 for write - not zeroing
Et après cela:
sfdisk -s
/dev/sda: 8388608
/dev/sdb: 10485760
/dev/sdc: 10485760
/dev/md1: 9792384
/dev/mapper/systeme-swap: 974848
/dev/mapper/systeme-root: 1949696
/dev/mapper/systeme-usr: 1949696
/dev/mapper/systeme-var: 1462272
/dev/mapper/systeme-tmp: 974848
/dev/mapper/systeme-home: 2478080
total : 48941952 blocs
**Je n'en ai pas d'explication FIXME\\
Mais il a été à chaque fois possible de poursuivre la suppression du raid avec gparted ou dd + mkfs, et de récupérer les disques pour d'autres installations,\\ en faisant d'abord par prudence :
**
mdadm --manage /dev/md1 --fail /dev/sdb2
mdadm: set /dev/sdb2 faulty in /dev/md1
root@debian-pour-supp-raid:/home/hypathie
mdadm --manage /dev/md1 --remove /dev/sdb2
mdadm: hot removed /dev/sdb2 from /dev/md1
====3) purger les disques avec dd + fdisque + mkfs====
Méthode testée uniquement sur machine virtuelle
* pour effacer les disques et y créer une partition ext3 il faut faire sur chaque disque :
===3.1) effacer complètement le disque===
dd if=/dev/zero of=/dev/sdb
dd: écriture vers « /dev/sdb »: Aucun espace disponible sur le périphérique
20971521+0 enregistrements lus
20971520+0 enregistrements écrits
10737418240 octets (11 GB) copiés, 844,774 s, 12,7 MB/s
Commande dangereuse ne vous trompez pas de disque !
C'est assez long : soyez patient.
===3.2) Créer une partition sur tout le disque /dev/sdb===
fdisk /dev/sdb
Le périphérique ne contient pas une table de partitions DOS ou Sun, SGI, OSF valable
Création d'une nouvelle étiquette DOS avec id de disque 0x6c6d8b8e.
Les modifications restent en mémoire jusqu'à ce que vous les écriviez.
Après quoi, bien sûr, le contenu précédent sera irrécupérable.
Avertissement : indicateur 0x0000 incorrect dans la table de partitions 4, sera corrigé par w (écriture)
Commande (m pour l'aide): n
Type de partition :
p primaire (0 primaire(s), 0 étendue(s), 4 libre(s))
e étendue
Sélection (p par défaut) : p
Numéro de partition (1-4, par défaut 1): 1
Premier secteur (2048-20971519, par défaut 2048):
Utilisation de la valeur par défaut 2048
Dernier secteur, +secteurs or +taille{K,M,G} (2048-20971519, par défaut 20971519):
Utilisation de la valeur par défaut 20971519
Commande (m pour l'aide): t
Partition sélectionnée 1
Code Hexa (taper L pour lister les codes): 83
Commande (m pour l'aide): w
La table de partitions a été altérée.
Appel de ioctl() pour relire la table de partitions.
Synchronisation des disques.
===3.3) Formater en ext4 (par exemple)===
mkfs.ext4 /dev/sdb
mke2fs 1.42.5 (29-Jul-2012)
/dev/sdb est le périphérique en intégralité, pas seulement une partition !
Procéder malgré tout ? (o,n) Avec ''o''
#retour du prompt
* Adapter les commandes pour faire de même sur /dev/sdc
**Il est possible maintenant de récupérer ses disques pour y installer à nouveau un OS. En tout cas de façon certaine pour une VM **
=====B) Suppression des partitions et formatage des disques avec gparted=====
Après avoir utilisé les commandes de mdadm pour stopper et supprimer /dev/md0 et/ou /dev/md1 (voir la note important plus haut paragraphe A n°2)\\
il est possible de supprimer ses partitions, re-partitionner, et formater ses disques avec gparted pour une autre installation.
Méthode testée sur disques physiques et sur machine virtuelle
* installer gparted
apt-get install gparted
* lancé gparted et supprimer /dev/sdb1 :
{{http://imagesup.org/images12/1399719252-supression-raid-1.png|}}
*puis /dev/sdb2 :
* créer une nouvelle partition formatée en ext4 par exemple, sur /dev/sdb :
{{http://imagesup.org/images12/1399719422-supression-raid-4.png|}}
* supprimer /dev/sdc1 et /dev/sdc2 :
{{http://imagesup.org/images12/1399719565-supression-raid-5.png|}}
* puis formater une nouvelle partition sur /dev/sdc :
{{http://imagesup.org/images12/1399719650-supression-raid-8.png|}}
Et voilà, vous pouvez maintenant réutiliser les disques pour y installer un système !