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
Prochaine révision Les deux révisions suivantes
utilisateurs:bcag2:zfs [Le 15/02/2022, 15:33]
bcag2 [Installation] typo, mise en forme
utilisateurs:bcag2:zfs [Le 11/04/2022, 10:58]
geole [Utilisation]
Ligne 69: Ligne 69:
  
 Choisir une ligne dans cet historique est facile. Cependant savoir si c'est la bonne ligne est probablement moins aisé. Voici un exemple: Choisir une ligne dans cet historique est facile. Cependant savoir si c'est la bonne ligne est probablement moins aisé. Voici un exemple:
-{{ :​zfs:​zfsboot02.jpg?356 |}}+{{ :​zfs:​zfsboot02.png?600 |}}
 Il est possible de choisir de repartir avec une ancienne version de logiciel uniquement ou une ancienne version de logiciel **et de données**. Il est possible de choisir de repartir avec une ancienne version de logiciel uniquement ou une ancienne version de logiciel **et de données**.
-{{ :​zfs:​zfsboot03.jpg?527 |}} +{{ :​zfs:​zfsboot03.png?600 |}}
 Si on choisit ​ le mode recovery, on obtient la grille ​  ​habituelle de dépannage Si on choisit ​ le mode recovery, on obtient la grille ​  ​habituelle de dépannage
