mardi 25 novembre 2014

Linux Mint 17 Qiana KDE - Manipulation de la participation principale

Après avoir installé Linux Mint avec une configuration par défaut, tout sur la même partition principale (sauf le swap), j'ai décidé de déplacer "/home" vers une autre partition dans la partie étendue. Histoire de me refaire la main sur l'administration Linux.




J'aborderai ici, les phases que j'ai utilisées pour atteindre cet objectif.
Ceci a été valable pour ma configuration et dans mon environnement.
Le déplacement du répertoire "home" dans une autre partition est une opération très sensible et je décline toute responsabilité si vous essayez de reproduire ces étapes dans votre environnement et que cela fait planter votre système. ;-)

Préambule


Un disque ne pouvant être découpé qu'en 4 partitions max, c'est la raison pour laquelle c'est la dernière partition, partition étendue, qui sera sous-découpée en partitions supplémentaires.

Lors de l'installation de base et par défaut, de Linux Mint 17 KDE, il est créé deux partitions. Une partition principale sur laquelle la racine (/) est montée, avec tous les répertoires nécessaires au système, et une partition étendue sur laquelle le swap est installé.

Sur mon disque de 320 Go il a été créé une partition principale sur 318 Go et une partition étendue contenant le swap sur 2 Go.

Le but que je m'étais fixé était le suivant :

 

  • Réduire la partition principale à de 318 à 100 Go,
  • Augmenter la partition étendue de la place libérée,
  • Créer une nouvelle partition dans la partition étendue sur la place récupérée,
  • déplacer "/home" dans cette nouvelle partition.
Une des raisons de ce choix et qu'un jour ou l'autre j'installerai certainement un autre linux en parallèle, j'aime bien les petits challenges, et je veux pouvoir partager mon dossier "home" d'un linux à l'autre.

Réduire la partition principale


Les contraintes


Une partition ne peut être modifiée que si elle est libérée. Or, la partition racine ne pouvant être démontée (libérée) si le système qui y est installé fonctionne, elle ne peut donc pas être modifiée.
Dans la copie écran suivante on remarque qu'il n'est pas possible de modifier la partition tant qu'elle n'est pas libérée.

De même, il n'est pas possible de libérer une partition si elle est utilisée et la partition racine "/", utilisée par le système, ne peut être libérée.

Pour modifier cette partition il va falloir lancer un autre système autonome sur la machine permettant de la modifier sans qu'elle ne soit utilisée.

De même, ayant téléchargé l'ISO de la distribution KDE de Linux Mint 17, et installé cette version, ce sont les outils KDE de cette version que j'utiliserai par défaut...

Linux Mint depuis une Clé USB


La création d'un système autonome pouvant tourner sur la machine, sans utiliser le disque, peut être réalisée par l'installation d'un système sur une Clé USB.

Donc la première étape, pour lancer linux mint depuis une clé usb, c'est de créer une clé USB bootable contenant Linux Mint.

Ceci se fera à partir de l'image ISO de la distribution (Cf l'Article Tester Linux dans une machine virtuelle).

Pour installer Linux Mint sur une clé USB il suffit d'utiliser le créateur de clé USB proposé sur LM17 (KDE). Recherchez "mintstick" dans le gestionnaire de logiciel.


Mintstick

Une fois lancé on va chercher l'ISO de la distribution et choisir la clé USB que l'on va utiliser.

On lance alors la création de la clé par cet outil graphique
Cet outil graphique fait, en fait, un dd de l'image LM17 (KDE) ISO hybride vers la clé avec les bonnes options.

La clé est maintenant prête à être utilisée.


Réduction de la partition principale


Il faut maintenant arrêter la machine, brancher la clé USB, relancer la machine, aller dans le bios et paramétrer la séquence de boot pour commencer le boot par la clé USB et valider.

La machine boot alors sur la clé et n'utilisera que le swap (sur la partition étendue) du disque.

On lance alors le gestionnaire de partitions de KDE présent sur la clé.


