ZFS est un système de fichiers open source pour la gestion de "très haute capacité de stockage"
Sur la page du type d'installation, pour créer une partition ZFS, il faut sélectionner la seconde option donnant accès aux "Fonctions avancées". Sélectionner Effacer le disque et utiliser zfs. Éventuellement, cliquer sur "Chiffrer la nouvelle installation …" Cliquer sur continuer.
É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.
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.
Un exemple du contenu généré.
920189797920843512397973295758628339336693743317a@a:/media/a/U22-04/home/ubuntu/Images/ZFS$
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.
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.
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. 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 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.
Ces deux partitions sont standard, du point de vue GPARTED.
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 le système d'exploitation et les données.
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.
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 ici ou 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 endroit.
Au final, l'affichage de la grille de choix de boot reste possible. Un exemple ci-dessous. 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: Il est possible de choisir de repartir avec une ancienne version de logiciel uniquement ou une ancienne version de logiciel et de données. Si on choisit le mode recovery, on obtient la grille habituelle de dépannage
Pour bien fonctionner, il faut au moins 20% d'espace libre sinon message d'avertissement
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%.
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é.
sudo zfs create rpool/USERDATA/Win21H2 sudo zfs create rpool/USERDATA/Ubuntu22.04 sudo zfs create rpool/USERDATA/Commun
zfs list -o available,compression,compressratio,type,used,mountpoint rpool/USERDATA/Win21H2 rpool/USERDATA/Ubuntu22.04 rpool/USERDATA/Commun
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
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
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.
sudo zpool list
sudo apt install zfsutils-linux
sudo blkid | grep pool
sudo blkid | grep zfs_member
sudo zpool import -f temprpool MonPool
zpool list
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.
sudo zpool import -f -D temprpool MonPool
zpool list
Si la liste est vide, l'import n'a pas réussi. L'une des causes peut être une partition en bon état.
zpool import -a -f -R /media/$USER/ZFS
zpool import -a -f -D -R /media/$USER/ZFS
zpool list
sudo zfs set mountpoint=/media/$USER/BPOOL tempbpool
La partition est alors automatiquement montée à l'endroit prévu.
sudo zfs umount temprpool
sudo export temprpool
zpool list
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.
sudo -i
zpool import -N -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
Il existe maintenant deux installateurs.
L'installateur nouveau au format snap ne propose pas l'installation de ubuntu dans une structure ZFS (vérifié).
L'installateur ancien ne propose probablement pas l'installation de ubuntu dans une structure ZFS ( ISO non téléchargée) mais la version 22.10 ne la proposait déjà plus.
Un avis externe "il semble que l'engouement éphémère d'Ubuntu pour ce système de fichiers infâme soit carrément terminé, l'effort a expiré. C'est parti pour rejoindre Ubuntu TV, Ubuntu Phone, Unity 8 et d'autres cadavres dans le cimetière des (sanglots) déceptions de Canonical."
Le but va être de fabriquer une partition de données fiables et sécurisées pour chaque utilisateur de façon la plus simple possible.
Lancer gparted pour faire les créations des partitions. Elles seront de tailles identiques, de préférence sur des disques différents pouvant être externes. Le type de "système de fichiers" à retenir sera "non formaté" car l'exécution sera plus rapide. Mais ce n'est pas grave de mettre un autre type. Il y aura juste à accepter son écrasement au moment de la création.
Les utilisations principales seront lessuivantes
La commande est, par exemple, la suivante:
zpool create MesDonnees mirror /dev/sdb8 /dev/sdc11 La commande « zpool » n'a pas été trouvée, mais peut être installée avec : sudo apt install zfsutils-linux # version 2.1.9-2ubuntu1, or sudo apt install zfs-fuse # version 0.7.0-25
On constate donc que tout n'a pas été supprimé et qu'on dispose de deux applications. Je n'ai pas trouvé un comparatif pour choisir. Mais, à ce jour, l'une est déjà disponible dans la version 23.10 (Mantic) et l'autre pas (encore??)) . Je choisis donc celle qui me semble avoir de l'avenir.
Notons que si on en installe une et qu'on installe par la suite l'autre, la première est parfaitement supprimée et quelque soit le choix de cette première. Donc, installons le logiciel manquant.
sudo apt install zfsutils-linux
Puis fabriquons l'enveloppe qui convient.
sudo zpool create -f -m $HOME/data -O encryption=on -O keyformat=passphrase -O keylocation=prompt -o feature@lz4_compress=enabled MesDonneesPersonnelles mirror /dev/sdb8 /dev/sdc11 Enter new passphrase: Re-enter new passphrase:
Il est exigé que la taille du mot de passe soit au minima de 8 caractères quelconques sans aucune autre contrainte.
Ne pas oublier que la perte de ce mot de passe entraine l'impossibilité définitive d'accéder aux données mais que c'est une option.
Le fait de ne pas avoir de réponse signifie que tout est parfaitement en règle.
On va constater qu'actuellement, il est nécessaire, si on veut en profiter, d'activer la compression.
sudo zfs get compression NAME PROPERTY VALUE SOURCE MesDonneesPersonnelles compression off default sudo zfs set compression=on MesDonneesPersonnelles sudo zfs get compression NAME PROPERTY VALUE SOURCE MesDonneesPersonnelles compression on local
sudo chown -Rv $USER data && sudo chmod 775 data #Déplacement des répertoires mv -v Documents Images Modèles Musique Public Téléchargements Vidéos data #Création les liens ln -s data/Documents && ln -s data/Images && ln -s data/Modèles && ln -s data/Musique && ln -s data/Public && ln -s data/Téléchargements && ln -s data/Vidéos mv -v Bureau data && ln -s data/Bureau # Figeons les liens car cet espace n'est pas présent au redémarrage de l'ordinateur. cp -nv /etc/xdg/user-dirs.conf $HOME/.config && sed -i 's/True/False/' $HOME/.config/user-dirs.conf
Copions quelque chose.
mkdir data/W21H2a time sudo rsync -av /media/W21H2a/* data/W21H2a
Regardons, l'effet de la compression. Elle est de 26 % Certainement un très bon contexte car la partition émettrice ne contient pas de films.
df -Bm | egrep 'fichiers|MesDonnees|W21H2a' Sys. de fichiers blocs de 1M Utilisé Disponible Uti% Monté sur /dev/sda4 71000M 36103M 34898M 51% /media/W21H2a MesDonneesPersonnelles 28766M 26716M 2051M 93% /home/a/data
Cela ne convient pas. On peut alors détruire.
sudo zpool destroy MesDonneesPersonnelles
Cela convient. Facultativement, on peut démonter avant l'arrêt de l'ordinateur.
sudo zfs umount MesDonneesPersonnelles
Il faudra obligatoirement remonter le regroupement après le démarrage de l'ordinateur pour accéder à nos données personnelles.
sudo zfs mount -vl MesDonneesPersonnelles
Voir premier essai.
Notons que cette documentation indique
L'installation guidée de ZFS fait son retour après avoir été portée à partir de l'ancien programme d'installation d'Ubiquity. ZFS continue d'être une technologie que nous souhaitons explorer davantage et en la prenant en charge dans Subiquity, nous avons également jeté les bases de l'inclusion d'une installation guidée sur Ubuntu Server. Au prochain cycle, nous examinerons le chiffrement ZFS comme option de sécurité supplémentaire.
a@a:~$ sudo zpool list no pools available a@a:~$ sudo blkid | grep pool a@a:~$ sudo blkid | grep zfs_member /dev/sdb8: LABEL="MesDonneesPersonnelles" UUID="16115389389312419455" UUID_SUB="15605315050402785003" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="62fe9148-493e-4713-82c1-d88653b9f789" /dev/sdd11: LABEL="MesDonneesPersonnelles" UUID="16115389389312419455" UUID_SUB="7323137528599872624" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="1bf18a57-01c2-400e-9fdf-04f01b22f00e" a@a:~$ sudo zpool import -a -f -d /dev/sdd11 -d /dev/sdb8 a@a:~$ sudo zpool list NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT MesDonneesPersonnelles 29G 26.1G 2.91G - - 38% 89% 1.00x ONLINE - a@a:~$ sudo zfs mount -vl MesDonneesPersonnelles Enter passphrase for 'MesDonneesPersonnelles': a@a:~$ df -h | grep MesDonneesPersonnelles MesDonneesPersonnelles 29G 27G 2,1G 93% /home/a/data a@a:~$ ls /home/a/data Bureau Documents Images Modèles Musique Public Téléchargements Vidéos W21H2a a@a:~$
Monter le raids sans citer la partition détruite. Voir le cas ci-dessus. Puis Réparer.
zpool status -x pool: MesDonneesPersonnelles state: ONLINE status: One or more devices has experienced an unrecoverable error. An attempt was made to correct the error. Applications are unaffected. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or replace the device with 'zpool replace'. see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-9P
( C'était le contexte "An administrator accidentally wrote over a portion of the disk using another program"
Contributeurs : bcag2, geole