[PARTITION] Augmenter taille /home sans perte de données

Bonjour,

Je suis sous Jessie.
Voici mon partition actuel :

    /dev/sda1   *         2048    206847    204800   100M  7 HPFS/NTFS/exFAT    
    /dev/sda2           206848 324554751 324347904 154,7G  7 HPFS/NTFS/exFAT
    /dev/sda3        324556798 488396799 163840002  78,1G  5 Extended
    ├─/dev/sda5      324558848 355278847  30720000  14,7G 83 Linux
    ├─/dev/sda6      355280896 478160895 122880000  58,6G 83 Linux
    └─/dev/sda7      478162944 488396799  10233856   4,9G 82 Linux swap / Solaris

Les deux premières partitions sont du windaube 8.
La troisième est ma debian avec une partition système de 15 Go et une partition /home de 58 Go (et la swap de 5Go).
Je veux faire sauter windows (pour l’usage que j’en ai, je préfère utiliser une VM).

Est-il donc possible de basculer ces 154Go vers ma Nunux en fusionnant mon home sans perte de données bien sûr ?
La solution idéale serait couper ce 150 Go en 2 (100 Go pour des VMs sur une partition à part ET 50Go à rebasculer dans mon /home)…

Ce type de manipulation n’est jamais sans risque, donc je ne peux que recommander de faire une sauvegarde des données importantes auparavant.

Après la suppression des deux partitions Windows, plusieurs options s’offrent à toi. Parmi elles :

  • Méthode “classique” (lourde) : depuis un système “live”, déplacer la partition étendue et les partitions logiques de / et /home au début du disque avec un outil comme gparted, agrandir la partition de /home et son système de fichiers à la taille désirée, créer une partition logique pour les VM dans l’espace restant. Variation : créer une partition primaire au début du disque pour les VM avant de déplacer la partition étendue.

  • Méthode LVM : depuis un système live ou le système Debian lui-même (mais en console sous root), créer une partition principale de type LVM dans l’espace libre, y créer un PV avec pvcreate, créer un VG utilisant ce PV avec vgcreate, créer un LV pour /home avec lvcreate, y copier les données de /home (selon la méthode de copie il peut être nécessaire de démonter /home au préalable), créer un second PV dans la partition anciennement utilisée pour /home et l’ajouter au VG avec vgextend, créer un nouveau LV pour les VM. Selon la méthode de copie des données de /home, il pourra être nécessaire de mettre à jour l’UUID dans /etc/fstab. Comme il est facile d’agrandir à chaud un LV et un système de fichiers de type ext ou btrfs, tu n’es pas obligé d’allouer tout l’espace du VG dès le début, tu peux laisser de l’espace libre pour agrandir ou créer des LV au fur et à mesure des besoins. C’est plus compliqué de réduire.

  • Méthode btrfs : depuis un système live ou le système Debian lui-même (mais en console sous root), créer deux partitions principale pour /home et les VM. Si la partition logique de /home est déjà en btrfs, l’étendre avec la nouvelle partition principale. Sinon, initialiser la nouvelle partition principale pour /home en btrfs, y copier les données de /home, démonter la partition logique de /home, l’utiliser pour étendre le système de fichiers btrs, mettre à jour l’UUID de /home dans /etc/fstab.

Je ne décris pas toutes les opérations dans le détail, c’est juste pour donner une idée de la complexité de chaque méthode.

Un grand merci pour ta contribution PascalHambourg.

Vu que c’est un SSD, et d’après ce que j’ai lu (rapidement) sur le btrfs, il me semble que cette solution soit la plus adaptée. (et au final, la plus sécurisante d’après ce que je peux comprendre).

Je vais creuser par là donc.

J’avoue par contre n’avoir pas compris grand chose sur la méthode LVM que tu m’as éxposée…

Je reviendrai ici en cas de doutes…

EDIT : Je suis en ext4, je dois tout reconfigurer en btrfs ? (celà semble être une question rhétorique…)

Ah ? Si c’est par rapport au TRIM (option “discard”), ext4 supporte aussi cette fonctionnalité.
Quant au côté sécurisant, il faut garder à l’esprit que btrfs est plus jeune et pas encore aussi mûr et fiable qu’ext4.

Si tu ne connais pas LVM, c’est normal. Tu peux aller voir la description générale sur Wikipédia.
En résumé, LVM est une couche d’abstraction qui permet de créer un espace de stockage (VG, groupe de volumes) à partir d’un ou plusieurs PV (volumes physiques : partitions ou disques), et d’y créer des LV (volumes logiques) sans se préoccuper de leur position physique. On peut donc créer ou agrandir un volume logique à partir d’emplacements physiques non contigus. Si tu l’avais utilisé dès l’installation, il aurait été très facile de faire ce que tu demandais.

Le système de fichiers btrfs supporte nativement certaines fonctionnalités de LVM comme l’agrégation de plusieurs partitions en un même système de fichiers, ce qui permet de se passer de LVM dans certains cas.

Non. La nouvelle partition qui servira de base à /home devra être initialisée en btrfs. Ensuite, après le transfert des données de /home de l’ancienne à la nouvelle partition, l’ancienne partition sera réinitialisée lorsqu’elle servira à étendre le système de fichiers btrfs de la nouvelle. Je dois préciser que je n’ai jamais testé cette fonctionnalité, j’ai seulement lu à son sujet.

Bonjour

la premiere methode est la plus simple à réaliser (faite plusieures fois au boulot)

Toutefois, il vaut mieux prévoir en plus un disque de secours pour grub (doc.ubuntu-fr.org/boot-repair) surtout si on en profite pour détruire la ou les partitions windows.

Bonjour, alors j’ai fait la première méthode, mais elle n’a pas été sans obstacle… Rien d’insurmontable bien sûr.
D’une : Après suppression des deux premières partitions (windows), j’étais avec un espace vide de 154Go et ma partition étendue avec /home, /, et swap.
IMPOSSIBLE de la déplacer en premier lieu. J’ai du :
-> Désactiver la swap (pourquoi est-elle active alors que je boot sur un liveUSB ???)
-> Agrandir la partition étendue au maximum (250Go)
-> Enfin, j’ai pu déplacer mes partitions logiques.
-> Agrandir mon /home
-> Créer ma partition VM (partition logique)

=> Mon GRUB n’a pas sauté

Merci pour votre contribution.

Petits aléas : Il faut nécessairement un ubuntu x64 avec un boot-repair x64 pour réparer un GRUB d’OS x64. (Heureusement que je n’en ai pas eu besoin ^^)

Dommage, c’était la moins “intéressante”.

C’est un des inconvénients de la partition étendue : on ne peut pas la modifier si une de ses partitions logiques est en cours d’utilisation.

Certains systèmes GNU/Linux live montent automatiquement les partitions de swap présentes sur les disques locaux. Cela peut être utile si la machine n’a pas beaucoup de RAM.

x64 d’accord (*), mais pourquoi nécessairement Ubuntu ?

  • Et encore, le chargeur GRUB lui-même étant indépendant du système (contrairement aux programmes qui servent à l’installer), un chargeur installé par un système 32 bits peut très bien amorcer un système 64 bits et vice versa.