BtrFs » Historique » Version 5
Fabien Dupont, 10/05/2013 10:51
1 | 1 | Fabien Dupont | h1. BtrFs |
---|---|---|---|
2 | 1 | Fabien Dupont | |
3 | 2 | Fabien Dupont | {{>toc}} |
4 | 2 | Fabien Dupont | |
5 | 1 | Fabien Dupont | h2. Présentation |
6 | 1 | Fabien Dupont | |
7 | 1 | Fabien Dupont | BtrFs (se prononce « Butter FS ») est un filesystem de type CoW (« Copy on Write »). C'est à dire que deux données identiques (même CRC32) ne sont écrites qu'une seule fois sur le filesystem jusqu'à ce qu'une des deux soit modifiées. |
8 | 1 | Fabien Dupont | |
9 | 1 | Fabien Dupont | Exemple : |
10 | 1 | Fabien Dupont | |
11 | 1 | Fabien Dupont | <pre> |
12 | 1 | Fabien Dupont | $ cat toto > fichier1 # « toto » est écrit quelque part sur le disque dur |
13 | 1 | Fabien Dupont | $ cat toto > fichier2 # fichier2 devient un pointeur vers fichier1 |
14 | 1 | Fabien Dupont | $ sed -ie 's/o/a/g' fichier2 # « tata » est écrit quelque part sur le disque dur |
15 | 1 | Fabien Dupont | # et fichier2 n'est plus un pointeur vers fichier1 |
16 | 1 | Fabien Dupont | </pre> |
17 | 1 | Fabien Dupont | |
18 | 5 | Fabien Dupont | De plus, BtrFs est différent des systèmes de fichiers « classiques » (ext2/3/4) car il offre les fonctionnalités suivantes : |
19 | 1 | Fabien Dupont | |
20 | 1 | Fabien Dupont | * possibilité d'écrire le filesystem sur plusieurs disques : raid1, raid0, raid10 et depuis le kernel 3.9, raid5 ou raid6. |
21 | 1 | Fabien Dupont | * sous-volumes : il n'y a pas de notion de partitions mais un répertoire peut devenir la racine d'un nouveau volume. |
22 | 1 | Fabien Dupont | * snapshots : une image peut être créée et utilisée pour sauvegarder ou restaurer l'état d'un filesystem (ou d'un sous-volume) à un instant T. |
23 | 1 | Fabien Dupont | |
24 | 1 | Fabien Dupont | h2. Création d'un filesystem BtrFs sous debian |
25 | 1 | Fabien Dupont | |
26 | 1 | Fabien Dupont | Le paquet « btrfs-tools » offre les outils permettant la création et la gestion d'un filesystem BtrFs. |
27 | 1 | Fabien Dupont | |
28 | 1 | Fabien Dupont | <pre> |
29 | 1 | Fabien Dupont | # apt-get install btrfs-tools |
30 | 1 | Fabien Dupont | </pre> |
31 | 1 | Fabien Dupont | |
32 | 1 | Fabien Dupont | h3. Single |
33 | 1 | Fabien Dupont | |
34 | 1 | Fabien Dupont | Les données et les métadonnées sont écrites sur un seul disque. |
35 | 1 | Fabien Dupont | |
36 | 1 | Fabien Dupont | <pre> |
37 | 1 | Fabien Dupont | # mkfs.btrfs -d single /dev/sdb |
38 | 1 | Fabien Dupont | </pre> |
39 | 1 | Fabien Dupont | |
40 | 1 | Fabien Dupont | h3. raid0 |
41 | 1 | Fabien Dupont | |
42 | 5 | Fabien Dupont | Les données sont « stripées » sur N disques. Il faut donc un minimum de 2 disques. |
43 | 1 | Fabien Dupont | |
44 | 1 | Fabien Dupont | <pre> |
45 | 1 | Fabien Dupont | # mkfs.btrfs -d raid0 -m raid0 /dev/sdb /dev/sdc |
46 | 1 | Fabien Dupont | </pre> |
47 | 1 | Fabien Dupont | |
48 | 1 | Fabien Dupont | Par exemple pour un fichier contenant « abcdefgh », on aura sur les disques : |
49 | 1 | Fabien Dupont | |
50 | 1 | Fabien Dupont | <pre> |
51 | 1 | Fabien Dupont | +-----+ +-----+ |
52 | 1 | Fabien Dupont | | sdb | | sdc | |
53 | 1 | Fabien Dupont | +-----+ +-----+ |
54 | 1 | Fabien Dupont | | a | | b | |
55 | 1 | Fabien Dupont | | c | | d | |
56 | 1 | Fabien Dupont | | e | | f | |
57 | 1 | Fabien Dupont | | g | | h | |
58 | 1 | Fabien Dupont | +-----+ +-----+ |
59 | 1 | Fabien Dupont | </pre> |
60 | 1 | Fabien Dupont | |
61 | 1 | Fabien Dupont | Pros : |
62 | 1 | Fabien Dupont | |
63 | 5 | Fabien Dupont | * Performance accrue en lecture : un fichier est lu sur N disques, débit multiplié par N. |
64 | 1 | Fabien Dupont | * Plusieurs disques sont vus en un seul volume. |
65 | 1 | Fabien Dupont | |
66 | 1 | Fabien Dupont | Cons : |
67 | 1 | Fabien Dupont | |
68 | 1 | Fabien Dupont | * Sécurité des données faible, si un seul disque tombe en panne, l'ensemble des données est perdue. |
69 | 1 | Fabien Dupont | |
70 | 1 | Fabien Dupont | h3. raid1 |
71 | 1 | Fabien Dupont | |
72 | 5 | Fabien Dupont | Les données sont « mirrorées » sur N disques. Il faut donc un minimum de 2 disques. |
73 | 1 | Fabien Dupont | |
74 | 1 | Fabien Dupont | <pre> |
75 | 1 | Fabien Dupont | # mkfs.btrfs -d raid1 -m raid1 /dev/sdb /dev/sdc |
76 | 1 | Fabien Dupont | </pre> |
77 | 1 | Fabien Dupont | |
78 | 1 | Fabien Dupont | Par exemple pour un fichier contenant « abcdefgh », on aura sur les disques : |
79 | 1 | Fabien Dupont | |
80 | 1 | Fabien Dupont | <pre> |
81 | 1 | Fabien Dupont | +-----+ +-----+ |
82 | 1 | Fabien Dupont | | sdb | | sdc | |
83 | 1 | Fabien Dupont | +-----+ +-----+ |
84 | 1 | Fabien Dupont | | a | | a | |
85 | 1 | Fabien Dupont | | b | | b | |
86 | 1 | Fabien Dupont | | c | | c | |
87 | 1 | Fabien Dupont | | d | | d | |
88 | 1 | Fabien Dupont | | e | | e | |
89 | 1 | Fabien Dupont | | f | | f | |
90 | 1 | Fabien Dupont | | g | | g | |
91 | 1 | Fabien Dupont | | h | | h | |
92 | 1 | Fabien Dupont | +-----+ +-----+ |
93 | 1 | Fabien Dupont | </pre> |
94 | 1 | Fabien Dupont | |
95 | 1 | Fabien Dupont | Pros : |
96 | 1 | Fabien Dupont | |
97 | 1 | Fabien Dupont | * Sécurité des données forte, N-1 disques peuvent tomber en panne avant de perdre les données. |
98 | 5 | Fabien Dupont | * Performance accrue en lecture, un fichier est lu sur N disques, débit multiplié par N. |
99 | 1 | Fabien Dupont | |
100 | 1 | Fabien Dupont | Cons : |
101 | 1 | Fabien Dupont | |
102 | 1 | Fabien Dupont | * Pour N disques de taille T, on n'a que T octets à disposition. |
103 | 1 | Fabien Dupont | |
104 | 3 | Fabien Dupont | h3. raid10 |
105 | 1 | Fabien Dupont | |
106 | 5 | Fabien Dupont | Les données sont « mirrorées » sur N/2 disques puis « stripées » entre les deux N/2 disques. Il faut donc un minimum de 4 disques. |
107 | 1 | Fabien Dupont | |
108 | 1 | Fabien Dupont | <pre> |
109 | 1 | Fabien Dupont | # mkfs.btrfs -d raid10 -m raid10 /dev/sdb /dev/sdc /dev/sdd /dev/sde |
110 | 1 | Fabien Dupont | </pre> |
111 | 1 | Fabien Dupont | |
112 | 1 | Fabien Dupont | Par exemple pour un fichier contenant « abcdefgh », on aura sur les disques : |
113 | 1 | Fabien Dupont | |
114 | 1 | Fabien Dupont | <pre> |
115 | 1 | Fabien Dupont | <-------raid0-------> |
116 | 1 | Fabien Dupont | <-----raid1-----> <-----raid1-----> |
117 | 1 | Fabien Dupont | +-----+ +-----+ +-----+ +-----+ |
118 | 1 | Fabien Dupont | | sdb | | sdc | | sdd | | sde | |
119 | 1 | Fabien Dupont | +-----+ +-----+ +-----+ +-----+ |
120 | 1 | Fabien Dupont | | a | | a | | b | | b | |
121 | 1 | Fabien Dupont | | c | | c | | d | | d | |
122 | 1 | Fabien Dupont | | e | | e | | f | | f | |
123 | 1 | Fabien Dupont | | g | | g | | h | | h | |
124 | 1 | Fabien Dupont | +-----+ +-----+ +-----+ +-----+ |
125 | 1 | Fabien Dupont | </pre> |
126 | 1 | Fabien Dupont | |
127 | 1 | Fabien Dupont | Pros : |
128 | 1 | Fabien Dupont | |
129 | 1 | Fabien Dupont | * Sécurité des données forte, N-1 disques dans chaque morceau du raid0 peuvent tomber en panne avant de perdre les données. |
130 | 5 | Fabien Dupont | * Performance accrue en lecture, un fichier est lu sur N disques, débit multiplié par N. |
131 | 1 | Fabien Dupont | * Plusieurs disques sont vus en un seul volume. |
132 | 1 | Fabien Dupont | |
133 | 1 | Fabien Dupont | Cons : |
134 | 1 | Fabien Dupont | |
135 | 1 | Fabien Dupont | * Pour N disques de taille T, on n'a que (NÃT)/2 octets à disposition. |
136 | 2 | Fabien Dupont | |
137 | 3 | Fabien Dupont | h3. raid5 (kernel >= 3.9) |
138 | 2 | Fabien Dupont | |
139 | 2 | Fabien Dupont | Les données sont « stripées » sur N-1 disques puis la parité d'un « stripe » est écrite sur le dernier disque. Il faut donc un minimum de 3 disques. |
140 | 2 | Fabien Dupont | |
141 | 2 | Fabien Dupont | <pre> |
142 | 2 | Fabien Dupont | # mkfs.btrfs -d raid5 -m raid5 /dev/sdb /dev/sdc /dev/sdd |
143 | 2 | Fabien Dupont | </pre> |
144 | 2 | Fabien Dupont | |
145 | 2 | Fabien Dupont | Par exemple pour un fichier contenant « abcdefgh », on aura sur les disques : |
146 | 2 | Fabien Dupont | |
147 | 2 | Fabien Dupont | <pre> |
148 | 2 | Fabien Dupont | +-----+ +-----+ +-----+ |
149 | 2 | Fabien Dupont | | sdb | | sdc | | sdd | |
150 | 2 | Fabien Dupont | +-----+ +-----+ +-----+ |
151 | 2 | Fabien Dupont | | a | | b | | p1 | |
152 | 2 | Fabien Dupont | | p2 | | c | | d | |
153 | 2 | Fabien Dupont | | e | | p3 | | f | |
154 | 2 | Fabien Dupont | | g | | h | | p4 | |
155 | 2 | Fabien Dupont | +-----+ +-----+ +-----+ |
156 | 2 | Fabien Dupont | </pre> |
157 | 2 | Fabien Dupont | |
158 | 2 | Fabien Dupont | Pros : |
159 | 2 | Fabien Dupont | |
160 | 2 | Fabien Dupont | * Sécurité des données forte, 1 disque peut tomber en panne avant de perdre les données. |
161 | 2 | Fabien Dupont | * Plusieurs disques sont vus en un seul volume. |
162 | 2 | Fabien Dupont | |
163 | 2 | Fabien Dupont | Cons : |
164 | 2 | Fabien Dupont | |
165 | 2 | Fabien Dupont | * Pour N disques de taille T, on n'a que (N-1)ÃT octets à disposition. |
166 | 2 | Fabien Dupont | |
167 | 2 | Fabien Dupont | |
168 | 3 | Fabien Dupont | h3. raid6 (kernel >= 3.9) |
169 | 2 | Fabien Dupont | |
170 | 2 | Fabien Dupont | Les données sont « stripées » sur N-2 disques puis la parité d'un « stripe » est « mirrorée » sur 2 disques. Il faut donc un minimum de 4 disques. |
171 | 2 | Fabien Dupont | |
172 | 2 | Fabien Dupont | <pre> |
173 | 2 | Fabien Dupont | # mkfs.btrfs -d raid6 -m raid6 /dev/sdb /dev/sdc /dev/sdd |
174 | 2 | Fabien Dupont | </pre> |
175 | 2 | Fabien Dupont | |
176 | 2 | Fabien Dupont | Par exemple pour un fichier contenant « abcdefgh », on aura sur les disques : |
177 | 2 | Fabien Dupont | |
178 | 2 | Fabien Dupont | <pre> |
179 | 2 | Fabien Dupont | +-----+ +-----+ +-----+ +-----+ |
180 | 2 | Fabien Dupont | | sdb | | sdc | | sdd | | sde | |
181 | 2 | Fabien Dupont | +-----+ +-----+ +-----+ +-----+ |
182 | 2 | Fabien Dupont | | a | | b | | p1 | | p1 | |
183 | 2 | Fabien Dupont | | p2 | | c | | d | | p2 | |
184 | 1 | Fabien Dupont | | p3 | | p3 | | e | | f | |
185 | 2 | Fabien Dupont | | g | | p4 | | p4 | | h | |
186 | 2 | Fabien Dupont | +-----+ +-----+ +-----+ +-----+ |
187 | 2 | Fabien Dupont | </pre> |
188 | 2 | Fabien Dupont | |
189 | 2 | Fabien Dupont | Pros : |
190 | 2 | Fabien Dupont | |
191 | 5 | Fabien Dupont | * Sécurité des données forte, 2 disques peuvent tomber en panne avant de perdre les données. |
192 | 2 | Fabien Dupont | * Plusieurs disques sont vus en un seul volume. |
193 | 2 | Fabien Dupont | |
194 | 2 | Fabien Dupont | Cons : |
195 | 2 | Fabien Dupont | |
196 | 2 | Fabien Dupont | * Pour N disques de taille T, on n'a que (N-2)ÃT octets à disposition. |
197 | 2 | Fabien Dupont | |
198 | 2 | Fabien Dupont | h2. Administration d'un volume BtrFs |
199 | 2 | Fabien Dupont | |
200 | 2 | Fabien Dupont | h3. Sous-volumes (subvolumes) |
201 | 2 | Fabien Dupont | |
202 | 2 | Fabien Dupont | Un sous-volume n'est _pas_ équivalent à LVM. C'est une racine sous la racine. |
203 | 2 | Fabien Dupont | |
204 | 2 | Fabien Dupont | Un sous-volume peut contenir une hierarchie de fichiers ou bien une image (« snapshot ») d'un autre sous-volume à un instant T. |
205 | 2 | Fabien Dupont | |
206 | 2 | Fabien Dupont | Par exemple, dans un même volume, on peut avoir : |
207 | 2 | Fabien Dupont | |
208 | 2 | Fabien Dupont | <pre> |
209 | 2 | Fabien Dupont | +-+- root (sous volume par défaut) |
210 | 2 | Fabien Dupont | | +-- /bin |
211 | 2 | Fabien Dupont | | +-- /usr |
212 | 2 | Fabien Dupont | | +-- ... |
213 | 2 | Fabien Dupont | | |
214 | 2 | Fabien Dupont | +-+- home |
215 | 2 | Fabien Dupont | | +-- /home |
216 | 2 | Fabien Dupont | | |
217 | 2 | Fabien Dupont | +-+- snapshot_root1 |
218 | 2 | Fabien Dupont | | +-- /bin |
219 | 2 | Fabien Dupont | | +-- /usr |
220 | 2 | Fabien Dupont | | +-- ... |
221 | 2 | Fabien Dupont | | |
222 | 2 | Fabien Dupont | . |
223 | 2 | Fabien Dupont | . |
224 | 2 | Fabien Dupont | </pre> |
225 | 2 | Fabien Dupont | |
226 | 2 | Fabien Dupont | h4. Création d'un sous-volume |
227 | 2 | Fabien Dupont | |
228 | 2 | Fabien Dupont | Par exemple, pour créer un sous-volume /mnt/home dans le volume BtrFs monté dans /mnt : |
229 | 2 | Fabien Dupont | |
230 | 2 | Fabien Dupont | <pre> |
231 | 2 | Fabien Dupont | # btrfs subvolume create /mnt/home |
232 | 2 | Fabien Dupont | </pre> |
233 | 2 | Fabien Dupont | |
234 | 2 | Fabien Dupont | /!\ /mnt/home ne doit _pas_ exister. Il apparaîtra tel un répertoire, du point de vue de l'utilisateur mais ce n'en n'est pas un. |
235 | 2 | Fabien Dupont | |
236 | 2 | Fabien Dupont | h4. Création d'un snapshot dans un sous-volume : |
237 | 2 | Fabien Dupont | |
238 | 2 | Fabien Dupont | Par exemple, pour créer un snapshot de /mnt/home : |
239 | 2 | Fabien Dupont | |
240 | 2 | Fabien Dupont | <pre> |
241 | 2 | Fabien Dupont | # ls -l /mnt/home/fab |
242 | 2 | Fabien Dupont | /mnt/home/fab: |
243 | 2 | Fabien Dupont | total 0 |
244 | 2 | Fabien Dupont | # btrfs subvolume snapshot /mnt/home /mnt/snapshot_of_home |
245 | 2 | Fabien Dupont | # touch /mnt/home/fab/toto |
246 | 2 | Fabien Dupont | # ls -l /mnt/home/fab /mnt/snapshot_of_home/fab |
247 | 2 | Fabien Dupont | /mnt/home/fab: |
248 | 2 | Fabien Dupont | total 0 |
249 | 2 | Fabien Dupont | -rw-r--r-- 1 root root 0 May 9 13:49 toto |
250 | 2 | Fabien Dupont | |
251 | 2 | Fabien Dupont | /mnt/snapshot_of_home/fab: |
252 | 2 | Fabien Dupont | total 0 |
253 | 2 | Fabien Dupont | </pre> |
254 | 2 | Fabien Dupont | |
255 | 2 | Fabien Dupont | On voit bien que le snapshot contient l'état de /mnt/home avant la création du fichier toto. |
256 | 2 | Fabien Dupont | |
257 | 1 | Fabien Dupont | h4. Monter un sous-volume |
258 | 2 | Fabien Dupont | |
259 | 2 | Fabien Dupont | Pour monter un sous-volume précédement créé : |
260 | 2 | Fabien Dupont | |
261 | 2 | Fabien Dupont | <pre> |
262 | 2 | Fabien Dupont | # btrfs subvolume list /mnt |
263 | 2 | Fabien Dupont | ID 261 gen 37 top level 5 path home |
264 | 2 | Fabien Dupont | ID 262 gen 41 top level 5 path snapshot_of_home |
265 | 5 | Fabien Dupont | # mount /dev/sdb1 /home -o subvol=home |
266 | 2 | Fabien Dupont | # df -HTP | grep sdb1 |
267 | 2 | Fabien Dupont | /dev/sdb1 btrfs 8.0T 6.7G 8.0T 1% /home |
268 | 2 | Fabien Dupont | /dev/sdb1 btrfs 8.0T 6.7G 8.0T 1% /mnt |
269 | 2 | Fabien Dupont | # mkdir /home/fab |
270 | 2 | Fabien Dupont | # chown fab:fab /home/fab |
271 | 2 | Fabien Dupont | # ls -ld /mnt/home/fab /home/fab |
272 | 1 | Fabien Dupont | drwxr-xr-x 1 fab fab 8 May 9 13:49 /mnt/home/fab |
273 | 1 | Fabien Dupont | drwxr-xr-x 1 fab fab 8 May 9 13:49 /home/fab |
274 | 1 | Fabien Dupont | </pre> |
275 | 3 | Fabien Dupont | |
276 | 3 | Fabien Dupont | h3. Monter un volume au boot (/etc/fstab) |
277 | 3 | Fabien Dupont | |
278 | 3 | Fabien Dupont | h4. Monter un volume |
279 | 3 | Fabien Dupont | |
280 | 3 | Fabien Dupont | N'importe lequel des disques d'un volume raid* peut être monté. BtrFs déduira le type de volume et les autres disques utilisés. |
281 | 3 | Fabien Dupont | |
282 | 3 | Fabien Dupont | Par exemple, pour un volume en raid1 sur /dev/sdb et /dev/sdc monté dans /pub au boot : |
283 | 3 | Fabien Dupont | |
284 | 3 | Fabien Dupont | <pre> |
285 | 3 | Fabien Dupont | # grep btrfs /etc/fstab |
286 | 1 | Fabien Dupont | /dev/sdb /pub btrfs defaults 0 0 |
287 | 3 | Fabien Dupont | </pre> |
288 | 3 | Fabien Dupont | |
289 | 3 | Fabien Dupont | h4. Monter un sous-volume (ou un snapshot) |
290 | 3 | Fabien Dupont | |
291 | 3 | Fabien Dupont | Par exemple, pour monter le sous-volume home du volume précédent : |
292 | 3 | Fabien Dupont | |
293 | 3 | Fabien Dupont | <pre> |
294 | 3 | Fabien Dupont | # grep btrfs /etc/fstab |
295 | 5 | Fabien Dupont | /dev/sdb /pub btrfs defaults 0 0 |
296 | 5 | Fabien Dupont | /dev/sdb /home btrfs defaults,subvol=home 0 0 |
297 | 3 | Fabien Dupont | </pre> |
298 | 3 | Fabien Dupont | |
299 | 3 | Fabien Dupont | h3. Gérer les disques d'un raid |
300 | 3 | Fabien Dupont | |
301 | 3 | Fabien Dupont | h4. Remplacer un disque défaillant |
302 | 3 | Fabien Dupont | |
303 | 1 | Fabien Dupont | Par exemple, pour un raid10 sur /dev/sdb, /dev/sdc, /dev/sdd et /dev/sde monté dans /pub, soudainement /dev/sdc tombe en panne. |
304 | 1 | Fabien Dupont | Il doit être remplacé physiquement puis : |
305 | 1 | Fabien Dupont | |
306 | 1 | Fabien Dupont | <pre> |
307 | 1 | Fabien Dupont | # mkfs.btrfs /dev/sdc |
308 | 1 | Fabien Dupont | # mount -o remount,degraded /dev/sdb |
309 | 1 | Fabien Dupont | # btrfs device add /dev/sdc /pub |
310 | 3 | Fabien Dupont | # btrfs device delete missing /pub |
311 | 3 | Fabien Dupont | # mount -o remount /dev/sdb |
312 | 3 | Fabien Dupont | </pre> |
313 | 3 | Fabien Dupont | |
314 | 5 | Fabien Dupont | Il faut toujours exécuter les opérations dans cet ordre : |
315 | 5 | Fabien Dupont | |
316 | 5 | Fabien Dupont | * remonter le filesystem en mode dégradé |
317 | 5 | Fabien Dupont | * ajouter le nouveau disque |
318 | 5 | Fabien Dupont | * supprimer le disque « missing ». |
319 | 5 | Fabien Dupont | |
320 | 5 | Fabien Dupont | Ceci permet de ne jamais avoir un volume comprenant moins de disques que ce que le type de raid permet. |
321 | 3 | Fabien Dupont | |
322 | 3 | Fabien Dupont | h4. Convertir un volume single en raid1 |
323 | 3 | Fabien Dupont | |
324 | 3 | Fabien Dupont | Par exemple, pour convertir le volume /dev/sdb monté dans /pub en raid1 avec /dev/sdc en plus : |
325 | 3 | Fabien Dupont | |
326 | 3 | Fabien Dupont | <pre> |
327 | 3 | Fabien Dupont | # mkfs.btrfs /dev/sdc |
328 | 3 | Fabien Dupont | # btrfs device add /dev/sdc /pub |
329 | 3 | Fabien Dupont | # btrfs balance start -dconvert=raid1 -mconvert=raid1 /pub |
330 | 3 | Fabien Dupont | </pre> |
331 | 3 | Fabien Dupont | |
332 | 3 | Fabien Dupont | La commande « balance » permet de redistribuer les données d'un volume BtrFs en fonction du type de raid. |
333 | 3 | Fabien Dupont | |
334 | 3 | Fabien Dupont | Cette opération est similaire pour convertir en raid0, raid10, etc. |
335 | 3 | Fabien Dupont | |
336 | 3 | Fabien Dupont | h2. Pour plus d'informations |
337 | 3 | Fabien Dupont | |
338 | 3 | Fabien Dupont | https://btrfs.wiki.kernel.org/ |
339 | 3 | Fabien Dupont | http://en.wikipedia.org/wiki/Btrfs |
340 | 3 | Fabien Dupont | http://manpages.debian.net/cgi-bin/man.cgi?sektion=8&query=mkfs.btrfs&apropos=0&manpath=sid&locale=en |
341 | 3 | Fabien Dupont | http://manpages.debian.net/cgi-bin/man.cgi?sektion=8&query=btrfs&apropos=0&manpath=sid&locale=en |