logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

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
doc:systeme:btrfs [13/03/2014 23:45]
louispolaire
doc:systeme:btrfs [14/03/2014 17:33]
louispolaire [BTRFS]
Ligne 5: Ligne 5:
   * Commentaires : //Les principes et commandes principales pour utiliser le BTRFS, les snapshots, les sauvegardes...//​   * Commentaires : //Les principes et commandes principales pour utiliser le BTRFS, les snapshots, les sauvegardes...//​
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|La ligne de commande]] ; [[:​doc:​systeme:​sauvegarde|Les sauvegardes]] ; [[:​doc:​systeme:​partition|Le partitionnement]] ; [[:​doc:​systeme:​fstab|Le montage des partitions]]:​-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|La ligne de commande]] ; [[:​doc:​systeme:​sauvegarde|Les sauvegardes]] ; [[:​doc:​systeme:​partition|Le partitionnement]] ; [[:​doc:​systeme:​fstab|Le montage des partitions]]:​-)
-  * Suivi : {{tag>en-chantier}}+  * Suivi : {{tag>à-placer}} {{tag>​à-tester}}
     * Création par **louispolaire** 12/03/2014     * Création par **louispolaire** 12/03/2014
     * Testé par <...> le <...> FIXME     * Testé par <...> le <...> FIXME
Ligne 13: Ligne 13:
 ===== Principes de base ===== ===== Principes de base =====
  
-Btrfs est un système de fichiers pour Linux qui a pour but d'​implémenter des fonctionnalités avancées tout en se folcalisan ​sur la résistance aux pannes, les réparations et une administration simple. +Btrfs est un système de fichiers pour Linux qui a pour but d'​implémenter des fonctionnalités avancées tout en se focalisant ​sur la résistance aux pannes, les réparations et une administration simple. 
-Sans entrer dans des détails techniques, voici quelques spécificités de BTRFS comparé aux systemes ​de fichiers classiques ext3 et ext4.+Sans entrer dans des détails techniques, voici quelques spécificités de BTRFS comparé aux systèmes ​de fichiers classiques ext3 et ext4.
  
 === Sous volumes - Subvolumes === === Sous volumes - Subvolumes ===
Ligne 24: Ligne 24:
 === Instantanés - Snapshots === === Instantanés - Snapshots ===
  
-Un Instantané ​(snapshot) est un subvolume qui a été créé comme une "​photographie"​ d'un autre subvolume à un moment donné. L'​avantage d'un snapshot est que même si les données sont disponible deux fois sur le systéme ​de fichiers, les données ne sont pas dédoublées sur le disque. Seules les modifications faites au subvolume original ou au snapshot seront écrites sur le disque. Ainsi au moment de la création d'un snapshot, la taille sur le disque du snapshot est quasi-nulle. Ce n'est qu'au fil des modifications que sa taille sur le disque va augmenter puisque Btrfs va écrire les modifications sur le disque. Ceci est par exemple très utile pour créer des branches d'un système ou pour les sauvegardes. ​+Un instantané ​(snapshot) est un subvolume qui a été créé comme une "​photographie"​ d'un autre subvolume à un moment donné. L'​avantage d'un snapshot est que même si les données sont disponible deux fois sur le système ​de fichiers, les données ne sont pas dédoublées sur le disque. Seules les modifications faites au subvolume original ou au snapshot seront écrites sur le disque. Ainsi au moment de la création d'un snapshot, la taille sur le disque du snapshot est quasi-nulle. Ce n'est qu'au fil des modifications que sa taille sur le disque va augmenter puisque Btrfs va écrire les modifications sur le disque. Ceci est par exemple très utile pour créer des branches d'un système ou pour les sauvegardes. ​
  
-=== RAID logiciel 0 1 (5/6) 10 ===+=== RAID logiciel 0,10 === 
 + 
 +Btrfs gère le RAID en logiciel, c-a-d la réplication des données sur plusieurs disques. Pour l'​instant Btrfs gère bien 3 types de RAID: 
 + 
 +  * RAID-0 :  
 +    Une forme de RAID qui ne permet pas de réparer les erreurs, mais qui répartit une seule copie des données sur plusieurs volumes. Il y a un gain de performance (2X) en lecture et en écriture si les deux volumes sont sur des disques distincts.  
 +  * RAID-1 :  
 +    Une forme de RAID qui stocke 2 copies complètes sur chacun des disques. Btrfs nécessite au minimum deux partitions pour utiliser le RAID-1. Les métadonnées sont en RAID-1 par défaut dans le cas d'un seul disque. On peut donc utiliser le RAID-1 avec Btrfs sur un seul disque. Il suffit d'y avoir 2 partitions (/dev/sda1 et /dev/sda2) et Btrfs répliquera les données entre ces deux partitions. Évidemment en cas de panne du disque ce type de RAID-1 ne sert à rien. Il faut utiliser 2 disques pour être protégé contre ce type de pannes. 
 +  * RAID-10 
 +    Une forme de RAID qui stocke 2 copies complètes des données et répartit également chaque copie sur plusieurs volumes d'où un gain de performance. Il faut au minimum 4 volumes pour pouvoir utiliser le RAID-10. 
 +  * RAID-5 et RAID-6 ne sont pas encore totalement implémentés dans Btrfs.
  
 === Opérations à chaud === === Opérations à chaud ===
  
