[Résolu] Fusionner deux disques durs pour agrandir le home

Bonjour,
j’aimerais savoir si c’est possible d’étendre ma partition /home sur un deuxième disque dur.

En fait, j’ai un disque sda qui contient à la fin de celui ci une partition /home et j’ai un second disque dur vierge sdb que j’aimerais fusionner avec la partition /home du premier disque, agrandissant cette dernière.

Debian Jessie stable Xfce

Merci à l’avance

Personnellement je ne recommande pas ce type de manœuvre, je préconiserai plutôt de monter le second disque dans ton /home.

Si jamais ton deuxième disque crash tu n’a plus de /home, il nettement plus simple de le monter et d’y stocké une arborescence adéquat dedans.

Ps : j’ai déplacé ton fil dans Support, la catégorie Astuces est là pour en donner pas en demander ^^

La mise en garde de Clochette est légitime, mais voici quand même un petit étalage pas forcément exhaustif de façons de combiner plusieurs disques/partitions/volumes/systèmes de fichiers.

  • Si le système de fichiers est btrfs, il est possible de l’étendre avec une autre partition, volume, disque… Si c’est un système de fichiers ext4, j’ai lu qu’on peut le convertir en btrfs mais je n’ai jamais essayé.
  • Si le système de fichiers est dans un volume logique LVM, il est possible de l’étendre après avoir étendu son groupe de volumes en lui ajoutant le nouveau disque. On ne peut pas convertir une partition normale en partition LVM sans perte des données (donc sauvegarder avant).
  • Si le système de fichiers est dans un ensemble RAID de type “linear” (JBOD), il est possible de l’étendre en ajoutant un membre à l’ensemble RAID. On peut éventuellement convertir une partition normale en partition membre de RAID sans perte des données.
  • On peut faire une union avec un autre système de fichiers pour les combiner sur un même point de montage avec aufs ou autre “union mount” disponible.

Sinon, il reste les méthodes classiques qui laissent les deux systèmes de fichiers indépendants, mais qui n’unifient pas les capacités disponibles :

  • créer des liens symboliques ou faire des “bind mount” de l’un vers l’autre
  • monter l’un sur un répertoire de l’autre
1 J'aime

Merci à toi @Clochette, j’ai noté la différence entre Astuces et Support.
Alors il serait mieux, en lisant ce que dit @PascalHambourg aussi, d’utiliser une méthode “classique”.

Mon home (sda8) est formaté en ext4 et mon disque dur libre (sdb1) est en ext4 aussi. Il semble y avoir trois méthodes si je comprends bien PascalHambourg:
1- créer des liens symboliques
2- faire des bind mount de l’un vers l’autre ou
3- monter l’un sur un répertoire de l’autre.

Laquelle de ces techniques est “transparente” pour l’utilisateur? C’est à dire que le home du premier disque se remplit et lorsque plein c’est le deuxième disque qui se remplit à son tour? À moins que ça fonctionne autrement?

Je suis sur Debian depuis 2 semaines seulement. Je ne connais aucune de ces trois techniques, si vous pouviez me diriger vers un tuto ou si c’est pas trop long pour vous, me dire quoi et comment faire?

J’apprécie vraiment

De ce point de vue, aucune.
Si par exemple tu montes /dev/sdb1 sur /home/data, si tu écris dans /home/data ça remplit /dev/sdb1 et si tu écris ailleurs dans /home ça remplit /dev/sda8.

A ma connaissance la seule méthode qui pourrait permettre d’unifier la capacité disponible sans modifier le format des partitions, c’est un “union mount” avec aufs ou équivalent.

Si on me guide je suis prêt à m’attaquer à la première solution, qui semble la plus basique. Monter /dev/sdb1 sur /home/data. Tant que je ne l’aurai pas fait je ne comprendrai pas.

Étant donné que je suis un débutant et que pour moi, sdb1 ne voulait rien dire il y a deux semaines, j’ai besoin d’y aller étape par étape. :yum:

Bon, et bien finalement je ne suis pas capable de “monter” /dev/sdb1 sur /home/data. Est-ce que quelqu’un pourrait me montrer étape par étape comment on fait svp? J’y connais vraiment rien.

Sur Google je trouve facilement comment monter (qui est pris pour assembler, installer) deux disques dans un boitier. haha
Je cherche peut être mal mais je ne trouve rien pour solutionner mon petit problème.
Merci à l’avance

Tout cela se fait en root.
D’abord, on crée le répertoire qui servira de point de montage.
mkdir /home/data
Ensuite, on peut monter la partition manuellement sur ce répertoire.
mount /dev/sdb1 /home/data
Le contenu de la partition est maintenant accessible dans /home/data.

