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
Dernière révision Les deux révisions suivantes
utilisateurs:bcag2:zfs [Le 12/02/2022, 15:39]
bcag2 ajout contributeurs, merci geole !
utilisateurs:bcag2:zfs [Le 04/04/2022, 15:04]
geole [Un contexte]
Ligne 5: Ligne 5:
   * [[http://​www.lmgc.univ-montp2.fr/​perso/​norbert-deleutre/​2017/​09/​08/​zfs-terminologie-et-commandes-de-bases/​|ZFS terminologie et commandes de bases sur lmgc.univ-montp2.fr par Norbert Deleutre]]   * [[http://​www.lmgc.univ-montp2.fr/​perso/​norbert-deleutre/​2017/​09/​08/​zfs-terminologie-et-commandes-de-bases/​|ZFS terminologie et commandes de bases sur lmgc.univ-montp2.fr par Norbert Deleutre]]
   * (en) [[https://​pthree.org/​2012/​12/​05/​zfs-administration-part-ii-raidz/​|ZFS Administration,​ Part II- RAIDZ - Aaron Toponce]]   * (en) [[https://​pthree.org/​2012/​12/​05/​zfs-administration-part-ii-raidz/​|ZFS Administration,​ Part II- RAIDZ - Aaron Toponce]]
 +
 ===== Installation ===== ===== Installation =====
   * Proposée de façon expérimentale en version 20.04   * Proposée de façon expérimentale en version 20.04
Ligne 10: Ligne 11:
   *  Exemple pour la partie spécifique ZFS lors d'une installation 22.04.   *  Exemple pour la partie spécifique ZFS lors d'une installation 22.04.
 L'​option présélectionnée n'est pas bonne. L'​option présélectionnée n'est pas bonne.
-Cocher la seconde option. Cliquer sur "​**Fonctions avancées**"​. Cliquer sur effacer ​le disque et utiliser zfs. Eventuellement, cliquer sur "​**Chiffrer la nouvelle installation** ​...." Cliquer sur continuer.+Cocher la seconde option. Cliquer sur "​**Fonctions avancées**"​. Cliquer sur //​Effacer ​le disque et utiliser zfs//Éventuellement, cliquer sur "​**Chiffrer la nouvelle installation** ​" Cliquer sur continuer.
  
 {{ :​zfs:​zfsinstal01.png?​800 |}} {{ :​zfs:​zfsinstal01.png?​800 |}}
  
-Eventuellement, la grille de saisie de la clé de chiffrement est affichée. ​  ​Il est possible de choisir moins de six caractères en ignorant le message d'​avertissement de taille insuffisante.+Éventuellement, la grille de saisie de la clé de chiffrement est affichée. Il est possible de choisir moins de six caractères en ignorant le message d'​avertissement de taille insuffisante.
  
 Attention au moment de la saisie de la clé lors du démarrage, le clavier numérique n'est pas activé. Il faut donc utiliser les chiffres du clavier normal. Attention au moment de la saisie de la clé lors du démarrage, le clavier numérique n'est pas activé. Il faut donc utiliser les chiffres du clavier normal.
  
-Par défaut, le stockage est proposé sur le support d'​installation qui est souvent une clé USB. C'est déconseillé par l'​installateur. Si le  support d'​installation n'a pas été fait en mode persistant, ​Le fichier ​ sera détruit à l'​arrêt de l'​installation. Il n'est pas obligatoire de générer la clé de sécurité. Cliquer sur **Installer maintenant.**+Par défaut, le stockage est proposé sur le support d'​installation qui est souvent une clé USB. C'est déconseillé par l'​installateur. Si le  support d'​installation n'a pas été fait en mode persistant, ​le fichier sera détruit à l'​arrêt de l'​installation. Il n'est pas obligatoire de générer la clé de sécurité. Cliquer sur **Installer maintenant.**
  
 {{ :​zfs:​zfsinstal02.png?​800 |}}  {{ :​zfs:​zfsinstal02.png?​800 |}} 
Ligne 24: Ligne 25:
 Un exemple du contenu généré. <​code>​ 920189797920843512397973295758628339336693743317a@a:/​media/​a/​U22-04/​home/​ubuntu/​Images/​ZFS$ </​code>​ Un exemple du contenu généré. <​code>​ 920189797920843512397973295758628339336693743317a@a:/​media/​a/​U22-04/​home/​ubuntu/​Images/​ZFS$ </​code>​
  
-L'​installateur va maintenant inspecter les supports connectés, y compris les clés USB, et les proposer pour sélection du bon.+L'​installateur va maintenant inspecter les supports connectés, y compris les clés USB, et les proposer pour faire la sélection du bon.
  
-Le disque interne SDA est le premier de la liste. ​  ​Faire donc bien attention ​ au choix. Si deux disques sont de même taille et du même constructeur,​ la confusion reste possible. Après avoir fait le bon choix, cliquer sur **Installer maintenant**.+Le disque interne SDA est le premier de la liste. Faire donc bien attention au choix. Si deux disques sont de même taille et du même constructeur,​ la confusion reste possible. Après avoir fait le bon choix, cliquer sur **Installer maintenant**.
  
-Installer sur clé USB est possible. ​ Il faut compter une douzaine d'​heures. Mais booter depuis une clé USB est impossible. Environ 80% des applications de base ne sont pas opérationnelles pour cause de temps de chargement trop long. En effet, maintenant, au démarage, plein d'​opérations sont faites en parallèle et il n'est pas évident de modifier le temps d'​attente avant de déclarer l'​action en échec.+Installer sur clé USB est possible. Il faut compter une douzaine d'​heures. Mais booter depuis une clé USB est impossible. Environ 80% des applications de base ne sont pas opérationnelles pour cause de temps de chargement trop long. En effet, maintenant, au démarrage, plein d'​opérations sont faites en parallèle et il n'est pas évident de modifier le temps d'​attente avant de déclarer l'​action en échec.
  
 {{ :​zfs:​zfsinstal03.png?​800 |}} {{ :​zfs:​zfsinstal03.png?​800 |}}
  
-La grille de confirmation est affichée, A ce niveau, il n'​y a plus que le N° du SCDI et la lettre du disque qui sont +La grille de confirmation est affichée. À ce niveau, il n'​y a plus que le N° du SCSI et la lettre du disque qui sont repérables. ​
 Il est indiqué que 4 partitions seront créées. Il est indiqué que 4 partitions seront créées.
 {{ :​zfs:​zfsinstal04.png?​800 |}}  {{ :​zfs:​zfsinstal04.png?​800 |}} 
 La table de partition GPT ou MSDOS est supprimée pour fabriquer du ZFS. La table de partition GPT ou MSDOS est supprimée pour fabriquer du ZFS.
  
-La première partition fait 512 Mo et est en FAT 32. Elle contient la structuer ​de BOOT EFI **ainsi que** la structure de boot du GRUB+La première partition fait 512 Mo et est en FAT 32. Elle contient la structure ​de BOOT EFI **ainsi que** la structure de boot du GRUB
  
 La seconde partition fait 2 Go et est formatée ​ en linux-swap. En effet ZFS ne sait pas gérer un fichier swap. La seconde partition fait 2 Go et est formatée ​ en linux-swap. En effet ZFS ne sait pas gérer un fichier swap.
Ligne 43: Ligne 44:
 Ces deux partitions sont standard, du point de vue GPARTED. Ces deux partitions sont standard, du point de vue GPARTED.
  
-La troisième partition ​ fait 2 Go et  ​et en zfs. elle contient les fichiers de boot de ubuntu+La troisième partition ​ fait 2 Go et  ​est en zfs. Elle contient les fichiers de boot de ubuntu
  
-La quatrième partition fait le reste de la taille disque. Elle contient ​l'O.S. et les données.+La quatrième partition fait le reste de la taille disque. Elle contient ​le système d'exploitation ​et les données.
  
-Ces deux partitions sont bien vues par GPARTED.  ​iIl ne sait pas les rétrécir. Il sait juste les supprimer. Si décision de supprimer la quatrième partition, les trois autres partitions sont supprimées,​ et on obtient un disque ZFS totalement vide.+Ces deux dernières ​partitions sont bien vues par GPARTED.  ​Il ne sait pas les rétrécir. Il sait juste les supprimer. Si la décision de supprimer la quatrième partition ​est prise, les trois autres partitions sont supprimées,​ et on obtient un disque ZFS totalement vide.
  
-===== Le boot du UBUNTU installé =====+===== Le boot d'UBUNTU installé ===== 
 +Lorsque le boot a lieu sur ce disque, la première grille affichée à l'​écran est celle de la sélection du nom de l'​utilisateur si l'​installation n'a pas prévu de connexion automatique. En cas de connexion automatique,​ le bureau est directement affiché.
  
 +Il reste possible de forcer l'​affichage du grub par la technique décrite [[:/​kernel#​modifier_les_parametres_du_noyau_pour_un_systeme_installe_sur_disque|ici]] ou [[:/​recovery_mode#​demarrer_le_mode_de_depannage|là]].
  
 +Afin de savoir quand il est possible de commencer cette action, dé-commenter la ligne **#​GRUB_INIT_TUNE="​480 440 1"** du fichier **/​etc/​default/​grub** est envisageable. __Ne pas oublier de générer le grub__.
  
 +Cependant, il est possible de faire apparaître systématiquement le grub en dé-commentant la ligne **#​GRUB_TERMINAL=console** et en ajoutant la ligne **GRUB_TIMEOUT_STYLE=menu**.
  
 +Il est aussi possible de faire tracer le démarrage en ajoutant cette ligne: ​ **GRUB_CMDLINE_LINUX_DEFAULT="​ "​**. ​
  
 +S'il est nécessaire de rétablir un dual-boot, il faudra ajouter cette ligne:​ **GRUB_DISABLE_OS_PROBER=false**.
 +Les explication sont disponibles à cet endroit ​ [[:/​tutoriel/​grub2_parametrage_manuel|endroit]]. ​
  
 +Au final, l'​affichage de la grille de choix de boot reste possible. Un exemple ci-dessous.
 +{{ :​zfs:​zfsboot01.png?​600 |}}
 +Une nouvelle option est apparue. Il est maintenant possible de rebooter à partir d'un historique. Un historique automatique est généré à chaque commande **apt** provoquant une mise à jour. L'​utilisateur peut aussi fabriquer un historique.
  
 +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.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**.
 +{{ :​zfs:​zfsboot03.png?​600 |}}
 +Si on choisit ​ le mode recovery, on obtient la grille ​  ​habituelle de dépannage
 +{{ :​zfs:​zfsboot04.png?​600 |}}
  
 +===== Utilisation =====
 +<note warning>​Ce chapitre n'est pas développé. </​note>​
 +==== 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>​
  
  
Ligne 67: Ligne 106:
  
  
- +===== Accès aux partitions depuis un autre Ubuntu ​=====
-Note. Le grub ne propose pas le dual boot. +
-===== Utilisation ===== +
-<note warning>​Ce chapitre n'est pas développé. </​note>​ +
-===== 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 84: Ligne 120:
   * 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 11/04/2022, 10:58
  • par geole