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édentesRévision précédente
Prochaine révision
Révision précédente
tutoriel:donnees_stockees_dans_un_systeme_de_fichiers_zfs [Le 09/04/2026, 16:50] – [Solution avec utilisation du trousseau de clé] geoletutoriel:donnees_stockees_dans_un_systeme_de_fichiers_zfs [Le 13/05/2026, 16:29] (Version actuelle) – [Solution automatique.] geole
Ligne 9: Ligne 9:
  
 [[https://wiki.ubuntu.com/Kernel/Reference/ZFS|Lire aussi le wiki Ubuntu en anglais.]] [[https://wiki.ubuntu.com/Kernel/Reference/ZFS|Lire aussi le wiki Ubuntu en anglais.]]
 +[[https://openzfs.github.io/openzfs-docs/man/index.html|et les commandes]]
  
  
Ligne 65: Ligne 66:
 <note tip>Si l'espace disque n'est pas chiffré,  le  montage automatique de cet espace disque   est bien réalisé à condition que ses caractéristiques soient restées identiques. Notamment que  l'O.S.  qui veut l'utiliser soit celui  que venait de l' utiliser.</note> <note tip>Si l'espace disque n'est pas chiffré,  le  montage automatique de cet espace disque   est bien réalisé à condition que ses caractéristiques soient restées identiques. Notamment que  l'O.S.  qui veut l'utiliser soit celui  que venait de l' utiliser.</note>
 ==== Solution automatique. ==== ==== Solution automatique. ====
-Des services utilisateur [[:/systemd|systemd]] peuvent prendre en charge ce montage afin de simplifier au quotidien cette contrainte. +Des services utilisateur [[:/systemd|systemd]] peuvent prendre en charge ce montage afin de [[https://forum.ubuntu-fr.org/viewtopic.php?pid=22895246#p22895246|simplifier]] cette contrainte. 
-Les exemples ci-dessous seront revus et externalisés afin d'alléger ce document +===== Réutilisation de cet espace disque par un autre O.S. ===== 
- Il y aura un exemple 24.04 et un autre 26.04.+==== De type ubuntu ==== 
 +Si cet espaace est chiffré en utilisant un fichier de chiffrement, il faut penser à cŕéer un tel fichier avec le bon contenu dans cet O.S. \\ Dans tous les cas, il est nécessaire d’importer l’espace en utilisant cette commande. 
 +<code bash>sudo import MesDonneesPersonnelles</code> 
 +==== De type windows ==== 
 +En plus des contraintes ubuntu, comme les noms de fichiers n’utilisent pas la méme norme, il sera nécessaire de modifier les noms des disques décrivant les entités  utilisées, le nom du point de montage qui devient **UneLettre:** et le nom du fichier contenant la phrase de déchiffrement. \\ Si ces modifications sont faites en dur, un retour dans ubuntu, obligera à remettre en état. 
 + 
 +   
  
  
-==== Solution standard==== 
-Un service **utilisateur** demande la valeur  de la clé de chiffrement au moment de la connexion de l'utilisateur. 
-=== Le script de montage === 
-<code bash>cat<<'EOF'>$HOME/ZFS.sh 
-#!/bin/bash 
-Data=MesDonneesPersonnelles 
-Statut=$(zpool list  $Data |tail -1 ) 
-if [[ !  $Statut =~  "$Data"  ]] ; then  
-   echo  Importation des données par  le service USER de ZFS   
-   sudo zpool export  $Data ### Pour se prémunir des noms de partitions des disques externes susceptible de changer de valeur si besoin 
-   sudo zpool import -f $Data 
-fi 
-sudo zfs set mountpoint=/media/$Data $Data 
-for (( i=1; i < 9; i++ ));  do  
-    echo  itération-$i dans le service USER de ZFS   
-    Statut=$(zfs get mounted  $Data |tail -1 ) 
-    if [[  $Statut =~  "no"  ]] ; then  
-       ret=`DISPLAY=:1 zenity --entry --title="Montage de la partition $Data ($i/8)." --text "veuillez fournir la phrase de déchiffrement de $Data." ` 
-       sleep 2 
-       sudo zfs mount -l $Data <<<$ret 
-    else i=10     
-    fi    
-done 
-if  [[ ! $Statut =~  "yes"  ]] ; then 
-    DISPLAY=:1 zenity --error --text "La partition $Data n'est pas disponible; veuillez investiguer!" 
-fi 
-EOF 
-sleep 1 
-chmod +x /$HOME/ZFS.sh 
-cat $HOME/ZFS.sh 
-$HOME/ZFS.sh</code> 
-=== Le script d'automatisation === 
-<code bash>mkdir -pv $HOME/.config/systemd/user 
-cat <<'EOF'>$HOME/.config/systemd/user/ZFS.service 
-[Unit] 
-Description=Montage de la partition de données personnelles. 
-DefaultDependencies=no 
-[Service] 
-Type=simple 
-ExecStartPre=echo  Montage de la partition de données personnelles ZFS.  
-ExecStart=/home/%u/ZFS.sh 
-ExecStopPost=echo Le ontage de la partition de données personnelles ZFS  est terminé. 
-StandardOutput=journal+console 
-[Install] 
-WantedBy=default.target 
-EOF 
-sleep 1 
-systemctl  --user stop ZFS.service ; systemctl --user  disable ZFS.service ; systemctl --user daemon-reload;  
-systemctl --user enable ZFS.service ; systemctl --user start ZFS.service  
-systemctl --user --no-pager -l status ZFS.service</code>  
  
-**La valeur de la clé de déchiffrement doit être dans un fichier**. Il  existe quatre solutions:  
-  - Le logiciel  est déjà chiffré. Dans ce cas  la valeur de la clé de chiffrement  peut être dans un fichier stocké sous** /root**. Solution aisément installable. 
-  - Le logiciel n'est pas chiffré, La clé de chiffrement  peut être dans une clé usb que l'utilisateur branche au moment de se connecter et enlève aussitôt la connexion réalisée. C'est la solution privilégiée par les concepteurs. Solution aisément installable avec un risque de  perdre la clé ou qu'elle soit lue par une  personne non-habilitée. 
-  - La clé de déchiffrement est stockée dans le [[:seahorse|trousseau de clé]]. 
-  - Un service **système** demande à l'utilisateur la valeur  de la clé de chiffrement, la stocke dans un fichier, ouvre la structure chiffrée et détruit le contenu du fichier. Cela ne laisse que quelques instants cette valeur disponible à la vue de tout le monde.... C'est un développement personnel susceptible d'être amélioré par qui connaît mieux. \\ Il est basé sur  les services de [[:/systemd|systemd]] qui  semblent destinés à se passer d'utilisateur. Le dialogue à l'écran étant inconnu. 
-S'affranchir de la contrainte des mots de passe si cela n'a pas déjà été fait: 
-<code bash>echo $USER  ALL = '(ALL)' NOPASSWD: /usr/sbin/zpool, /usr/sbin/zfs |sudo tee /etc/sudoers.d/zfsbis</code> 
-Devenir administrateur en frappant **sudo -i** pour définir la nouvelle commande de création de l'espace à utiliser.  
-<code bash>echo -n LeBonMotDeDéchiffrement | tee /root/ZFS.pwd 
-wc /root/ZFS.pwd ; cat /root/ZFS.pwd 
-zpool create -f -m   /media/ZFS -O encryption=on -O keyformat=passphrase -O keylocation=file:///root/ZFS.pwd -o feature@lz4_compress=enabled MesDonneesPersonnelles raidz /dev/sda18 /dev/sdc11 
-shred  /root/ZFS.pwd</code> 
-Penser à personnaliser la première ligne  et le nom retenu pour la désignation de l'espace de stockage. 
-=== Le script de montage avec demande de mot de passe  la connexion.=== 
-<code bash>cat<<'EOF'>/root/ZFS.sh 
-#!/bin/bash 
-Data=MesDonneesPersonnelles 
-echo  Entrée dans le service USER de ZFS  | tee -a  /dev/kmsg 
-for (( i=1; i < 300; i++ ));  do 
-MOI=$(loginctl list-users | head -2 | tail -1) 
-IDn=$(echo $MOI | cut -d" " -f1) ; IDx=$(echo $MOI | cut -d" " -f2) ; 
-if [[  $IDn -gt  999   ]] ; then 
-   i=300 
-else    
-   sleep 1 
-   echo  itération-1-$i dans le module USER de ZFS  | tee -a  /dev/kmsg 
-fi  
-done 
-for (( i=1; i < 9; i++ ));  do  
-    echo  itération-2-1-$i dans le service USER de ZFS  | tee -a  /dev/kmsg 
-    Statut=$(zfs get mounted  $Data |tail -1 ) 
-    if [[  $Statut =~  "no"  ]] ; then  
-       ret=`sudo -u $IDx DISPLAY=:1 zenity --entry --title="Montage de la partition $Data ($i/8)." --text "veuillez fournir la phrase de déchiffrement de $Data." ` 
-       echo $ret  > /root/ZFS.pwd 
-       sleep 1 
-       zfs mount -vl $Data        
-       shred -n 0 -z  /root/ZFS.pwd  
-    else i=10     
-    fi    
-done 
-if  [[ ! $Statut =~  "yes"  ]] ; then 
-   sudo -u $IDx DISPLAY=:1 zenity --error --text "La partition $Data n'est pas disponible; veuillez investiguer!" 
-fi 
-EOF 
-sleep 1 
-chmod +x /root/ZFS.sh 
-cat /roo/ZFS.sh 
-/root/ZFS.sh</code> 
-Penser à personnaliser la troisième ligne. Cela ne coùte rien de l'essayer. 
-=== Le script de montage avec avec utilisation du trousseau de clé.=== 
-Voir chapitre dédié. 
-=== Le script d'automatisation === 
-<code bash>cat <<'EOF'>/etc/systemd/system/ZFS.service 
-[Unit]  
-Description=Montage de la partition de données personnelles. 
-DefaultDependencies=no 
-[Service] 
-Type=simple 
-TimeoutSec=5minutes 
-ExecStartPre=echo  Montage de la partition de données personnelles ZFS. |  tee -a  /dev/kmsg 
-ExecStartPre=sleep 60 
-# Temps approximatif pour l'arrivée de l'écran d'accueil 
-ExecStartPre=echo  Montage de la partition de données personnelles ZFS ( Fin de sommeil ) |  tee -a  /dev/kmsg 
-ExecStart=/root/ZFS.sh 
-ExecStopPost=echo Montage de la partition de données personnelles ZFS  est terminé  |  tee -a  /dev/kmsg 
-StandardOutput=journal+console 
-StandardError=journal+console 
-[Install] 
-WantedBy=multi-user.target 
-EOF 
-sleep 1 
-##### Essais. 
-systemctl  stop ZFS.service ; systemctl  disable ZFS.service ; systemctl --user daemon-reload;  
-systemctl enable ZFS.service ; systemctl start ZFS.service  
-systemctl  --no-pager -l status ZFS.service   
-exit</code>