Si on veut que la partition soit montée automatiquement au démarrage, il faut ajouter une ligne dans le fichier /etc/fstab (ce n’est pas une commande à exécuter mais un fichier à éditer) :
/dev/sdb1 /home/data ext4 defaults
Comme les noms de périphérique des disques peuvent changer, il est recommandé de remplacer /dev/sdb1 par UUID=xxx-yyy-zzz où xxx-yyy-zzz représente l’UUID de la partition. Il peut être obtenu avec la commande suivante :
blkid /dev/sdb1
Après avoir modifié /etc/fstab, il suffit de demander le montage avec
mount /dev/sdb1
ou
mount /home/toto
Mais ce n’est pas tout. Par défaut, seul root peut écrire dans cette partition. Pour qu’un autre utilisateur puisse écrire, il faut modifier les permissions et/ou le propriétaire.

chown toto /home/data
rend l’utilisateur “toto” propriétaire de /home/data (la racine de /dev/sdb1, pas le point de montage).

chmod oga+rwx /home/data
autorise tout le monde à lire, écrire et parcourir dans /home/toto.

2 J'aime

Oui. Il faut enlever les guillemets dans le fstab.
La ligne doit ressembler à ceci :

UUID=39bb8e38-55e8-46ec-81af-10d72f401e41 /home/data ext4 defaults 0 0

Tu peux placer un espace ou des sauts de tabulation entre les paramètres, ou les deux.

Ton problème de boot était probablement dû à un problème de ton fstab.

Dans le doute, il faut booter en “safe mode” dans le menu grub du départ et tu peux ensuite éditer ton fstab en console avec nano, par exemple. Nano est un bon éditeur, plus convivial que vi ou vim pour un débutant sous Linux.

Quand ça ne démarre pas, tu peux aussi parfois faire Ctrl+Alt+F1 ou Ctrl+Alt+F2. Cela te permet de changer de console et le plus souvent de reprendre la main. Tu peux te loguer en mode texte et agir directement.

Il me semble que les guillemets sont optionnels. Si mount /home/data marche (il ne faut pas que la partition soit déjà montée), c’est bon.

De toute façon, une erreur dans /etc/fstab ne peut pas bloquer le démarrage “juste après le BIOS” mais bien plus tard, après GRUB, après l’initramfs, lors de la phase d’init, et ne bloque pas le système mais interrompt l’initialisation et propose de lancer un shell de dépannage qui permet de réparer l’erreur et redémarrer.

Avant de rebooter on peut tester la fstab

sudo mount -a

et verifier en listant

mount

Attention la commande ‘mount -a’ va monter l’ensemble des points de montages pas encore monté et renseigné dans le fstab, là il est question de pouvoir tester uniquement le points de montage en question.

Uniquement ceux qui ne sont pas marqués “noauto”, et qui ont donc déjà dû être montés automatiquement au démarrage s’ils étaient déjà inscrits.

Avant de redémarrer, tout fonctionnait comme je l’espérais. Dans mon /home il y avait un dossier /data dans lequel je pouvais enregistrer des fichiers. Je devais donc écrire directement sur mon deuxième disque dur, le sdb1. Ce n’est que lorsque j’ai voulu tester le montage automatique de ce disque au démarrage que l’histoire n’a plus fonctionné.
Je ne comprends pas quel démarche suivre sans reperdre mon système. Parce que moi, démarrer en administrateur en ligne de commande, c’est encore trop tôt. Je débute de débutant. Je me débrouille avec des tutoriels mais je ne comprends pas les subtilités des commandes. Je cherche à rendre mon système fonctionnel et après je ferai de “l’administration” une activité parallèle. Je trouve ça passionnant.

Ici, @speedstream me propose une démarche, enlever les guillemets et ajouter deux 0 à la fin de la ligne que je copis dans /etc/fstab

Mais est-ce que je met /dev devant la ligne de mon UUID?

/dev/UUID=39bb8e38-55e8-46ec-81af-10d72f401e41 /home/data ext4 defaults 0 0
ou
/dev/UUID=39bb8e38-55e8-46ec-81af-10d72f401e41 /home/data ext4 defaults
ou
UUID=39bb8e38-55e8-46ec-81af-10d72f401e41 /home/data ext4 defaults 0 0
ou
UUID=39bb8e38-55e8-46ec-81af-10d72f401e41 /home/data ext4 defaults

Je sais, c’est une question bête de débutant mais je me suis rendu compte qu’une lettre fait tout la différence entre “ça marche versus ça marche pas”