-{{ :​zfs:​zfsboot04.jpg?545 |}}+{{ :​zfs:​zfsboot04.png?600 |}}
  
 ===== Utilisation ===== ===== Utilisation =====
 <note warning>​Ce chapitre n'est pas développé. </​note>​ <note warning>​Ce chapitre n'est pas développé. </​note>​
 +==== Quelques contraintes rencontrées. ====
 +Pour bien fonctionner,​ il faut au moins 20% d'​espace libre sinon message ​ d'​avertissement
 +<​code>​Requesting to save current system state.
 +ERROR couldn'​t save system state: Minimum free space to take a snapshot and preserve ZFS performance is 20%.
 +Free space on pool "​rpool"​ is 20%.</​code>​
 +
 +
 +==== Un contexte ====
 + Le disque interne est composé de trois partitions. La première en NTFS, contient le logiciel windows. ​ La seconde en EXT4, contient un logiciel ubuntu. La troisième plus volumineuse en NTFS, contient les données utilisateurs.
 +
 + Le disque externe ​ est composé des duplications de ces trois partitions obtenues par un copie/​coller fait par gparted et  régulièrement maintenues grace aux commandes RSYNC.
 +
 +Décision a été prise d'​installer ZFS dans ce disque EXTERNE. Cela a détruit les partitions. Elles ont été regénérées sous forme de pool dédié.
 +
 +  *  Création des points de montage dédiés avec un nom identique aux labels des partitions à sauver. ​ Action à ne faire qu'une fois.
 +<code bash>​sudo zfs create rpool/​USERDATA/​Win21H2
 +sudo zfs create rpool/​USERDATA/​Ubuntu22.04
 +sudo zfs create rpool/​USERDATA/​Commun</​code>​
 +  * Vérification très facultative que tout est correct. ​ Fait le suivi des taux de remplissage comme la commande **df -h**
 +<code bash>zfs list -o available,​compression,​compressratio,​type,​used,​mountpoint rpool/​USERDATA/​Win21H2 rpool/​USERDATA/​Ubuntu22.04 rpool/​USERDATA/​Commun </​code>​
 +  * Transfert régulier des données. Le montage des partitions émettrices n'est pas mentionné.
 +<code bash>​sudo rsync -av --del /​media/​$USER/​Win21H2/​* /Win21H2
 +sudo rsync -av --del /​media/​$USER/​Ubuntu22.04/​* /​Ubuntu22.04
 +sudo rsync -av --del /​media/​$USER/​Commun/​* /Commun </​code>​
 +  * Obtenir les tailles et les taux de compression ​ des données utilisateur,​ des logiciels ubuntu et windows
 +<code bash>zfs list -o available,​compression,​compressratio,​type,​used,​mountpoint rpool/​USERDATA/​W21H2b rpool/​USERDATA/​U20.04 rpool/​USERDATA/​Commun
 +AVAIL  COMPRESS ​       RATIO  TYPE         ​USED ​ MOUNTPOINT
 +79.0G  lz4             ​1.11x ​ filesystem ​  ​321G ​ /Commun
 +79.0G  lz4             ​1.24x ​ filesystem ​ 17.7G  /U20.04
 +79.0G  lz4             ​1.57x ​ filesystem ​ 21.3G  /W21H2b </​code>​
 +
 +
 +
 +
 +
  
 ===== Accès aux partitions depuis un autre Ubuntu ===== ===== Accès aux partitions depuis un autre Ubuntu =====
 <note warning>​Ce chapitre doit être validé</​note>​ <note warning>​Ce chapitre doit être validé</​note>​
 Il est possible de lire et d'​écrire dans une partition ZFS depuis un autre O.S. La procédure à suivre est décrite ci-dessous. Il est possible de lire et d'​écrire dans une partition ZFS depuis un autre O.S. La procédure à suivre est décrite ci-dessous.
 +==== Préparatifs ====
   * Vérifier si le logiciel utilisé dispose de la couche adéquate. Le plus  simple est de faire une commande du paquet "​zfs"​. La réponse dira que le pool est vide ou garni ou qu'il est nécessaire d'​installer un paquet et donnera la liste possible des paquets candidats. <code bash>​sudo zpool list</​code> ​   * Vérifier si le logiciel utilisé dispose de la couche adéquate. Le plus  simple est de faire une commande du paquet "​zfs"​. La réponse dira que le pool est vide ou garni ou qu'il est nécessaire d'​installer un paquet et donnera la liste possible des paquets candidats. <code bash>​sudo zpool list</​code> ​
   * Si nécessaire,​ installer le paquet proposé par le retour de la commande ci-dessus. Par exemple <code bash>​sudo apt install zfsutils-linux </​code>​   * Si nécessaire,​ installer le paquet proposé par le retour de la commande ci-dessus. Par exemple <code bash>​sudo apt install zfsutils-linux </​code>​
   * Vérifier si des partitions formatées en ZFS sont présentes. L'une de ces commandes est possible: <code bash>​sudo blkid | grep pool </​code>​ <code bash>​sudo ​  blkid | grep zfs_member</​code>​   * Vérifier si des partitions formatées en ZFS sont présentes. L'une de ces commandes est possible: <code bash>​sudo blkid | grep pool </​code>​ <code bash>​sudo ​  blkid | grep zfs_member</​code>​
 +====   Pour une installation non chiffrée, ces commandes fonctionnent ====
   * **Soit** importer la partition désirée en bon état en utilisant le nom de pool trouvé dans l'une des deux commandes précédentes et en donnant un nouveau nom pour le pool d'​importation. Dans ce qui suit, le pool trouvé est **temprpool** . Il y a peu de chances qu'il soit le bon. <code bash>​sudo zpool import -f temprpool MonPool</​code><​code bash>​zpool list </​code>​ Si l'​import se passe bien, la commande de liste donne les caractéristiques de la partition. Si l'​import se passe très bien, la partition est même montée à condition que le point de montage de la partition ne soit pas déjà ​ occupé. ​ Le point de montage est au niveau de la racine. Si la liste est vide, l'​import n'a pas réussi. L'une des causes peut être une partition ​ en mauvais état.   * **Soit** importer la partition désirée en bon état en utilisant le nom de pool trouvé dans l'une des deux commandes précédentes et en donnant un nouveau nom pour le pool d'​importation. Dans ce qui suit, le pool trouvé est **temprpool** . Il y a peu de chances qu'il soit le bon. <code bash>​sudo zpool import -f temprpool MonPool</​code><​code bash>​zpool list </​code>​ Si l'​import se passe bien, la commande de liste donne les caractéristiques de la partition. Si l'​import se passe très bien, la partition est même montée à condition que le point de montage de la partition ne soit pas déjà ​ occupé. ​ Le point de montage est au niveau de la racine. Si la liste est vide, l'​import n'a pas réussi. L'une des causes peut être une partition ​ en mauvais état.
   * **Soit** monter la partition ​ en mauvais état. Mêmes remarques. Les commandes seront <code bash>​sudo zpool import -f -D temprpool MonPool </​code><​code bash>​zpool list </​code>​Si la liste est vide, l'​import n'a pas réussi. L'une des causes peut être une partition en bon état. ​   * **Soit** monter la partition ​ en mauvais état. Mêmes remarques. Les commandes seront <code bash>​sudo zpool import -f -D temprpool MonPool </​code><​code bash>​zpool list </​code>​Si la liste est vide, l'​import n'a pas réussi. L'une des causes peut être une partition en bon état. ​
