expert:systeme_conversion_raid1
no way to compare when less than two revisions
Différences
Ci-dessous, les différences entre deux révisions de la page.
— | expert:systeme_conversion_raid1 [2018/11/17 12:53] (Version actuelle) – créée - modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | =====Créer un raid 1 logiciel depuis un système installé===== | ||
+ | Le contexte est le suivant : vous avez un système installé de manière " | ||
+ | |||
+ | < | ||
+ | Considérez également que le raid 1 " | ||
+ | Vous avez donc besoin d'une sauvegarde en plus de votre raid 1.</ | ||
+ | |||
+ | |||
+ | ====Préparation du système installé.==== | ||
+ | |||
+ | Nota : Le système utilisé est Debian GNU-Linux, la procédure doit pouvoir être adaptée facilement, les commandes de mdadm étant les mêmes. Les emplacement des fichiers de configuration et la commande de génération de l' | ||
+ | |||
+ | Le chargeur d' | ||
+ | |||
+ | < | ||
+ | Les touches utilisées sont indiquées entre crochets, exemple **[ctrl]** pour la touche " | ||
+ | |||
+ | On appellera disque " | ||
+ | On appellera " | ||
+ | |||
+ | |||
+ | ===Installation de mdadm, préparation du nouveau disque=== | ||
+ | |||
+ | * On installe le programme **mdadm**, c'est lui qui gère la couche raid. Lors de l' | ||
+ | |||
+ | * On copie le schéma de partitionnement du disque original sur le nouveau disque, de manière à avoir des partitions strictement identiques sur les deux disques. <color red> | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | Pour éviter cela réduisez la taille des partitions originales d' | ||
+ | |||
+ | * On change le type des partitions sur le nouveau disque pour " | ||
+ | |||
+ | < | ||
+ | |||
+ | Vous pouvez faire cela interactivement dans " | ||
+ | |||
+ | < | ||
+ | |||
+ | Ensuite | ||
+ | touche [t] et validez \\ | ||
+ | numéro de ma partition [1 à 4] et validez \\ | ||
+ | type de la partition [fd] et validez \\ | ||
+ | |||
+ | Répétez pour toutes les partitions, puis pour écrire les changements sur le disque: | ||
+ | |||
+ | touche [w] et validez \\ | ||
+ | |||
+ | Une séquence complète donne: | ||
+ | |||
+ | < | ||
+ | GNU Fdisk 1.2.1 | ||
+ | [...] | ||
+ | Using /dev/sdb | ||
+ | Command (m for help): t | ||
+ | Partition number (1-3): 1 | ||
+ | Hex code (type L to list codes): fd | ||
+ | Changed type of partition 1 to fd (Lnx RAID auto) | ||
+ | </ | ||
+ | |||
+ | Pour quitter sans appliquer les modifications, | ||
+ | |||
+ | |||
+ | ===Création du volume raid1, adaptation du système=== | ||
+ | |||
+ | * On crée le volume raid1, mais sans y inclure les partitions du disque original (cela détruirait leur contenu...) :\\ | ||
+ | |||
+ | < | ||
+ | |||
+ | La commande crée un groupe raid 1 (level=1) nommé " | ||
+ | |||
+ | < | ||
+ | |||
+ | Et ainsi de suite, un groupe par partition du disque original (sauf pour les partitions que vous ne voudriez pas inclure).\\ | ||
+ | Vous aurez une alerte concernant le fait que la partition contient déjà un système de fichier, vous pouvez l' | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | * On crée un fichier de configuration pour mdadm, et on le sauvegarde :\\ | ||
+ | |||
+ | On fait une copie de sauvegarde de l' | ||
+ | |||
+ | < | ||
+ | $ su -c "mdadm --misc --detail --brief /dev/md* 2> /dev/null | tee -a / | ||
+ | |||
+ | |||
+ | À ce stade il est également bon de noter les UUID (identifiants uniques) de vos groupes raid, et de les garder sous la main :\\ | ||
+ | |||
+ | < | ||
+ | |||
+ | * On fait en sorte que le module " | ||
+ | |||
+ | ajout du module " | ||
+ | |||
+ | < | ||
+ | |||
+ | Pour les utilisateurs de " | ||
+ | |||
+ | < | ||
+ | |||
+ | car sinon un "sudo echo" ne survivra pas à la redirection, | ||
+ | |||
+ | Pour que la modification soit effective, il faut mettre à jour l' | ||
+ | |||
+ | < | ||
+ | |||
+ | (utilisez "-k all" pour mettre à jour les initrd de tous les noyaux installés). Si vous n' | ||
+ | |||
+ | |||
+ | * Faire en sorte que grub2 charge les modules " | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | Vérifiez dans ce même fichier que la directive " | ||
+ | Une fois les modifications faites, exécutez :\\ | ||
+ | |||
+ | < | ||
+ | # grub-install --recheck " | ||
+ | |||
+ | (pour les versions récentes de grub2, la commande " | ||
+ | |||
+ | |||
+ | * Être certains que le système charge les modules raid (**c' | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | Arrivé là vous avez deux choix, soit redémarrer sur un live-cd pour effectuer les manipulations suivantes alors que toutes les partitions sont inutilisées, | ||
+ | < | ||
+ | |||
+ | Si vous n'avez pas d' | ||
+ | |||
+ | ===Copie du système sur le volume raid.=== | ||
+ | |||
+ | * Une fois redémarré sur le live-cd, on assemble tous les groupes raid1 (qui ne sont composés que d'une partition chacun pour le moment) :\\ | ||
+ | |||
+ | < | ||
+ | |||
+ | Cette commande cherche les composants de groupes raid dont l' | ||
+ | De cette façon on vérifie pour chaque groupe que l' | ||
+ | |||
+ | * On crée des points de montage pour les périphériques raid, et on les monte :\\ | ||
+ | |||
+ | < | ||
+ | |||
+ | On monte les volumes raid :\\ | ||
+ | < | ||
+ | |||
+ | Préciser le système de fichier n'est pas toujours indispensable, | ||
+ | |||
+ | |||
+ | * Copie du système sur le volume raid. | ||
+ | |||
+ | On procède de la même façon pour les partitions qui constituent le système original : | ||
+ | |||
+ | < | ||
+ | |||
+ | et on lance la copie de leur contenu sur les volumes raid: | ||
+ | |||
+ | < | ||
+ | |||
+ | Faite de même pour toutes les partitions, à l' | ||
+ | |||
+ | nota: Si vous êtes en mode "init 1" ou " | ||
+ | |||
+ | < | ||
+ | |||
+ | Répéter pour / | ||
+ | |||
+ | |||
+ | ===Adaptation du système sur le volume raid.=== | ||
+ | |||
+ | * Vérifier l' [[expert: | ||
+ | |||
+ | < | ||
+ | |||
+ | ou | ||
+ | |||
+ | < | ||
+ | |||
+ | Il se présente sous la forme " | ||
+ | |||
+ | * Éditez le fichier /etc/fstab sur md0 (c'est à dire / | ||
+ | Par exemple si le fichier fstab contient :\\ | ||
+ | |||
+ | < | ||
+ | /dev/sd2 /home ext3 [...] | ||
+ | /dev/sda3 none swap</ | ||
+ | |||
+ | vous le remplacez par :\\ | ||
+ | |||
+ | < | ||
+ | UUID=" | ||
+ | UUID=" | ||
+ | |||
+ | Vous noterez que seul l' | ||
+ | |||
+ | Exemple de fichier /etc/fstab complet :\\ | ||
+ | |||
+ | < | ||
+ | # | ||
+ | # <file system> <mount point> | ||
+ | |||
+ | #Entrée pour "/" | ||
+ | UUID=e7b87294-e962-4804-80d6-51dfc639c021 | ||
+ | |||
+ | #Entrée pour "/ | ||
+ | UUID=6ee11d47-549b-41ac-b4de-789567b56398 | ||
+ | |||
+ | # Entrée pour " | ||
+ | UUID=e7v87594-e862-4804-81d6-51dgc632d021 | ||
+ | |||
+ | / | ||
+ | sysfs / | ||
+ | proc /proc | ||
+ | none / | ||
+ | |||
+ | |||
+ | Faite de même dans le fichier /etc/mtab, remplacez l' | ||
+ | |||
+ | |||
+ | * Éditez le fichier / | ||
+ | |||
+ | __Ne changez pas__ les mentions de :\\ | ||
+ | |||
+ | set root=\\ | ||
+ | |||
+ | qui correspondent à votre partition boot originale. L' | ||
+ | |||
+ | Changez les mentions de (racine "/" | ||
+ | |||
+ | root=\\ | ||
+ | |||
+ | par: root=/ | ||
+ | |||
+ | |||
+ | * Faites les mêmes modifications sur la partition racine originale (/dev/sda1 montée sur /mnt/sda1 par exemple). Vous pouvez simplement copier les fichier fstab, mtab et grub.cfg que vous venez d' | ||
+ | |||
+ | Quand tout ça vous paraît esthétiquement réussi, redémarrez le système.\\ | ||
+ | |||
+ | Une fois le système démarré, vérifiez que la partition racine originale et la partition /home originale (ou toutes celles qui concernent votre partitionnement) ne soient pas montées. La commande " | ||
+ | Si vous êtes adeptes des interfaces graphiques, Gparted vous renseignera très bien. Un petit symbole " | ||
+ | |||
+ | |||
+ | ===On en est où ?=== | ||
+ | |||
+ | Nous en sommes à la dernière étape, le système fonctionne maintenant sur les volumes raid, mais ceux-ci sont encore en mode " | ||
+ | Cette étape constitue le point de non-retour, le contenu du disque original va être écrasé par celui du volume raid existant lors de la phase de " | ||
+ | |||
+ | * Réunion des partitions en volumes raid :\\ | ||
+ | |||
+ | Lors de la création des groupes raid nous avons désigné une des partitions comme " | ||
+ | Nous gardons l' | ||
+ | |||
+ | < | ||
+ | |||
+ | Cette commande ajoute au groupe raid " | ||
+ | Vous aurez un avertissement concernant la présence d'un système de fichiers sur la partition ajoutée au groupe raid, continuez.\\ | ||
+ | Vous pouvez suivre l' | ||
+ | |||
+ | < | ||
+ | |||
+ | Vous pouvez assembler tous les groupes raid à la suite, leur synchronisation sera mis en file d' | ||
+ | |||
+ | * Toilettage final :\\ | ||
+ | |||
+ | Il reste à s' | ||
+ | |||
+ | < | ||
+ | |||
+ | Si /dev/md0 est votre groupe raid qui porte la racine "/" | ||
+ | Vous n'avez théoriquement rien à faire pour les deux autres fichiers (fstab, mtab), juste y jeter un œil par sécurité.\\ | ||
+ | |||
+ | Reste à générer l' | ||
+ | |||
+ | < | ||
+ | # grub-install --recheck " | ||
+ | # update-grub2</ | ||
+ | |||
+ | C'est fini... sauf si\\ | ||
+ | |||
+ | |||
+ | ====Problèmes possibles (et leurs solutions ;-) )==== | ||
+ | |||
+ | * "Ça ne marche pas", enfin disons que **vous obtenez une erreur " | ||
+ | |||
+ | * dans grub.cfg | ||
+ | |||
+ | * dans fstab >> Vérifiez l'UUID de la partition racine. | ||
+ | |||
+ | * Si vous bloquez toujours, vous devrez chrooter sur la partition racine, et ré-exécuter grub-install et update grub. | ||
+ | On considère que la partition racine est montée sur /mnt/md0 :\\ | ||
+ | |||
+ | < | ||
+ | # chroot /mnt/md0 bin/bash | ||
+ | # install-grub --recheck " | ||
+ | # update grub | ||
+ | # exit</ | ||
+ | |||
+ | * **Grub se passe bien, mais l' | ||
+ | |||
+ | * Vérifiez le fstab, et grub comme cas précédent. | ||
+ | * Vérifiez que / | ||
+ | |||
+ | |||
+ | * **fsck bloque le démarrage**, | ||
+ | |||
+ | Là vous êtes victime d'une " | ||
+ | La taille du volume raid /dev/md*, reportée par le superblock, ne correspond pas à celle des systèmes de fichier sur les disques (/dev/sd*) reportée par leurs tables des partitions.\\ | ||
+ | |||
+ | Cette situation n'est pas catastrophique dans l' | ||
+ | |||
+ | La solution passe par l' | ||
+ | |||
+ | < | ||
+ | # e2fsck -cc /dev/md0 | ||
+ | # resize2fs /dev/md0 | ||
+ | # fsck -f / | ||
+ | |||
+ | L' | ||
+ | |||
+ | Après cette opération tout devrait rentrer dans l' | ||
+ | Au fait, j'ai précisé qu'il fallait avoir une sauvegarde des données ? ;-) | ||
+ | |||
+ | ====Méthode alternative de création du raid==== | ||
+ | |||
+ | Plutôt que de chercher à recopier la table de partition du disque original, ce qui nécessite de réduire les systèmes de fichiers auparavant ou expose à des problèmes, il peut être plus intéressant de procéder comme suit : | ||
+ | |||
+ | * Sur le nouveau disque (celui qui ne contient pas de données) créez les partitions souhaitées, | ||
+ | |||
+ | * Créez les groupes raid en mode dégradé, en y incluant uniquement les partitions (sans système de fichier) que vous venez de créer. | ||
+ | |||
+ | * Créez les systèmes de fichiers sur les groupes raid (qui ne contiennent qu'une partition chacun pour le moment), par exemple avec :\\ | ||
+ | < | ||
+ | |||
+ | Ici on crée un système de fichier " | ||
+ | |||
+ | * Copiez les données de vos partitions originales sur les groupes raid.\\ | ||
+ | |||
+ | * Créez sur le disque original un partitionnement identique à celui du disque qui forme le raid. " | ||
+ | |||
+ | * Ajoutez les partitions du disque original aux groupes raid, et laissez synchroniser.\\ | ||
+ | |||
+ | De cette façon on évite les risque de problèmes liés à l' | ||
+ | |||
+ | |||
+ | |||
+ | ====Annexe pour les utilisateurs de " | ||
+ | (le " | ||
+ | |||
+ | Le grub traditionnel ne supporte pas l' | ||
+ | |||
+ | Éditez / | ||
+ | |||
+ | < | ||
+ | device (hd0) /dev/sdb | ||
+ | root (hd0,0) | ||
+ | setup (hd0) | ||
+ | quit</ | ||
+ | |||
+ | L' | ||
+ | Il semble qu'il soit nécessaire de ré-exécuter la commande pour les __deux__ disques après addition du disque original. C'est la seule façon d' | ||
+ | |||
+ | De cette façon si un disque est défaillant, | ||
+ | |||
+ | Si vous souhaitez modifier le fichier / | ||
+ | |||
+ | * Après la ligne **default 0** ajoutez une nouvelle ligne avec **fallback 1**\\ | ||
+ | |||
+ | * Changez la ligne des options permanentes du noyau " | ||
+ | |||
+ | * Copiez/ | ||
+ | |||
+ | * Vérifiez que la directive **root=/ | ||
+ | |||
+ | De cette façon, en cas de défaillance du disque de démarrage /dev/sda, grub amorcera sur le second disque /dev/sdb automatiquement. | ||
+ | |||
+ | |||
+ | ====Liens==== | ||
+ | |||
+ | * Consultez la [[: | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | * Sur Grub2, [[http:// | ||
+ | * [[expert: | ||
+ | |||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | |||
+ | --------------------------------------------------------------------------- | ||
+ | |||
+ | [[http:// |
expert/systeme_conversion_raid1.txt · Dernière modification : 2018/11/17 12:53 de 127.0.0.1