Merci pour vos partages
J’attends un tuto complet avant de me réassayer, j’aimerais éviter de me retrouver à réinstaller mon OS encore une fois. Je pense qu’il ne manque pas grand chose comme un détail au tuto de @PascalHambourg, quelque chose que j’ai mal fait…

Juste ça, en remplaçant l’UUID par celui de ta partition. Les deux 0 à la fin sont facultatifs.
Ensuite tu essaies de la monter avec

mount /home/data

et si ça marche il n’y a pas de raisons que ça ne marche pas au redémarrage.

Bonsoir Yordox,

Non. Normalement, tu n’as pas besoin de spécifier le /dev

Dans le /etc/fstab, il faut spécifier les deux zéros.
Le premier zéro indique au système s’il faut faire un dump de la partition. J’ai jamais vu autre chose que zéro ici…
Le second zéro indique la priorité de montage de cette partition lors du démarrage. Les zéros sont montés avant les 1 et 2.

Tu ne devrais pas rencontrer de problèmes avec le zéro du dernier rang.
La page man fstab dit cependant qu’il faudrait plutôt mettre un 2.

Dans le choix de 4 lignes que tu as montré, c’est la ligne 3 qui respecte la syntaxe/structure du fstab.
UUID=39bb8e38-55e8-46ec-81af-10d72f401e41 /home/data ext4 defaults 0 0

D’autre part, je t’ai dit que ta ligne devait ressembler à la mienne. Mais tu as copié l’UUID de la partition de MON disque dans TON fstab. Tu n’as qu’une chance sur des milliards d’avoir le même :wink:

Pour connaître l’UUID de ta partition, fait un blkid (en root ou avec sudo suivant ta distribution) dans une console.
Tu obtiendras la liste de tous les UUID de tes partitions, dont la /dev/sdb1 qui t’intéresse.
Tu récupères cet UUID et tu le colles en lieu et place du mien dans le fstab

Autrement dit, 39bb8e38-55e8-46ec-81af-10d72f401e41 doit disparaitre pour être remplacé par le bon UUID de /dev/sdb1

Allez. Un dernier petit effort. Je suis certain que ça va le faire :slight_smile:

Je reprends ici le tuto de @PascalHambourg qui m’a amené au porte de la réussite, tout fonctionnait AVANT le redémarrage. Presque prêt à recommencer l’aventure, manque que votre confirmation que tout est bon avec le point 7 qui est à clarifier, merci pour tout

1- en root.
Créer le répertoire qui servira de point de montage
mkdir /home/data
Monter la partition manuellement sur ce répertoire.
mount /dev/sdb1 /home/data
Le contenu de la partition est maintenant accessible dans /home/data.

2- chown pierre /home/data
rend l’utilisateur “pierre” propriétaire de /home/data (la racine de /dev/sdb1, pas le point de montage).
chmod oga+rwx /home/data
autorise tout le monde à lire, écrire et parcourir dans /home/pierre.

3- Par défaut, seul root peut écrire dans cette partition. Pour qu’un autre utilisateur puisse écrire, il faut modifier les permissions et/ou le propriétaire.
chown pierre /home/data
rend l’utilisateur “pierre” propriétaire de /home/data (la racine de /dev/sdb1, pas le point de montage).

4- chmod oga+rwx /home/data
autorise tout le monde à lire, écrire et parcourir dans /home/pierre

5- l’UUID de la partition. Il peut être obtenu avec la commande suivante :
blkid /dev/sdb1
a959f1f9-5688-4eb8-a249-bcca8cb7de88 ça c’est MON uuid hahaha :yum:

6- Si on veut que la partition soit montée automatiquement au démarrage, il faut ajouter une ligne dans le fichier /etc/fstab (ce n’est pas une commande à exécuter mais un fichier à éditer) :
/dev/sdb1 /home/data ext4 defaults
Comme les noms de périphérique des disques peuvent changer, il est recommandé de remplacer /dev/sdb1 par UUID=xxx-yyy-zzz où xxx-yyy-zzz représente l’UUID de la partition, donc, la ligne exacte à coller dans le fstab sera:
UUID=a959f1f9-5688-4eb8-a249-bcca8cb7de88 /home/data ext4 defaults 0 0

7- Après avoir modifié /etc/fstab, il suffit de demander le montage avec
mount /dev/sdb1
(le retour du shell : /dev/sdb1 est déjà monté sur /home/data)
ou
mount /home/pierre
(ici le shell me retourne : impossible de trouver /home/pierre dans /etc/fstab)

Il n’y a que le point 7 qui me fatigue. Lors du premier essai il y a eu ces réponses du shell qui me font me questionner. Quelle commande devrais-je utiliser rapport à la première expérience? Je vais faire comme vous allez me le conseiller et on verra. S’il le faut je réinstallerai une énième fois mon sysème. hahaha