Ligne 92: Ligne 127:
   * On peut alors utiliser normalement la partition. On peut aussi utiliser ses avantages de sécurité. Lorsque le travail est fini, il faut libérer la partition en la démontant puis l'​exporter et vérifier qu'​elle a bien disparu du pool. Les commandes sont <code bash>​sudo zfs umount temprpool</​code><​code bash>​sudo export temprpool</​code>​ <code bash>​zpool list </​code>​   * On peut alors utiliser normalement la partition. On peut aussi utiliser ses avantages de sécurité. Lorsque le travail est fini, il faut libérer la partition en la démontant puis l'​exporter et vérifier qu'​elle a bien disparu du pool. Les commandes sont <code bash>​sudo zfs umount temprpool</​code><​code bash>​sudo export temprpool</​code>​ <code bash>​zpool list </​code>​
  
-----+==== Pour une installation chiffrée ==== 
 +<note tip>​ATTENTION,​ Si votre O.S. ZFS **chiffré** fonctionne, ne faites pas ce traitement, car il rend la partie chiffrement inutilisable pour le vrai ZFS qui ne peut plus mettre en route. Ce script est donc à utiliser uniquement lorsque le ZFS ne peut plus mettre en route et qu'il faut récupérer les données avant de réinstaller par écrasement.</​note>​ 
 +Il est nécessaire de monter les clés de chiffrement si elles sont encore accessibles. Le plus simple est d'​utiliser ce script qui devrait aussi fonctionner pour une installation normale. 
 +<code bash>​sudo ​-i </​code>​ 
 + 
 +<code bash>​zpool import  ​--R /mnt rpool  ´&&​ sleep 10 
 +if [ -e /​dev/​zvol/​rpool/​keystore ]  ; then 
 +    echo '​Veuillez introduire le mot de passe utilisé pour le chiffrement ​ des données ​ en réponse à la question ​  "​Saisissez la phrase secrète pour /​dev/​zvol/​rpool/​keystore : " ' Vous avez le droit à trois essais. Pour retenter, il faut relancer le script. 
 +    cryptsetup -v open /​dev/​zvol/​rpool/​keystore keystore-rpool ​ && sleep 10 
 +    mkdir -p /​run/​keystore/​rpool 
 +    mount -v /​dev/​mapper/​keystore-rpool ​ /​run/​keystore/​rpool && sleep 5 
 +else 
 +     echo pas de chiffrement détecté 
 +fi  
 +zfs set canmount=on ​ $(zfs list | grep mnt/home |cut -d" " -f1) 
 +zfs mount -vl $(zfs list | grep mnt/home |cut -d" " -f 1) 
 +echo Voici la liste des répertoires à sauver 
 +cd $(zfs list | grep mnt/home | awk ' { print $5 } ')  
 +ls </​code>​ 
  
 //​Contributeurs : [[utilisateurs:​bcag2]],​ geole //​Contributeurs : [[utilisateurs:​bcag2]],​ geole
  • utilisateurs/bcag2/zfs.txt
  • Dernière modification: Le 15/10/2023, 09:40
  • par geole