Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:partition_de_donnees [Le 21/01/2019, 17:04]
37.164.251.83 [Installation de liens dans l'O.S. de base]
— (Version actuelle)
Ligne 1: Ligne 1:
-{{tag>​disque_dur partitions}} 
--------- 
-====== 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 **sur le disque dur**, 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. 
-<​code>​ 
-##  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 </​code>​ 
-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 
-<​code>​ 
-## 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 
-</​code>​ 
- 
- 
-=====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  
- 
-<​code>​ 
-##​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 
-   </​code>​ 
-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. 
- 
-<​code>​ ## 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</​code>​ 
- 
-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  [[https://​doc.ubuntu-fr.org/​lien_physique_et_symbolique|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:​ 
-<​code>​ 
-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 
-</​code>​ 
-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:​ 
-<​code>​ 
-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 ​ 
-</​code>​ 
-Les risques d'​erreurs et les rectifications sont identiques au contexte précédant. 
- 
- 
- 
-====    Installation de liens dans l'O.S. de base ==== 
-Ce traitement ne peut se faire qu'en mode administration. L'​ordinateur doit être relancé pour prise en compte des modifications effectuées dans le fichier /etc/fstab. L'​administrateur peut aussi se définir dans la liste de déplacement. 
- 
-Voici les commandes à faire: 
- 
-<​code>​ 
-##​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. 
-## 
-# Chemin du Disque de Données, qu'on a fait en point de montage dans /etc/fstab 
-PARTNAME=Commun1 ​         # C'est le label du disque 
-MOUNTPOINT=/​$PARTNAME ​    # C'est le point de montage de la partition. Il peut être modifié si ce choix ne convient pas. 
-# 
-# Liste des Utilisateurs à qui créer les Liens. Remplacer les nom_de_XX_utilisateur par les bons noms d'​utilisateurs. 
-#             Faire autant de lignes que d'​utilisateurs requis (ils doivent déjà être créés et exister dans /home !!) 
-UTILISATEUR[0]='​nom_de_premier_utilisateur'​ 
-UTILISATEUR[1]='​nom_de_deuxieme_utilisateur'​ 
-UTILISATEUR[2]='​nom_de_troisieme_utilisateur'​ 
-UTILISATEUR[3]='​nom_de_quatrieme_utilisateur'​ 
-# 
-# Liste des Liens à Créer 
-tabFolder[0]='​Bureau'​ 
-tabFolder[1]='​Documents'​ 
-tabFolder[2]='​Images'​ 
-tabFolder[3]='​Modèles'​ 
-tabFolder[4]='​Musique'​ 
-tabFolder[5]='​Public'​ 
-tabFolder[6]='​Téléchargements'​ 
-tabFolder[7]='​Vidéos'​ 
-tabFolder[8]='​.mozilla' ​      ##### C'est selon le choix. Il faut aussi que cette application ait fonctionné chez les utilisateurs. 
-tabFolder[9]='​.thunderbird' ​  ##### C'est selon le choix. Il faut aussi que cette application ait fonctionné chez les utilisateurs. 
- 
-# Boucle pour passer dans chaque UTILISATEUR. 
-for i in ${!UTILISATEUR[@]} 
-do  
-    # se mettre dans le dossier personnel de l'​utilisateur. 
-    echo "​Début de traitement pour ${UTILISATEUR[i]}" ​   ​ 
-    # boucle pour  faire tous les liens de cet utilisateur. 
-    for j in ${!tabFolder[@]} 
-    do 
-        #Vérifions la présence d'un lien symbolique identique à celui qu'on veut créer. ​ 
-        if grep -q "​$MOUNTPOINT/​${UTILISATEUR[i]}/​${tabFolder[j]}"​ /etc/fstab 
-            then     echo "Le traitement ​ est déjà fait pour ${tabFolder[j]}" ​   ​ 
-        else    
-            echo " " && echo "​Début de déplacement des données existantes de  ${tabFolder[j]}"​ && ​   sleep 5  
-            sudo mkdir -v $MOUNTPOINT/​${UTILISATEUR[i]}/​${tabFolder[j]} ​ 
-            if [ -d "​$MOUNTPOINT/​${UTILISATEUR[i]}/​${tabFolder[j]}"​ ] 
-            then      ​ 
-                 sudo mv -iuv  /​home/​${UTILISATEUR[i]}/​${tabFolder[j]} $MOUNTPOINT/​${UTILISATEUR[i]} ​ 
-                 sudo mkdir -v /​home/​${UTILISATEUR[i]}/​${tabFolder[j]} 
-                 if [ -d "/​home/​${UTILISATEUR[i]}/​${tabFolder[j]}"​ ] 
-                 ​then  ​ 
-                       sudo chown ${UTILISATEUR[i]}:​${UTILISATEUR[i]} ​ $MOUNTPOINT/​${UTILISATEUR[i]}/​${tabFolder[j]} 
-                       echo "​$MOUNTPOINT/​${UTILISATEUR[i]}/​${tabFolder[j]} ​  /​home/​${UTILISATEUR[i]}/​${tabFolder[j]} none bind " | sudo tee -a /etc/fstab 
-                 else 
-                       echo "​Probablement encore des fichiers dans le répertoire /​home/​${UTILISATEUR[i]}/​${tabFolder[j]}"​ 
-                 fi 
-            else 
-                echo "​Erreur de création du répertoire $MOUNTPOINT/​${UTILISATEUR[i]}/​${tabFolder[j]}"​ 
-            fi 
-         fi 
-    done 
-done 
-## listons la référence. 
-cat /etc/fstab 
-</​code>​ 
- Ces commandes tentent de faire certains contrôles afin de permettre de relancer après correction. 
- 
-**Il est nécessaire de rebooter afin de prendre en compte cette liaison au niveau O.S.** 
- Cela va permettre de faire fonctionner immédiatement la corbeille. Cependant, plein de points de montage seront affichés. 
-  
- 
-  
- 
  
  • tutoriel/partition_de_donnees.1548086684.txt.gz
  • Dernière modification: Le 21/01/2019, 17:04
  • par 37.164.251.83