Ceci est une ancienne révision du document !
Création d'une partition de données personnelles sous Ubuntu
Souvent les ordinateurs portables sont équipés d'un SSD de petite taille et d'un disque dur de taille conséquente. Une des difficultés que l'on rencontre est l'obligation de mettre /home sur le disque dur. Cela oblige à faire une installation non automatique et à avoir une perte de performance pour l'accès aux fichiers de paramétrage et de cache des diverses applications. Il semble plus simple de laisser faire une installation totalement standard sur le SSD puis de fabriquer le plus rapidement possible une partition dédiée aux données personnelles sur le disque dur.
Ce tutoriel décrit la marche à suivre pour mettre ses données personnelles sur le disque dur.
Pour simplifier notre approche, nous décrirons le processus pour un seul utilisateur. S'il y a plusieurs utilisateurs sur le système, il suffit de rejouer le scénario à chaque ajout d'utilisateur.
Création des partitions
Il faut donc créer une partition, que nous appellerons Commun1, par convention. Pour cela il suffit d'utiliser gparted, De créer au besoin une table de partition puis une partition (par exemple au format ext4) et lui donner l'étiquette Commun1.
Monter la partition automatiquement au démarrage d'Ubuntu
La partition doit être montée automatiquement au démarrage. Le fichier /etc/fstab doit être modifié. Il est possible de le faire en ligne de commandes.
## Cette séquence monte automatiquement la partition et met à jour le fichier /etc/fstab LABEL=Commun1 ##### Il faut renseigner la valeur LABEL par le label qui a été mis lors du formatage . MOUNTPOINT=/$LABEL #### Le point de montage est à définir. Le mettre directement dans la partition racine est possible. Pour ceux qui souhaitent le mettre ailleurs, il faut alors préciser le point de montage. sudo mkdir $MOUNTPOINT echo "LABEL=$LABEL $MOUNTPOINT ext4 defaults 0 2 " | sudo tee -a /etc/fstab sudo mount -L $LABEL tail -2 /etc/fstab
Elles ne sont plus à refaire. La partition sera automatiquement montée au prochain boot.
Créer les répertoires pour les utilisateurs de ubuntu
Lorsqu'il a plusieurs utilisateurs, il peuvent avoir chacun leur propre partition. Ils peuvent aussi stocker leur données dans une partition commune. Chacun ayant un sous-répertoire personnel. Quelque que soit la méthode retenue pour la fabrication des liens, il est nécessaire de fabriquer un point d'entrée par utilisateur. Cette fabrication nécessite d'avoir des droits administrateur. Hors, tous les utilisateurs ne sont pas obligatoirement administrateur. La séquence de fabrication du point d'entrée est isolée du déplacement des données. La séquence de création d'un utilisateur est décrite en ligne de commande
## Création des répertoires des utilisateurs. Il peut y avoir plusieurs utilisateurs dans une même partition. ## Pré-requis. Ce script considère que tous les utilisateurs ont déjà été créés. Cependant il est possible d'en créer d'autres ultérieurement. ## Création de l'utilisateur principal LABEL=Commun1 MOUNTPOINT=/$LABEL ## Les deux commandes sont regroupées pour se prémunir d'une erreur de frappe dans le mot de passe sudo mkdir $MOUNTPOINT/$UTILISATEUR && sudo chown $USER:$USER $MOUNTPOINT/$USER ## ## Création des autres utilisateurs: Commande à faire autant de fois qu'il y a d'utilisateurs actuellement connus. ## Commande à faire à chaque fois qu'un nouvel utilisateur est créé. sudo mkdir $MOUNTPOINT/Nom-D'un-Utilisateur && sudo chown Nom-D'un-Utilisateur:Nom-D'un-Utilisateur $MOUNTPOINT/Nom-D'un-Utilisateur
Raccourci vers les dossiers du Dossier Personnel
Trois méthodes sont connues. Elles seront toutes les trois décrites. La première est à favoriser. Elle ne nécessite pas un reboot à chaque création d'un nouvel utilisateur. La seconde est basée sur des liens symboliques, Tout se passe chez l'utilisateur. Mais les liens symboliques semblent ne pas très bien fonctionner avec les nouvelles applications. La poubelle semble aussi ne pas très bien fonctionner. La troisième est au niveau supérieur. Mais chaque ajout d'utilisateur nécessite un reboot de l'ordinateur pour prise en compte des modifications.
Installation de liens par l'afficheur du bureau
Chaque utilisateur est capable de réaliser le transfert de ses propres données.. Aucune commande en mode administratif n'est nécessaire. Voici les commandes à faire
##Prérequis à l'exécution du déplacement des données ## Avoir créé et monté une partition ext4 avec une étiquette Commun1 ## Avoir créé le point d'entrée de l'utilisateur ## Avoir fermé ses applications afin que les fichiers puissent être déplacés. ## LABEL=Commun1 MOUNTPOINT=/$LABEL ## ## Cette séquence transfère automatiquement les données de l'utilisateur. ## for i in Bureau Téléchargements Modèles Public Documents Musique Images Vidéos do echo " " && echo " Début de déplacement des données existantes de $i" && sleep 5 mv -iuv /home/$USER/$i $MOUNTPOINT/$USER done ## liste pour vérifier ls -ls /home/$USER ls -ls $MOUNTPOINT/$USER
Ces commandes ne traitent pas les erreurs du style manque de place disque, répertoires ou fichiers déjà existants.
Il faut traiter ces situations manuellement.
Il faut s'assurer que les répertoires entrées ont bien été supprimés avant de passer à la suite.
En pratique, il n'y a pas d'erreur lorsque l'installation est récente. Cependant, cela peut arriver. Donc la suite n'est pas enchaînée automatiquement afin de permettre à l'utilisateur de finir le travail.
Lorsque les huit répertoires sont enfin vides et supprimés, il faut prévenir l'affichage du bureau pour prise en compte.
Cela se fera encore en ligne de commandes.
## Mise à jour du fichier de directives de l'utilisateur if [ -f "/home/$USER/.config/user-dirs.dirs.SAVE" ] then echo "sécurité déjà faite" else cp -v /home/$USER/user-dirs.dirs /home/$USER/user-dirs.dirs.SAVE fi ##sed '/^XDG_/d' /home/$USER/.config/user-dirs.dirs > fichier.tmp && mv -f fichier.tmp /home/$USER/.config/user-dirs.dirs xdg-user-dirs-update --set DESKTOP $MOUNTPOINT/$USER/Bureau xdg-user-dirs-update --set DOCUMENTS $MOUNTPOINT/$USER/Documents xdg-user-dirs-update --set PICTURES $MOUNTPOINT/$USER/Images xdg-user-dirs-update --set TEMPLATES $MOUNTPOINT/$USER/Modèles xdg-user-dirs-update --set MUSIC $MOUNTPOINT/$USER/Musique xdg-user-dirs-update --set PUBLICSHARE $MOUNTPOINT/$USER/Public xdg-user-dirs-update --set DOWNLOAD $MOUNTPOINT/$USER/Téléchargements xdg-user-dirs-update --set VIDEOS $MOUNTPOINT/$USER/Vidéos xdg-user-dirs-gtk-update cat /home/$USER/.config/user-dirs.dirs
Il ne reste plus qu'à changer d'utilisateur pour prise en charge. Il faut fermer la session et en ouvrir une nouvelle. Il est aussi possible de faire cette commande sudo skill -KILL -u $USER pour une exécution immédiate.
Installation de liens chez l'utilisateur
La technique décrite précédemment est parfaite. Elle traite huit dossiers classiques. Elle supprime les dossiers du répertoire home. Cela peut se révéler déstabilisant pour la référence officielle qui a acté que c'était toujours présent dans /home. Cependant elle permet d'accéder directement aux données sans avoir besoin de consulter la partition /home . C'est donc plus performant.
Elle ne traite pas d'autres dossiers que certaines applications installent discrètement en standard dans le répertoire /home.
Dans l'ensemble, ces applications ont souvent une séquence d'initialisation qui aurait pu demander le lieu de stockage des données.
La résolution du problème passe par la création de liens symboliques Cette technique est aussi valable pour les huit répertoires traités plus haut. Elle semble simple. Cependant les liens logiques peuvent dysfonctionner pour certaines applications. Les applications thunderbird et mozilla sont susceptibles d'être candidates à ce style de déplacement.
Chaque utilisateur pourra déplacer ses propres données.
Ce déplacement se fera en ligne de commandes. A titre d'exemple:
LABEL=Commun1 MOUNTPOINT=/$LABEL ## Recopie des données de l'utilisateur. for i in .thunderbird .mozilla ####### Bureau Téléchargements Modèles Public Documents Musique Images Vidéos do #Vérifions la présence d'un lien symbolique identique à celui qu'on veut créer ls -ls /home/$USER/$i >$HOME/FIC.tmp if grep -q "> $MOUNTPOINT/$USER/$1" $HOME/FIC.tmp then echo "Le traitement est déjà fait pour $i" else echo " " && echo " Début de déplacement des données existantes de $i" && sleep 5 mv -iu /home/$USER/$i $MOUNTPOINT/$USER sudo ln -s $MOUNTPOINT/$USER/$i /home/$USER fi done ## liste pour vérifier ls -als /home/$USER | grep lrwx ls -als $MOUNTPOINT/$USER
Les risques d'erreurs et les rectifications sont identiques au contexte précédant.
Un utilisateur pourra demander à un administrateur de déplacer ses données.
Ce déplacement se fera en ligne de commandes. A titre d'exemple:
LABEL=Commun1 MOUNTPOINT=/$LABEL UTILISATEUR=NomDeL'Utiliseur ## Recopie des données de l'utilisateur. for i in .thunderbird .mozilla ##### Bureau Téléchargements Modèles Public Documents Musique Images Vidéos do #Vérifions la présence d'un lien symbolique identique à celui qu'on veut créer ls -ls /home/$UTILISATEUR/$i >$HOME/FIC.tmp if grep -q "> $MOUNTPOINT/$UTILISATEUR/$1" $HOME/FIC.tmp then echo "Le traitement est déjà fait pour $i" else echo " " && echo " Début de déplacement des données existantes de $i" && sleep 5 sudo mv -iu /home/$UTILISATEUR/$i $MOUNTPOINT/$UTILISATEUR sudo chown $UTILISATEUR:$UTILISATEUR -Rv $MOUNTPOINT/$UTILISATEUR/$i sudo ln -s $MOUNTPOINT/$UTILISATEUR/$i /home/$UTILISATEUR fi done ## liste pour vérifier ls -als /home/$UTILISATEUR | grep lrwx ls -als $MOUNTPOINT/$UTILISATEUR
Les risques d'erreurs et les rectifications sont identiques au contexte précédant.
Installation de liens dans l'O.S. de base
Description viendra aussi