@PascalHambourg tu suggères une troisième commande pour monter le disque et c’est
mount /home/data
C’est le seul point à régler avant que je ne recommence, quelle commande utiliser pour monter le disque

Merci à tous de participer, j’apprécie vraiment :slight_smile:

Je ne crois pas avoir jamais mentionné /home/pierre. Pour tester la ligne de fstab avant de redémarrer alors que la partition est déjà montée, il faut la démonter et la remonter :

umount /home/data
mount /home/data

mount /dev/sdb1 ne fonctionnera pas si la partition est identifiée par son UUID dans fstab, il faut donc spécifier le point montage défini dans fstab.

1 J'aime

Bonjour à Tous,

Salut Yordox,

Pour le point 7 :
Lorsque tu fais un mount /home/pierre la commande mount recherche dans le fstab un point de montage /home/pierre
Or, ton point de montage s’appelle /home/data. Il n’y a effectivement rien dans ton fstab qui s’apparente à /home/pierre. Donc il te le dit. “Il n’y en a pas dans le fstab”.

Si tu fais mount /home/data , ça va fonctionner.

Un point important qui subsiste :

Je te déconseille fortement de monter ta partition sdb1 sous /home/pierre
En admettant que ce répertoire soit ton ‘home’, qui contient donc déjà des dossiers Documents, Images, Modèles, etc…, on doit considérer que ce dossier n’est pas vide.
On monte toujours un périphérique dans un chemin vide. Cela semble logique, car on ne veut rien écraser ou effacer par erreur.

Autrement expliqué, pour toujours savoir où tu en es avec cette partition, ton but doit être de savoir que dans /home/data , tu vas trouver tout le contenu de /dev/sdb1 seul.
Si tu montes /dev/sdb1 dans /home/pierre, tu vas trouver son contenu au milieu des dossiers du /home/pierre de /dev/sda1.

J’ajoute que si tu montes /dev/sdb1 dans /home/pierre et que tu as deux dossiers aux noms identiques , que va-t-il se passer ? Ils seront mélangés. Ou tu les verras tout deux sans jamais être certain, sauf en les ouvrant, duquel est sur sda ou sur sdb. Bref, c’est le bazar.

Je comprends en revanche que /home/data ne soit pas dans ton ‘home’ quand tu ouvres un Explorateur de fichiers.
Tu peux par exemple créer le dossier data dans /home/pierre (/home/pierre/data) et remplacer /home/data dans ton fstab par /home/pierre/data.
Ainsi, tu trouveras dans ton ‘home’ (/home/pierre) un dossier data qui contiendra ta partition sdb1 une fois qu’elle est montée.

Tu pourras la monter en tapant mount /home/pierre/data puisque tu auras la ligne suivante dans ton fstab :
UUID=a959f1f9-5688-4eb8-a249-bcca8cb7de88 /home/pierre/data ext4 defaults 0 0

Allez ! Tiens-nous au courant :slight_smile:

2 J'aime

Ceci a résolu le problème, merci à tous


Alors après avoir bien lu vos suggestions, j’ai repris la séquence que @PascalHambourg m’a suggéré au tout début, séquence que j’ai modifié selon vos conseils à tous. Cela donne ceci:

1- en root.
Créer le répertoire qui servira de point de montage
mkdir /home/data
Monter la partition manuellement sur ce répertoire.
mount /dev/sdb1 /home/data
Le contenu de la partition est maintenant accessible dans /home/data.

2- l’UUID de la partition. Il peut être obtenu avec la commande suivante :
blkid /dev/sdb1
UUID=a959f1f9-5688-4eb8-a249-bcca8cb7de88
(j’ai enlevé les guillemets)
Si on veut que la partition soit montée automatiquement au démarrage, il faut
ajouter une ligne dans le fichier /etc/fstab
La ligne exacte à coller dans le fstab sera, sans les guillemets autour du numéro UUID:
UUID=a959f1f9-5688-4eb8-a249-bcca8cb7de88 /home/data ext4 defaults 0 0
3- Après avoir modifié /etc/fstab, il suffit de demander le montage avec
umount /home/data
mount /home/data
4- Par défaut, seul root peut écrire dans cette partition. Pour qu’un autre utilisateur puisse écrire, il faut modifier les permissions et/ou le propriétaire.
chown pierre /home/data
rend l’utilisateur “pierre” propriétaire de /home/data (la racine de /dev/sdb1, pas le point de montage).
5- chmod oga+rwx /home/data
autorise tout le monde à lire, écrire et parcourir dans /home/toto

1 J'aime