Une fois le disque principal choisi, la participation principale sélectionnée (sda1), on choisira redimensionner et, avec le curseur (bande noire de part et d'autre de la partition), on déplacera, dans cette partie graphique, la partie supérieure (à droite) pour en réduire la taille comme montré ci-dessous :

Après un écran de Warning reprenant les actions qui vont être réalisées on va pourvoir lancer l'opération.

L'opération va prendre un peu de temps :

Voir beaucoup de temps !

Bref plus d'une heure dans mon cas sur une machine qui n'est plus un foudre de guerre.

Augmenter la partition étendue de la place libérée.


L'étape précédente réalisée, on arrêtera la machine, enlèvera la clé, rallumera la machine, on modifie le BIOS pour un boot par le disque dur en premier et on lance le système.

Une fois le système lancé, on retrouve un clavier sain et on peut continuer nos opérations.

On relance le gestionnaire de partition KDE et, avant d'essayer de le faire réellement, on lit la suite car ça ne marche pas ! :p

Pour modifier la partition étendue il faut la libérer. Pour la libérer on désactivera le Swap.

On choisi la partition étendue pour la redimentionner.

On déplace le curseur vers la gauche pour attribuer la partie libre à la partition étendue qui se verra sous la forme de partie non allouée.

Une fois la configuration cible réalisée on appliquera les modifications par le bouton ad hoc  .

Encore l'écran de warning...

 Et le beau message d'erreur ne permettant pas de réaliser l'opération voulue !!!

La solution qui marche :

Après moult tests, essaies et autres galères, il s'avère que ce que je n'ai pas pu réaliser avec le gestionnaire de partition KDE s'est fait sans problème avec gparted. Gparted est le gestionnaire de partition gnome qui tourne tout aussi bien sous KDE. Donc direction le dépôt logiciel pour télécharger et installer gparted.

On reproduit donc les options essayées sous KDE : Choix de la partition étendue, faire glisser la poignée pour récupérer la place libre ...

Vérifier si cela correspond au résultat attendu :

Valider par la coche les choix opérés et voir que tout se passe en trois coups de cuillère à pot !

On peut maintenant réactiver le swap présent sur la partition étendue car les prochaines opération n'impactent pas le conteneur de partition étendue à proprement dit.

Créer une nouvelle partition dans la partition étendue de la place récupérée


On va créer une nouvelle partition dans la partition étendue.
Une fois la partition étendue choisie, on sélectionne créer une nouvelle partition (logique), on le fait sur toute la place disponible, au format ext4 et, si nécessaire, on pourra lui donner une étiquette.

Après avoir renseigné tous les choix précédents on les valident avec la coche pour appliquer les changements.

La partition est créée en ext4 sur /dev/sda6

Un petit coup de formatage pour nettoyer, ça ne sert, ici après une création, à rien d'autre qu'à montrer la possibilité de le faire ! :p

Déplacer "home" dans une nouvelle partition


Pour ce faire on utilisera l'outil "disques" ("gnome-disk-utility") que l'on ira chercher avec le gestionnaire de logiciel et on l'installera.

Maintenant, avant de continuer plus loin en utilisant cet outil, je vais développer un peu la notion de montage et point de montage.

Vulgarisation sur la notion de point de montage
ou quand Star Trek n’est pas de la science-fiction !


Le disque dur est vu, pour un utilisateur, comme un immense couloir avec la possibilité de créer autant de porte que nécessaire vers des espaces de stockage (dans la limite de la taille du stockage disponible).
Dans chaque espace de stockage peut être créé des sous espaces de stockage accessible derrière de nouvelles portes.
Derrière la porte « home » vous avez le stockage « home », … Dans cet espace de stockage vous pouvez avoir des sous espace comme un « user » accessible par la porte « user » après la porte « home » => « /home/user »
Cependant pour rentrer dans ces espaces il n’y a qu’une seule porte initiale, la racine, appelée « / » (slash).
Créer une partition sur un disque c’est le couper pour créer une autre Zone séparée d’espaces de stockage.
Cependant il n’y a toujours qu’une seule porte d'entrée sur le système de stockage qui est « / » et qui appartient à la partition principale.
Pour accéder aux autres partitions, ou zones d’espaces de stockage, pouvant aussi être un périphérique (une clé USB, un cd-rom, …), on va faire un peu de « Star Trek » à la « Montgomery Scott » aussi connu sous le surnom de « Scotty ».

On va donc créer des points de montage (Téléportation M. Scott). On peut visualiser un point de montage comme étant un téléporteur que l’on place juste au niveau d’une porte et qui vous transporte automatiquement vers la nouvelle Zone d’espaces de stockage.
Pour plus de détail voir la commande Linux (unix) "mount".

Le masquage du mount : si vous montez ce téléporteur sur la porte d’un espace de stockage que vous utilisez, cet espace de stockage vous est masqué le temps que le montage est actif. Tant que le téléporteur est sur votre porte, quand vous la traversez, vous vous retrouvez téléporté vers l’espace qui y est monté et non dans votre espace de stockage initial de la partition principale.
Donc si vous avez un fichier toto derrière la porte « home » dans l’espace de stockage principal, puis si vous montez une partition sur cette porte, vous allez vous retrouver sur la nouvelle Zone d’espaces de stockage quand vous la traverserez et, si vous ne l’y avez pas copié, vous n'y trouverez pas de fichier toto.
Heureusement, si vous démontez cette porte de téléportation, vous retrouverez votre fichier toto après l’avoir de nouveau franchie.

Ces points de montage peuvent être gérés automatiquement par le système pour certains, insérer un CDROM et un point de montage cdrom se créé automatiquement dans l’espace de stockage media qui vous permet d’accéder au contenu du CDROM : « /media/cdrom ».
Ils peuvent aussi être gérés par l’utilisateur.
Si l’on veut déplacer le contenu de l’espace de stockage « home » dans une nouvelle partition on va être amené à monter cette nouvelle partition sur /home, téléportation derrière la porte home vers la nouvelle partition.
Ceci est fait pour que le système continu de voir un espace « home » même s’il est automatiquement téléporté vers la nouvelle partition. Merci Monsieur Scott.

Démontage d'une porte de téléportation : tant que vous avez un client qui a ouvert une porte de téléportation (un shell par exemple où vous vous seriez déplacé dans au travers de cette porte), vous ne pourrez pas démonter ce téléporteur tant que le client est dans la zone.
Pour plus de détail voir la commande Linux (unix) "umount".

Les actions à réaliser


Pour ce qui me concerne, je vais utiliser ce principe de masquage du répertoire "home" initial, pour sécuriser la manipulation de déplacement du « /home ».
Je vais :
  • Créer un point de montage /homeNew pour ma nouvelle partition.
  • Copier le contenu de /home dans /homeNew (sudo cp –av /home/* /homeNew/)
  • Changer le point de montage de /homeNew en /home
Certes j’occuperai deux fois la taille de /home. Une première fois dans l’espace principal derrière la porte /home (sans le téléporteur) et une deuxième fois sur l’espace dans lequel on est téléporté quand le montage du nouvel espace ce fait sur cette porte (quand le téléporteur est en place).
Cela me permet de continuer à avoir un espace /home cohérent en cas de problème de montage de la nouvelle partition, ou une erreur d’attributs lors de la recopie des fichiers du home original.
En cas de problème il suffira de désactiver ou de rendre impossible le montage pour retrouver le /home d’origine sur la partition principale.

Créer un point de montage pour la nouvelle partition


Avec l'outil "disques" on va pouvoir travailler sur les partions existantes.
En premier on aura choisi le disque, dans la colonne de gauche, puis, dans le schéma central de la partie droite on clic sur la partition sur laquelle on veut travailler. Pou moi la partition sda6 sous la partition étendue.

On va maintenant pouvoir utiliser l’icône engrenages pour modifier les options de montage

On arrive sur un écran avec les options par défaut et il faudra actionner l’interrupteur (1/0), en haut de cet écran, pour accéder aux options

On choisira, dans la liste nommée "s'identifier comme", la ligne présentant "UUID=.....".
On modifie les autres paramètres tel que :
  • options de montage on remplace par le mot "defaults"
  • point de montage  on choisira un répertoire encore inexistant sous la racine comme un "/homeNew"
  • dans le type de système de fichier on choisira celui pris pour cette nouvelle partition, pour moi "ext4"

Un fois le bouton "Valider" cliqué on vérifie encore que le point de montage n'a pas changé (a tendance à changer lorsque l'on joue avec "s'identifier comme") et que tous les paramètres sont OK.
On va saisir le mot de passe root car il va y avoir la création/modification d'une entrée dans un fichier système. Pour les inconditionnel du mode texte dans "/etc/fstab"

On va maintenant pouvoir démonter la partition

Et la remonter, ce qui va se faire par la lecture du fichier /etc/fstab

Et avoir pour conséquence un montage sur /homeNew tel que paramétré

Copier le contenu de /home dans /homeNew


On peut voir ici les deux répertoires :
  • Le /home avec le dossier des utilisateurs de ce système (il n'y en a qu'un pour le moment)
  • Le /homeNew qui contient déjà un dossier "lost+found" ce qui est normal, et on ne le touchera pas, car c'est la racine de la partition.

Le répertoire /home est critique dans le sens où les dossiers utilisateurs contiennent tous les éléments  nécessaires à celui-ci pour, entre autre, configurer son environnement à son login.
Un dossier utilisateur défectueux et il ne peut plus se loguer.
Les droits des fichiers des répertoires utilisateurs sont tout aussi important à préserver.
On copiera donc le contenu de /home vers /homeNew par une commande cp, dans un shell, commande exécutée en root (sudo) avec les paramètre "a" pour préserver les droits, prendre aussi les fichier cachés et le faire de manière récursive (inclure les sous répertoires) et "v" pour verbeux si certains veulent vérifier que tout c'est bien passé pour chacun des fichiers.
  • sudo cp –av /home/* /homeNew/

On a bien notre répertoire utilisateur de copié dans la nouvelle partition. On peut aussi vérifier les droits des fichiers et du répertoire ainsi déplacé.

Changer le point de montage de /homeNew en /home


Maintenant la dernière opération consiste à masquer la porte home par un téléporteur vers la nouvelle partition. Cela se fait en modifiant le point de montage de notre nouvelle partition pour ne plus être sur "homeNew" mais sur "home" par l'interface vue précédemment.
Une fois fait on peut alors rebooter le système qui utilisera le montage du /home sur la partition créée.

Faire un peu de ménage dans l'ancien "/home"


Une fois le transfert validé et les données vérifiées il n'est pas trivial de revenir en arrière pour nettoyer l'ancien home.
Cependant le principe est le suivant :
  • démonter /home (enlever la téléportation),
  • faire le ménage de /home (l’espace de stockage initial de nouveau accessible derrière la porte home),
  • remonter /home pour retrouver la téléportation vers la partition créée.
Pour se faire il va falloir éditer un fichier sensible : "/etc/fstab" avec les droits super-user (root) !
Fichier /etc/fstab => Action d'administration => Ouvrir comme texte

Devant la ligne de notre montage de partition sur /home on va jouer en ajoutant ou supprimant un "#" en début de ligne pour respectivement la commenter ou l'activer. Dans la copie écran suivante on voit l'action sur la dernière ligne, celle de /home, où le caractère "#" en début de la ligne permet de la commenter.


Dans un premier temps on met un "#" (sans les ") en début de la ligne pour la commenter, on sauvegarde le fichier, on ferme l'éditeur et on reboot la machine.
La ligne étant commentée, la machine reboot sans le montage de la partition et donc sur le "home" de la partition principale.
On peut le vérifier en tapant la commande "mount" dans une fenêtre console.
Elle ne doit pas remonter de montage sur /home.

Maintenant que l'on est sur l'ancien home on va pouvoir faire le ménage avec parcimonie !!!
On va se connecter avec notre compte d'administration (le compte déclaré à l'installation), on va pouvoir supprimer, sous /home, tous les comptes des utilisateurs standard. On prendra soin de garder notre compte d'administration même si on peut y supprimer les documents tels que les images, le documents openOffice et autres documents non sensibles.
En réalisant ainsi, on se garde la possibilité de se connecter administrateur, que le montage de home ait réussi ou non. Par la suite on se rendra vite compte dans quel home on aura lancé la session par l'aspect vide de celle sur le home de la participation principale.

On va alors faire la démarche inverse en éditant de nouveau le fichier /etc/fstab en tant que super-user, enlever le "#" pour réactiver le montage de la partition sur /home, on sauvegarde et on reboot la machine.

On vérifie alors, toujours dans une fenêtre console, que le montage s'est effectué.
Exemple avec la commande suivante :
sudo mount | grep home
qui, après la saisie du mot de passe root, retourne s'il y a un montage contenant le mot home et, pour mon cas, j'ai bien la ligne :
/dev/sda6 on /home type ext4 (rw)


Tout est ok on est sur la nouvelle partition !

En savoir plus


Pour aller plus loin dans les avantages/inconvénients de ce type de positionnement du "home", sur la méthode utilisée, ..., vous pouvez lire l'article suivant :
http://doc.ubuntu-fr.org/tutoriel/deplacer_home


Bonne journée !

Aucun commentaire:

Enregistrer un commentaire