-La plupart des opérations se font à chaud : le redimensionnement du système de fichiers, l'​ajout d'un disque, le changement de type de redondance (RAID), l'​équilibrage des données et métadonnnées ​sur les différents disques (balance), la vérification et correction du système de fichiers, la défragmentation,​ la compression... +La plupart des opérations se font à chaud : le redimensionnement du système de fichiers, l'​ajout d'un disque, le changement de type de redondance (RAID), l'​équilibrage des données et métadonnées ​sur les différents disques (balance), la vérification et correction du système de fichiers, la défragmentation,​ la compression... 
-Ceci est très pratique car en se dédouanant de la limitation des tables de partitions classiques, on évite les manipulations risquées et longues des redimentionnement ​de partitions.+Ceci est très pratique car en se dédouanant de la limitation des tables de partitions classiques, on évite les manipulations risquées et longues des redimensionnement ​de partitions.
  
 === Limites === === Limites ===
  
 Btrfs a cependant certaines limites : Btrfs a cependant certaines limites :
-  * Il n'a pas de fonction de cryptage des données. Il est cependant possible de crée un volume ​btrfs dans un partition créée avec dm-crypt.+  * Il n'a pas de fonction de cryptage des données. Il est cependant possible de crée un volume ​Btrfs dans un partition créée avec dm-crypt.
   * Il gère pas les fichier de swap. il est cependant possible de contourner le problème au prix de la performance ((https://​btrfs.wiki.kernel.org/​index.php/​FAQ#​Does_btrfs_support_swap_files.3F))   * Il gère pas les fichier de swap. il est cependant possible de contourner le problème au prix de la performance ((https://​btrfs.wiki.kernel.org/​index.php/​FAQ#​Does_btrfs_support_swap_files.3F))
-  * Les snapshots ne sont pas récursifs. C'est à dire que si on réalise un snapshot d'un subvolume comportant des subvolumes-enfants,​ dans le snaphot ​les subvolumes-enfants ​apparaitrons ​comme des dossiers vides.+  * Les snapshots ne sont pas récursifs. C'est à dire que si on réalise un snapshot d'un subvolume comportant des subvolumes-enfants,​ dans le snapshot ​les subvolumes-enfants ​apparaîtrons ​comme des dossiers vides.
  
 <note warning>​Ce tuto présente des commandes qui, mal utilisées peuvent mener à la perte de vos données. \\  <note warning>​Ce tuto présente des commandes qui, mal utilisées peuvent mener à la perte de vos données. \\ 
 Sauvegardez vos données !!</​note>​ Sauvegardez vos données !!</​note>​
 <note important>​Btrfs est en cours de développement. Bien que le format du système de fichier soit considéré comme stable par les développeurs ((https://​btrfs.wiki.kernel.org/​index.php/​Main_Page#​Stability_status)),​ les outils qui permettent de le manipuler sont eux en développement.\\ ​ <note important>​Btrfs est en cours de développement. Bien que le format du système de fichier soit considéré comme stable par les développeurs ((https://​btrfs.wiki.kernel.org/​index.php/​Main_Page#​Stability_status)),​ les outils qui permettent de le manipuler sont eux en développement.\\ ​
-Il est dont **important d'​utiliser un kernel __à jour__ (>= 3.12)** et **la version la plus à jour de btrfs-tools ( 3.12-1 à ce jour)**</​note>​+Il est dont **important d'​utiliser un kernel __à jour__ (>= 3.12)** et **la version la plus à jour de Btrfs-tools ( 3.12-1 à ce jour)**</​note>​
  
 ===== Installation ===== ===== Installation =====
Ligne 72: Ligne 82:
 ==== Convertir un système ext3 / ext4 ==== ==== Convertir un système ext3 / ext4 ====
  
-Il est possible de convertir un système ext3 ou ext4 en btrfs.+Il est possible de convertir un système ext3 ou ext4 en Btrfs.
 Si on a une partition /dev/sdX1 en ext4 Si on a une partition /dev/sdX1 en ext4
  
Ligne 94: Ligne 104:
  
 En des différentes options disponibles lors de la création du système de fichiers, le nombreuses options de montage pour Btrfs peuvent drastiquement changer ses performances. En des différentes options disponibles lors de la création du système de fichiers, le nombreuses options de montage pour Btrfs peuvent drastiquement changer ses performances.
 +
 +^Option de montage propres à Btrfs^Rôle ^
 +|autodefrag|Autorise la défragmentation en arrière plan|
 +|compress=zlib|La compression la plus importante. Par défaut|
 +|compress=lzo|La compression la plus rapide|
 +|compress=no|Pas de compression|
 +|degraded|Utilisé dans le cas des RAID. Permet de monter le volume même si certains disques sont manquants|
 +|discard |Utilise le TRIM pour les disques SSD|
 +|recovery|Lance la réparation automatique après le montage. A utilise si le volume ne veut plus se monter. un fois monté réaliser un scrub pour réparer les erreurs. (Ne fonctionne qu'​avec les volumes crées avec la version 3.2 ou +)|
 +|ssd|Utilise l'​optimisation pour disques SSD de Btrfs. C'est utilisé par défaut si votre système reconnaît le SSD. Cette option ne lance pas le TRIM !|
 +|subvol=///​chemin/​vers/​subvolume//​|Permet de monter un subvolume|
 +|subvolid=//​id//​|Permet de monter un subvolume par son id. La racine a un id=0|
  
 === Pour un SSD === === Pour un SSD ===
Ligne 114: Ligne 136:
 Exemple de ligne dans /etc/fstab : Exemple de ligne dans /etc/fstab :
  
-<​file>​UUID=a69d9182-f4c7-4276-b35d-7d5f9bd50a57 ​     /mnt      ​btrfs      ​rw,​noatime,​ssd,​discard,​autodefrag ​     0      0</​file>​+<​file ​fstab>​UUID=a69d9182-f4c7-4276-b35d-7d5f9bd50a57 ​     /mnt      ​Btrfs      ​rw,​noatime,​ssd,​discard,​autodefrag ​     0      0</​file>​
  
 ==== Outils d'​audit ==== ==== Outils d'​audit ====
  
-Pour voir l'​espace utilisé dans le volume ​btrfs monté dans /mnt :+Pour voir l'​espace utilisé dans le volume ​Btrfs monté dans /mnt :
 <code user>​btrfs filesystem df /​mnt</​code>​ <code user>​btrfs filesystem df /​mnt</​code>​
 <​file>​Data,​ single: total=27.00GiB,​ used=24.28GiB <​file>​Data,​ single: total=27.00GiB,​ used=24.28GiB
Ligne 159: Ligne 181:
 Pour créer un subvolume : Pour créer un subvolume :
 <code root>​btrfs subvolume create NOM</​code>​ <code root>​btrfs subvolume create NOM</​code>​
 +
 +Pour avoir la liste des subvolumes dans le volume Btrfs :
 +<code root>​btrfs subvolume list /​mnt</​code>​
  
 ==== Monter un subvolume ==== ==== Monter un subvolume ====
Ligne 193: Ligne 218:
 ==== Balance ==== ==== Balance ====
  
-Balance ​réalloue ​les données dans le système de fichier. C'est particulièrement utile lorsqu'​on a un système de fichiers en RAID et qu'un disque est ajouté ou retiré. Les copies manquantes sont ainsi régénérées.+Balance ​ré-alloue ​les données dans le système de fichier. C'est particulièrement utile lorsqu'​on a un système de fichiers en RAID et qu'un disque est ajouté ou retiré. Les copies manquantes sont ainsi régénérées.
  
 <code root>​btrfs balance start /​point-de-montage</​code>​ <code root>​btrfs balance start /​point-de-montage</​code>​
Ligne 199: Ligne 224:
 Idem que pour scrub pour les commandes **start**, **cancel** et **status**. Idem que pour scrub pour les commandes **start**, **cancel** et **status**.
  
-===== RAID 0 1 (5/6) et 10 =====+===== RAID 0 1 et 10 =====
  
 Si on dispose de plusieurs disques il est possible d'​activer la redondance logicielle des données. Si vous voulez plus d'​information sur le RAID : https://​fr.wikipedia.org/​wiki/​RAID_%28informatique%29 Si on dispose de plusieurs disques il est possible d'​activer la redondance logicielle des données. Si vous voulez plus d'​information sur le RAID : https://​fr.wikipedia.org/​wiki/​RAID_%28informatique%29
Ligne 222: Ligne 247:
 Il est aussi possible de supprimer des disques si nécessaire. Il est aussi possible de supprimer des disques si nécessaire.
  
-===== Installation de / (root) dans un volume ​btrfs =====+===== Installation de / (root) dans un volume ​Btrfs =====
  
-Depuis Wheezy, Debian gère le btrfs lors du processus d'​installation. Il y a trois méthodes au moins pour installer Debian sur un système de fichiers ​btrfs +Depuis Wheezy, Debian gère le Btrfs lors du processus d'​installation. Il y a trois méthodes au moins pour installer Debian sur un système de fichiers ​Btrfs 
-  * Utiliser le btrfs comme un système de fichiers classique et installer Debian à la racine du volume. +  * Utiliser le Btrfs comme un système de fichiers classique et installer Debian à la racine du volume. 
-    * C'est la méthode la plus simple, mais c'est dommage. L’intérêt de btrfs c'est de répartir ses données dans différents subvolumes de façon à pouvoir en réaliser des snapshots. Mettre / à la racine du btrfs ne permet pas cela.+    * C'est la méthode la plus simple, mais c'est dommage. L’intérêt de Btrfs c'est de répartir ses données dans différents subvolumes de façon à pouvoir en réaliser des snapshots. Mettre / à la racine du Btrfs ne permet pas cela.
     * Le processus d'​installation est le même que pour un autre système de fichiers. Il faudra cependant revoir les options de montages dans le fstab.     * Le processus d'​installation est le même que pour un autre système de fichiers. Il faudra cependant revoir les options de montages dans le fstab.
     * Il sera éventuellement possible de déplacer tous les fichiers de / dans un subvolume par la suite (avec un cp -Ra par exemple). **MAIS ATTENTION !!!** Il faudra apporter des modifications au grub.cfg sinon le système ne bootera plus automatiquement. Cet aspect sera traité par la suite.     * Il sera éventuellement possible de déplacer tous les fichiers de / dans un subvolume par la suite (avec un cp -Ra par exemple). **MAIS ATTENTION !!!** Il faudra apporter des modifications au grub.cfg sinon le système ne bootera plus automatiquement. Cet aspect sera traité par la suite.
Ligne 232: Ligne 257:
     * C'est la méthode la plus élégante, puisqu'​elle est très flexible.     * C'est la méthode la plus élégante, puisqu'​elle est très flexible.
     * Je ne vais pas détailler cette méthode ici, il y a des tutoriels bien faits [[:​doc:​install:​debootstrap-chroot|(par exemple ici)]]. Sachez juste qu'il suffit au moment du montage des partitions d'​ajouter dans les options de montage **subvol=//​chemin/​vers/​le/​subvolume/​racine//​** pour utiliser le subvolume comme racine.     * Je ne vais pas détailler cette méthode ici, il y a des tutoriels bien faits [[:​doc:​install:​debootstrap-chroot|(par exemple ici)]]. Sachez juste qu'il suffit au moment du montage des partitions d'​ajouter dans les options de montage **subvol=//​chemin/​vers/​le/​subvolume/​racine//​** pour utiliser le subvolume comme racine.
-    * Grub sait maintenant bien gérer le btrfs même à l'​intérieur d'un subvolume. Par contre, dans le cas d'un multi-boot, os-prober ne va pas fouiller dans tous les subvolumes, donc votre nouveau système ne saura pas trouvé par la commande update-grub d'un autre système. Je propose une méthode plus bas.+    * Grub sait maintenant bien gérer le Btrfs même à l'​intérieur d'un subvolume. Par contre, dans le cas d'un multi-boot, os-prober ne va pas fouiller dans tous les subvolumes, donc votre nouveau système ne saura pas trouvé par la commande update-grub d'un autre système. ​[[syntax#​GRUB|Je propose une méthode plus bas]].
     * La méthode d'​installation via chroot est utilisée par Arch et Gentoo entre autre. Il est donc simple d'​installer ces distributions dans un subvolume.     * La méthode d'​installation via chroot est utilisée par Arch et Gentoo entre autre. Il est donc simple d'​installer ces distributions dans un subvolume.
   * Utiliser le mode d'​installation expert pour installer Debian dans un subvolume.   * Utiliser le mode d'​installation expert pour installer Debian dans un subvolume.
     * La méthode est moins élégante que la précédente et c'est pour ça que je vais la détailler. :-P     * La méthode est moins élégante que la précédente et c'est pour ça que je vais la détailler. :-P
-    * Il est possible d'​utiliser un cd d'​installation de Wheezy, même si, encore une fois, il vaut mieux avoir un kernel à jour. Rien ne vous empêche d'​activer les dépots ​de testing ou sid après installation.+    * Il est possible d'​utiliser un cd d'​installation de Wheezy, même si, encore une fois, il vaut mieux avoir un kernel à jour. Rien ne vous empêche d'​activer les dépôts ​de testing ou sid après installation.
  
 ==== Installation dans un subvolume à l'aide du cd d'​installation Debian ==== ==== Installation dans un subvolume à l'aide du cd d'​installation Debian ====
  
-On se place ici dans le cas où vous avez un système déjà bootable (par exemple Debian sur une partition ext4 qui boote avec Grub). Je suppose que vous avez de l'​espace sur votre disque pour créer une partition de 20Go environs en btrfs. (le but étant de tester)+On se place ici dans le cas où vous avez un système déjà bootable (par exemple Debian sur une partition ext4 qui boote avec Grub). Je suppose que vous avez de l'​espace sur votre disque pour créer une partition de 20Go environs en Btrfs. (le but étant de tester)
  
-Si vous utilisez un disque vierge, c'est pareil au niveau de l'​installation,​ par contre Grub ne gère pas les disques Btrfs sans table de partition (mkfs.btrfs /dev/sda). Il vous faut créer un table des partitions avec un MBR et juste une partition primaire sur tout le disque (ou avec un swap aussi si vous voulez).+Si vous utilisez un disque vierge, c'est pareil au niveau de l'​installation,​ par contre Grub ne gère pas les disques Btrfs sans table de partition (mkfs.Btrfs /dev/sda). Il vous faut créer un table des partitions avec un MBR et juste une partition primaire sur tout le disque (ou avec un swap aussi si vous voulez).
 <​note>​Donc : <​note>​Donc :
-  * Pour un disque bootable il faut une table des partitions (MBR, GPT..) et donc le volume  ​btrfs sera du type /dev/sdaX +  * Pour un disque bootable il faut une table des partitions (MBR, GPT..) et donc le volume  ​Btrfs sera du type /dev/sdaX 
-  * Pour un disque de donnée vous pouvez vous passer de la table de partitions, le volume ​btrfs sera de type /dev/sda, mais le disque ne sera pas bootable seul. Rien ne vous empêche cependant de booter depuis un autre disque. Par contre l'​installateur de Debian ne fonctionnera pas sur ce type de disque, il faudra passer pas la méthode chroot.+  * Pour un disque de donnée vous pouvez vous passer de la table de partitions, le volume ​Btrfs sera de type /dev/sda, mais le disque ne sera pas bootable seul. Rien ne vous empêche cependant de booter depuis un autre disque. Par contre l'​installateur de Debian ne fonctionnera pas sur ce type de disque, il faudra passer pas la méthode chroot.
 </​note>​ </​note>​
  
-Dans le cas où il y aurais déjà des données ou un système d'​exploitation dans le volume ​btrfs cette méthode marche aussi.+Dans le cas où il y aurais déjà des données ou un système d'​exploitation dans le volume ​Btrfs cette méthode marche aussi.
  
 Rebootez sur le CD ou l'USB d'​installation. Rebootez sur le CD ou l'USB d'​installation.
Ligne 268: Ligne 293:
 <​file>​Exécuter un shell (ligne de commande)</​file>​ <​file>​Exécuter un shell (ligne de commande)</​file>​
  
-On monte le volume ​btrfs dans /mnt+On monte le volume ​Btrfs dans /mnt
 <code root>​mount -t btrfs -o ..options.. /dev/sdaX /​mnt</​code>​ <code root>​mount -t btrfs -o ..options.. /dev/sdaX /​mnt</​code>​
  
Ligne 298: Ligne 323:
  
 Normalement l'​installateur va se plaindre que vous n’êtes pas passés par l'​étape "​Partitionner les disques"​ Normalement l'​installateur va se plaindre que vous n’êtes pas passés par l'​étape "​Partitionner les disques"​
-Choisissez "​Revenir en arrière"​ jusqu’à qu'il lâche l'​affaire et installe le système de base (2 fois).+Choisissez "​Revenir en arrière"​ jusqu’à qu'il lâche l'​affaire ​(2 fois) et installe le système de base.
  
 Et voilà ! le système s'​installe et le reste de l'​installation peut se faire normalement. Et voilà ! le système s'​installe et le reste de l'​installation peut se faire normalement.
Ligne 328: Ligne 353:
   * [[:​doc:​systeme:​grub2:​configuration-2|Scripts manuels]]   * [[:​doc:​systeme:​grub2:​configuration-2|Scripts manuels]]
  
-Dans le cas ou vous voudriez que votre "​vieux"​ système continue de booter depuis le mbr et que son grub.cfg s'​occupe de faire booter le "​nouveau"​ système sur btrfs :+Dans le cas ou vous voudriez que votre "​vieux"​ système continue de booter depuis le mbr et que son grub.cfg s'​occupe de faire booter le "​nouveau"​ système sur Btrfs :
  
 Toujours dans l'​installateur Debian installez grub. **__Mais n'​installez pas le programme de démarrage GRUB sur le secteur d'​amorçage !__** Toujours dans l'​installateur Debian installez grub. **__Mais n'​installez pas le programme de démarrage GRUB sur le secteur d'​amorçage !__**
-<​note>​vous pourrez désinstaller grub une fois que vous aurez booté le "​nouveau"​ système. \\ +<​note>​Vous pourrez désinstaller grub une fois que vous aurez booté le "​nouveau"​ système. \\ 
 Vous pouvez aussi continuer sans programme d’amorçage et utiliser le modèle de fichier 40_custom donné ci dessous **à vos risques et périls**</​note>​ Vous pouvez aussi continuer sans programme d’amorçage et utiliser le modèle de fichier 40_custom donné ci dessous **à vos risques et périls**</​note>​
  
-<​file>​//Installer le programme de démarrage GRUB sur le secteur d'​amorçage ?// +<​file>​Installer le programme de démarrage GRUB sur le secteur d'​amorçage ? 
--> **Non**+-> Non
 puis.. puis..
-//Périphérique où sera installé le programme de démarrage//+Périphérique où sera installé le programme de démarrage
 Laissez le champ vide</​file>​ Laissez le champ vide</​file>​
 De cette façon on va pouvoir utiliser directement la partie concernant le boot du "​nouveau"​ système du grub.cfg dans le "​vieux"​ grub.cfg. De cette façon on va pouvoir utiliser directement la partie concernant le boot du "​nouveau"​ système du grub.cfg dans le "​vieux"​ grub.cfg.
Ligne 351: Ligne 376:
  
 Copiez la partie après ### BEGIN ... Copiez la partie après ### BEGIN ...
-<​file>​+<​file ​bash>
 menuentry '​Debian GNU/Linux, avec Linux 3.2.0-4-amd64'​ --class debian --class gnu-linux --class gnu --class os { menuentry '​Debian GNU/Linux, avec Linux 3.2.0-4-amd64'​ --class debian --class gnu-linux --class gnu --class os {
  load_video  load_video
  insmod gzio  insmod gzio
  insmod part_gpt  insmod part_gpt
- insmod ​btrfs + insmod ​Btrfs 
- set root='**(hd0,gpt3)**+ set root='​(hd0,​gpt3)'​ 
- search --no-floppy --fs-uuid --set=root ​**9201243d-1559-4b27-8973-070aeefa1079**+ search --no-floppy --fs-uuid --set=root 9201243d-1559-4b27-8973-070aeefa1079
  echo '​Chargement de Linux 3.2.0-4-amd64 ...'  echo '​Chargement de Linux 3.2.0-4-amd64 ...'
- linux **__/debian/root__/​boot/​vmlinuz-3.2.0-4-amd64** root=UUID=**9201243d-1559-4b27-8973-070aeefa1079** ro **rootflags=subvol=__debian/root__** ​ quiet+ linux /​debian/​root/​boot/​vmlinuz-3.2.0-4-amd64 root=UUID=9201243d-1559-4b27-8973-070aeefa1079 ro rootflags=subvol=debian/root  quiet
  echo '​Chargement du disque mémoire initial ...'  echo '​Chargement du disque mémoire initial ...'
- initrd **__/debian/root__/​boot/​initrd.img-3.2.0-4-amd64**+ initrd /​debian/​root/​boot/​initrd.img-3.2.0-4-amd64
 } }
 </​file>​ </​file>​
  
-Si vous n'avez pas installé Grub et n'avez donc pas de grub.cfg vous pouvez utiliser ​le schéma ci dessus en prenant soin de modifier les parties en **gras**+Il faut que vous pensiez à modifier/​vérifier les paramètres suivants : 
 +  * set root='(hd0,gpt3)' ​pour adapter au numéro ​de votre partition 
 +  * les UUIDs 
 +  * il faut indiquer ​le chemin vers vmlinuz et initrd depuis la racine du volume Btrfs (**/​debian/​root/​**boot/​vmlinuz...) 
 +  * ajouter une option ​de boot : **rootflags=subvol=//​chemin-vers-la-racine//​**
  
-<​note>​ Vous noterez donc qu'il faut indiquer le chemin à vmlinuz ​et initrd depuis la racine du volume btrfs (parties soulignées),​ \\  +Si vous n'avez pas installé Grub et n'avez donc pas de grub.cfg vous pouvez utiliser le schéma ci dessus en prenant soin de l'​adapter à votre système
-ainsi qu'une option ​de boot <​file>​ rootflags=subvol=//​chemin-vers-la-racine//</​file></​note>​+
  
-Ouvrez 40_custom de votre "​vieux"​ système et collez y le menuentry précédent.+ 
 +Ouvrez 40_custom de votre "​vieux"​ système et collez y le menuentry précédent ​dûment modifié.
 Attention à ne pas effacer les premières lignes ! Attention à ne pas effacer les premières lignes !
 <code root>​nano /​etc/​grub.d/​40_custom</​code>​ <code root>​nano /​etc/​grub.d/​40_custom</​code>​
-<​file>#​!/​bin/​sh+<​file ​bash>#​!/​bin/​sh
 exec tail -n +3 $0 exec tail -n +3 $0
 # This file provides an easy way to add custom menu entries. ​ Simply type the # This file provides an easy way to add custom menu entries. ​ Simply type the
Ligne 383: Ligne 412:
  insmod gzio  insmod gzio
  insmod part_gpt  insmod part_gpt
- insmod ​btrfs + insmod ​Btrfs 
- set root='**(hd0,gpt3)**+ set root='​(hd0,​gpt3)'​ 
- search --no-floppy --fs-uuid --set=root ​**9201243d-1559-4b27-8973-070aeefa1079**+ search --no-floppy --fs-uuid --set=root 9201243d-1559-4b27-8973-070aeefa1079
  echo '​Chargement de Linux 3.2.0-4-amd64 ...'  echo '​Chargement de Linux 3.2.0-4-amd64 ...'
- linux **__/debian/root__/​boot/​vmlinuz-3.2.0-4-amd64** root=UUID=**9201243d-1559-4b27-8973-070aeefa1079** ro **rootflags=subvol=__debian/root__** ​ quiet+ linux /​debian/​root/​boot/​vmlinuz-3.2.0-4-amd64 root=UUID=9201243d-1559-4b27-8973-070aeefa1079 ro rootflags=subvol=debian/root  quiet
  echo '​Chargement du disque mémoire initial ...'  echo '​Chargement du disque mémoire initial ...'
- initrd **__/debian/root__/​boot/​initrd.img-3.2.0-4-amd64**+ initrd /​debian/​root/​boot/​initrd.img-3.2.0-4-amd64
 } }
 </​file>​ </​file>​
Ligne 396: Ligne 425:
  
 <note warning> **Profitez en pour éditer le fstab du nouveau système :** <note warning> **Profitez en pour éditer le fstab du nouveau système :**
-<​code>​nano /​mnt/​debian/​root/​etc/​fstab</​code>​ +<​code ​root>nano /​mnt/​debian/​root/​etc/​fstab</​code>​ 
-<​file>​UUID=a69d9182-f4c7-4276-b35d-7d5f9bd50a57 ​     /      ​btrfs      ​rw,​noatime,​ssd,​discard,​autodefrag,​**subvol=debian/​root**      ​0 ​     0 +<​file ​fstab>#​l'​entrée pour la racine 
-UUID=a69d9182-f4c7-4276-b35d-7d5f9bd50a57 ​     /home      ​btrfs      ​rw,​noatime,​ssd,​discard,​autodefrag,​**subvol=debian/​home**      ​0 ​     0+UUID=a69d9182-f4c7-4276-b35d-7d5f9bd50a57 ​     /      ​Btrfs      ​rw,​noatime,​ssd,​discard,​autodefrag,​subvol=debian/​root ​     0      0 
 +#​l'​entrée pour le home 
 +UUID=a69d9182-f4c7-4276-b35d-7d5f9bd50a57 ​     /home      ​Btrfs      ​rw,​noatime,​ssd,​discard,​autodefrag,​subvol=debian/​home ​     0      0 
 +#swap et tmpfs
 swap... swap...
 tmpfs /tmp tmpfs default 0 0 tmpfs /tmp tmpfs default 0 0
  
-#Je vous conseille de monter le volume ​btrfs à la racine quelque part afin d'y avoir acces facilement +#Je vous conseille de monter le volume ​Btrfs à la racine quelque part afin d'y avoir accès ​facilement 
-UUID=a69d9182-f4c7-4276-b35d-7d5f9bd50a57 ​     /home/btrfs      btrfs      ​rw,​noatime,​ssd,​discard,​autodefrag,​**nodev,​nosuid,​noexec**     0      0+UUID=a69d9182-f4c7-4276-b35d-7d5f9bd50a57 ​     /home/Btrfs      Btrfs      ​rw,​noatime,​ssd,​discard,​autodefrag,​nodev,​nosuid,​noexec,​subvolid=0 ​    0      0
 </​file></​note>​ </​file></​note>​
  
Ligne 410: Ligne 442:
 ===== Backups incrémentales ===== ===== Backups incrémentales =====
  
-L'​intéret ​d'​avoir la racine de son OS dans un subvolume est que l'on peut en faire des snapshots et booter dans ces snapshots en utilisant la methode ci dessus.+L’intérêt ​d'​avoir la racine de son OS dans un subvolume est que l'on peut en faire des snapshots et booter dans ces snapshots en utilisant la methode ci dessus.
 Par exemple : Par exemple :
 <code root>cp 40_custom 41_debian2 <code root>cp 40_custom 41_debian2
 chmod +x 41_debian2</​code>​ chmod +x 41_debian2</​code>​
-et changer ​les subvolumes dans le menuentry.+Changer ​les subvolumes dans le menuentry ​pour correspondre au snapshot. 
 +<code root>​update-grub</​code>​
  
 C'est pratique pour : C'est pratique pour :
-  * Essayer un autre gestionnaire de fenêtre sans abimer ​la config actuelle.+  * Essayer un autre gestionnaire de fenêtre sans abîmer ​la config actuelle.
   * Essayer systemd (puisque c'est d'​actualité)   * Essayer systemd (puisque c'est d'​actualité)
   * Faire des bêtises avec rm ...   * Faire des bêtises avec rm ...
Ligne 423: Ligne 456:
   * Ai-je besoin d'​énumérer toutes les raisons de casser son système ?? :-P   * Ai-je besoin d'​énumérer toutes les raisons de casser son système ?? :-P
   ​   ​
-Pour celà je vais présenter 2 méthodes, une qui sera basée sur des scripts et **cron** et l'​autre sur **snapper** qui est dans les dépots+Pour cela je vais présenter 2 méthodes, une qui sera basée sur des scripts et **cron** et l'​autre sur **snapper** qui est dans les dépôts
  
 ==== Sur un même volume physique ==== ==== Sur un même volume physique ====
  
-Dans ce cas on veut faire des snapshot et les garder dans la même partition. Ça protège des erreurs de manupulation ​mais pas des pannes de disques.+Dans ce cas on veut faire des snapshot et les garder dans la même partition. Ça protège des erreurs de manipulation ​mais pas des pannes de disques.
  
 === Snapper === === Snapper ===
  
-Snapper est un programme qui gère les snapshots et qui a été développé par OpenSuse.+Snapper est un programme qui gère les snapshots et qui a été développé par OpenSuse ​((http://​snapper.io/​manpages/​snapper.html)).
  
-<​code>​ apt-get install snapper+<​code ​root> apt-get install snapper
 man snapper</​code>​ man snapper</​code>​
  
 Pour des snapshots automatiques de la racine : Pour des snapshots automatiques de la racine :
-<​code>​snapper -c root create-config /</​code>​+<​code ​root>snapper -c root create-config /</​code>​
 Ceci va créer un subvolume /.snapshot à la racine et les snapshots seront placés dedans. Ceci va créer un subvolume /.snapshot à la racine et les snapshots seront placés dedans.
 Les snaphots se font toutes les heures Les snaphots se font toutes les heures
Ligne 449: Ligne 482:
 TIMELINE_LIMIT_YEARLY="​10"</​file>​ TIMELINE_LIMIT_YEARLY="​10"</​file>​
  
-La configuration par défaut garde les 10 derniers snapshots (pris toutes les heures), 10 snapshots par jour, 10 snapshots par mois et 10 snapshots par an... Changez ces paramêtre ​selon vos besoins. <​note>​ Sachant que la taille d'un snapshot sur le disque ​corespond ​aux modifications sur les fichiers entre le snapshot et son subvolume parent. Je vous laisse donc imaginer la place pris sur le disque d'un snapshot qui a un an !</​note>​+La configuration par défaut garde les 10 derniers snapshots (pris toutes les heures), 10 snapshots par jour, 10 snapshots par mois et 10 snapshots par an... Changez ces paramètres ​selon vos besoins. <​note>​ Sachant que la taille d'un snapshot sur le disque ​correspond ​aux modifications sur les fichiers entre le snapshot et son subvolume parent. Je vous laisse donc imaginer la place pris sur le disque d'un snapshot qui a un an !</​note>​
  
 <​note>​ Notez encore une fois que les snapshots ne sont pas récursifs ! \\  <​note>​ Notez encore une fois que les snapshots ne sont pas récursifs ! \\ 
 Si vous avez /home dans un subvolume, alors votre /home ne sera pas snapshotté. Si vous avez /home dans un subvolume, alors votre /home ne sera pas snapshotté.
-recréez alors une configuration pour home <​code>​snapper -c home create-config /​home</​code></​note>​+recréez alors une configuration pour home <​code ​root>snapper -c home create-config /​home</​code></​note>​
  
 Voici ce que vous aurez une semaine après : Voici ce que vous aurez une semaine après :
-<​code>​snapper list</​code>​+<​code ​user>snapper list</​code>​
 <​file>​Type ​  | #   | Pré # | Date                           | Utilisateur | Nettoyage | Description | Données utilisateur <​file>​Type ​  | #   | Pré # | Date                           | Utilisateur | Nettoyage | Description | Données utilisateur
 -------+-----+-------+--------------------------------+-------------+-----------+-------------+-------------------- -------+-----+-------+--------------------------------+-------------+-----------+-------------+--------------------
Ligne 486: Ligne 519:
 === Manuellement === === Manuellement ===
  
-Le principe de base est simple : un script bash et cron.+Le principe de base est simple : un [[:​doc:​programmation:​shell:​scripts|script bash]] et [[:​doc:​systeme:​crontab|cron]].
  
-<​code>​btrfs subvolume snapshot /​home/​btrfs/​debian/​home /​home/​btrfs/​snapshots/​home-backup-$(date)</​code>​+<​code ​root>btrfs subvolume snapshot /​home/​btrfs/​debian/​home /​home/​btrfs/​snapshots/​home-backup-$(date)</​code>​
  
  
Ligne 583: Ligne 616:
  
  
 +===== Références ==== 
 +  * [[https://​btrfs.wiki.kernel.org|Le wiki de Btrfs]] 
 +  * [[https://​wiki.archlinux.org/​index.php/​Btrfs|La page sur Btrfs sur le wiki d'​Archlinux]] 
 +  * [[http://​zythmer.acyclic.org/​blog/​2013/​01/​27/​debian-full-disk-encryption-btrfs-subvolumes.html|http://​zythmer.acyclic.org/​blog/​2013/​01/​27/​debian-full-disk-encryption-btrfs-subvolumes.html]]
doc/systeme/btrfs.txt · Dernière modification: 01/07/2023 08:06 par Croutons

Pied de page des forums

Propulsé par FluxBB