====== Réorganisation des partitions ======
* Objet : Sauvegarde de Debian, réorganisation des partitions, restauration de Debian
* Niveau requis : {{tag>avisé}}
* Commentaires : //Réorganisation des partitions pour supprimer un OS et relocaliser les partitions Debian sur le même DD.//
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
===== Introduction =====
Le but de ce tuto est de démontrer l'usage de l'outil **gdisk** et de l'outil **rsync** dans un contexte de réorganisation des partitions tout en éliminant un système d'exploitation maintenant remplacé par Debian GNU/Linux.
===== Contexte actuel =====
Le PC sur lequel les opérations s'effectuent, héberge 3 systèmes d'exploitation :
- Windows 7
- Ubuntu 14.04
- Debian JESSIE
Seuls les systèmes d'exploitation Windows 7 et Debian JESSIE sont conservés. Cela signifie donc que Ubuntu sera supprimé au cours de l'exercice.
===== Utilisation des outils =====
Voici la liste des principaux outils utilisés :
- **SystemRescueCd**, pour démarrer le PC sur CD amorçable ou clé USB
- **rsync**, commande pour sauvegarder et restaurer un système d'exploitation
- **fdisk**, pour gérer les partitions sur un disque dont la table des partitions est de type MBR
- **gdisk**, pour gérer les partitions sur un disque dont la table des partitions est de type GPT
**SystemRescueCd** est retenu comme outil de travail car il supporte la commande **gdisk** et l'outil de partitionnement **gparted**.
===== Partitionnement actuel =====
Les partitions des trois systèmes d'exploitation sont réparties sur deux disques durs :
**Windows**
* Ce système occupe ''/dev/sda1'' et ''/dev/sda2''
**Ubuntu**
* /boot sur ''/dev/sda5''
* root sur ''/dev/sda7''
* /home sur ''/dev/sdb1''
**Debian**
* /boot sur ''/dev/sdb2''
* root sur ''/dev/sdb4''
* /home sur ''/dev/sdb5''
La partition de pagination est sur ''/dev/sda6'' et la partition pour **Grub Bios** est sur ''/dev/sdb3''. Toutes les partitions GNU/Linux sur ''/dev/sda'' se retrouvent dans la partition étendue.
===== Schéma des partitions proposé =====
La réorganisation des partitions vise à éliminer Ubuntu et à relocaliser la partition de pagination sur le second disque dur. Le second disque dur accueille également Debian ainsi que la partition spéciale **Grub Bios** car le partitionnement de ce disque repose sur le type GPT. Le tableau suivant montre le nouveau schéma des partitions.
^ Partitions Windows et Debian ^^^^^^
| Unité | O/S | Partition | Système | Taille | GPT |
|/dev/sda1|Windows 7|Réservée|ntfs|100 Mo|N/A|
|/dev/sda2|Windows 7|Principale|ntfs|114 Go|N/A|
|/dev/sdb1|Debian|/boot|ext2|500 Mo|8300|
|/dev/sdb2|Debian|Grub Bios|fat32|100 Mo|ef02|
|/dev/sdb3|Debian|swap|swap|2 Go|8200|
|/dev/sdb4|Debian|root|ext4|100 Go|8300|
|/dev/sdb5|Debian|/home|ext4|250 Mo|8300|
La valeur dans la colonne GPT s'utilise avec la commande **gdisk** lors de la création des nouvelles partitions.
===== SystemRescueCd =====
Nous utilisons l'outil **SystemRescueCd** pour réaliser toutes les tâches de la réorganisation des partitions. Cet outil supporte la commande **gdisk** ainsi que le logiciel de partitionnemt **gparted**.
**SystemRescueCd** se télécharge depuis cette adresse : [[http://www.sysresccd.org/Download]].
===== Sauvegarde de Debian =====
La sauvegarde s'effectue avec la commande **rsync**. Le fichier de sauvegarde est enregistré sur un média externe (disque) et il contient les partitions ''/boot'', ''racine'' et ''/home''. **SystemRescueCd** propose déjà un répertoire pour monter le média externe. Il faut cependant créer les points de montage pour Debian. Tout ce travail se réalise autant en console que dans un terminal dans l'environnement graphique (Xfce) de **SystemRescueCd**. Tapez **wizard** en console pour passer en mode graphique.
cat /proc/partitions
mount /dev/sdc1 /mnt/backup
install -d /mnt/debian
mount /dev/sdb4 /mnt/debian
install -d /mnt/debian/boot
mount /dev/sdb2 /mnt/debian/boot
install -d /mnt/debian/home
mount /dev/sdb5 /mnt/debian/home
La commande **cat** liste l'ensemble des partitions connues de **SystemRescueCd**. Nous lançons cette commande après avoir mis sous tension le disque externe. Nous supposons que la partition de sauvegarde réside sur la première partition du disque externe, soit ''/dev/sdc1''. La commande **install** crée les répertoires servant de point de montage de Debian.
La sauvegarde se réalise ainsi :
rsync -aHA --del --force --stats --progress /mnt/debian /mnt/backup
umount /mnt/debian/home /mnt/debian/boot /mnt/debian
===== Réorganisation des partitions =====
Dans un premier temps, nous supprimons toutes les partitions GNU/Linux. Dans un second temps, nous créons les nouvelles partitions Debian.
==== Suppression des partitions GNU/Linux sur le premier disque ====
La suppression s'effectue à l'aide de la commande **fdisk** car la table des partitions du disque est du type MBR en raison de la présence du système d'exploitation Windows. La partition étendue fait également partie de cette suppression. Nous conservons seulement les deux partitions primaires utilisées par Windows.
fdisk /dev/sda
Commande (m pour l'aide): d
Numéro de partition (1-4): 3
Commande (m pour l'aide): w
L'option **d** appelle la fonction de suppression. Par la suite nous indiquons le numéro de partition à supprimer. Lorsque toutes les partitions sont supprimées, nous utilisons l'option **w** pour enregistrer la nouvelle table de partitions.
==== Suppression des partitions du second disque ====
La table des partitions de ce disque étant du type GPT, nous utilisons la commande **gdisk** pour supprimer les partitions.
gdisk /dev/sdb
Command (? for help): d
Partition number (1-5): 5
Command (? for help): w
L'option **d** appelle la fonction de suppression. Par la suite nous indiquons le numéro de partition à supprimer. Lorsque toutes les partitions sont supprimées, nous utilisons l'option **w** pour enregistrer la nouvelle table de partitions.
==== Création des nouvelles partitions Debian ====
Nous utilisons une fois de plus la commande **gdisk** pour créer les cinq partitions Debian. Nous fournissons les informations nécessaires à **gdisk** en utilisant les valeurs présentées dans le tableau de la section [[réorganisation des partitions#Schéma des partitions proposé]].
gdisk /dev/sdb
Command (? for help): n
Partition number (1-128, default 1):
First sector (34-976773134, default = 739428352) or {+-}size{KMGTP}:
Last sector (739428352-976773134, default = 976773134) or {+-}size{KMGTP}: +50G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Command (? for help): w
L'option **n** sert à créer une nouvelle partition. L'utilitaire affiche le numéro par défaut de la partition qui sera crée; il suffit d'appuyer sur ''ENTER'' pour accepter la valeur par défaut. À la question suivant, on appuie à nouveau sur ''ENTER'' sans préciser de taille pour créer la partition au début de l'espace libre. À la ligne **Last sector**, nous spécifions la taille de la nouvelle partition. La valeur s'exprime en (K)ilo, (M)éga, (G)iga, (T)era, (P)eta octets. Il faut préfixer la valeur du signe **+**.
Lorsque la partition est de type **Linux filesystem**, la valeur est **8300**. C'est la valeur par défaut. Lorsqu'il s'agit de la partition de pagination, nous saisissons **8200**. La valeur pour la partition **Grub Bios** est **ef02**.
L'option **w** sauvegarde et enregistre la nouvelle table des partitions.
==== Formatage des partitions ====
Maintenant nous affectons un sytème de fichiers à nos nouvelles partitions.
mkfs.ext2 /dev/sdb1
mkfs.vfat -F32 /dev/sdb2
mkswap /dev/sdb3
mkfs.ext4 /dev/sdb4
mkfs.ext4 /dev/sdb5
Dans l'ordre nous affectons :
- Le système de fichiers **ext2** à la partition **/boot**
- Le système de fichiers **FAT32** à la partition **Grub Bios**
- Le système de fichiers spécifique à la partition de pagination
- Le système de fichiers **ext4** à la partition **root**
- Le système de fichiers **ext4** à la partition **/home**
===== Restauration de Debian =====
Nous utilisons **rsync** à nouveau. Si vous suivez ce tuto à la lettre, vous ne remontez pas la partition de sauvegarde car nous ne l'avons pas démontée à la fin de l'opération de sauvegarde.
mount /dev/sdb4 /mnt/debian
mount /dev/sdb5 /mnt/debian/home
mount /dev/sdb1 /mnt/debian/boot
rsync -aHA --del --force --stats --progress /mnt/backup/debian/ /mnt/debian
umount /mnt/backup
Le **/** à la fin de //mnt/debian/backup/// n'est pas une erreur de frappe. Il est essentiel car autrement les répertoires ne seraient pas à la racine mais plutôt à l'intérieur du dossier //debian//.
===== Reconfiguration de Debian =====
Nous devons reconfigurer le fichier ///etc/fstab// et le menu de démarrage afin de pouvoir utiliser Debian en fonction de la réorganisation des partitions et de la suppression du système d'exploitation Ubuntu. Nous allons donc //chrooter// sur la Debian restaurée.
==== Chroot sur Debian ====
Les trois partitions Debian sont déjà montées. Il faut compléter l'environnement //chroot// par l'ajout de fichiers du système.
cd /mnt/debian
mount -t proc none proc
mount -o bind /dev dev
mount -o bind /sys sys
swapon /dev/sdb3
cp /etc/resolv.conf etc
Toutes les ressources sont montées à la racine de Debian et le fichier de pagination est activé. Nous copions les informations de connexion au réseau afin de pouvoir accéder à Internet dans l'environnement //chrooté// si cela s'avère nécessaire. Puis nous //chrootons//.
env -i HOME=/root TERM=$TERM chroot . bash -l
==== Mise à jour de /etc/fstab ====
Nous appelons l'éditeur **nano**.
nano -w /etc/fstab
Nous modifions le fichier ///etc/fstab// afin que les partitions soient montés aux nouvelles adresses lors du démarrage de Debian. Nous obtenons le **UUID** à l'aide de la commande **blkid** ou de l'information retournée par **gparted** en sélectionnant la partition puis en ouvrant le menu Partition pour sélectionner l'option Information.
[[http://wiki.debian-facile.org/utilisateurs:aramis_qc:config:etc-fstab|Exemple du fichier /etc/fstab/]]
==== Mise à jour de GRUB ====
grub-install /dev/sda
update-grub
===== Redémarrage =====
Nous quittons le //chroot// pour retourner à la racine de **SystemRescueCd**. Nous quittons de façon propre en démontant toutes les partitions Debian et nous redémarrons.
exit
cd ~/
umount /mnt/debian/sys /mnt/debian/dev /mnt/debian/proc /mnt/debian/home /mnt/debian/boot /mnt/debian/
swapoff /dev/sdb3
shutdown -r now