1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
|
<?xml version="1.0" encoding="ISO-8859-7" standalone="no"?>
<!--
Ôï Åã÷åéñßäéï ôïõ FreeBSD: ÓõóôÞìáôá Áñ÷åßùí
The FreeBSD Greek Documentation Project
$FreeBSD$
%SOURCE% en_US.ISO8859-1/books/handbook/filesystems/chapter.sgml
%SRCID% 1.10
-->
<chapter id="filesystems">
<chapterinfo>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>ÃñÜöçêå áðü ôïí </contrib>
</author>
</authorgroup>
</chapterinfo>
<title>ÕðïóôÞñéîç ÓõóôçìÜôùí Áñ÷åßùí</title>
<sect1 id="filesystems-synopsis">
<title>Óýíïøç</title>
<indexterm><primary>File Systems</primary></indexterm>
<indexterm>
<primary>File Systems Support</primary>
<see>File Systems</see>
</indexterm>
<para>Ôá óõóôÞìáôá áñ÷åßùí áðïôåëïýí áíáðüóðáóôï ôìÞìá êÜèå ëåéôïõñãéêïý
óõóôÞìáôïò. ÅðéôñÝðïõí óôïõò ÷ñÞóôåò íá äçìéïõñãïýí êáé íá áðïèçêåýïõí
áñ÷åßá, ðáñÝ÷ïõí ðñüóâáóç óå äåäïìÝíá, êáé öõóéêÜ áîéïðïéïýí ôïõò
óêëçñïýò äßóêïõò. ÄéáöïñåôéêÜ ëåéôïõñãéêÜ óõóôÞìáôá ÷ñçóéìïðïéïýí
óõíÞèùò äéáöïñåôéêÜ åããåíÞ óõóôÞìáôá áñ÷åßùí. Ôï óýóôçìá áñ÷åßùí ôïõ
&os; åßíáé ôï Fast File System Þ <acronym>FFS</acronym>, ôï
ïðïßï ðñïÞëèå áðü ôï áñ÷éêü óýóôçìá áñ÷åßùí ôïõ Unix™, ãíùóôü
åðßóçò êáé ùò <acronym>UFS</acronym>. Áõôü åßíáé êáé ôï åããåíÝò
óýóôçìá áñ÷åßùí ôïõ &os;, ôï ïðïßï ÷ñçóéìïðïéåßôáé óôïõò óêëçñïýò
äßóêïõò êáé ðñïóöÝñåé ðñüóâáóç óôá äåäïìÝíá.</para>
<para>Ôï &os; ðñïóöÝñåé åðßóçò ðëçèþñá äéáöïñåôéêþí óõóôçìÜôùí áñ÷åßùí,
þóôå íá ðáñÝ÷åé ôïðéêÞ ðñüóâáóç óå äåäïìÝíá ðïõ Ý÷ïõí äçìéïõñãçèåß áðü
Üëëá ëåéôïõñãéêÜ óõóôÞìáôá, ð.÷. äåäïìÝíá ðïõ âñßóêïíôáé óå ôïðéêÜ
<acronym>USB</acronym> áðïèçêåõôéêÜ ìÝóá, ïäçãïýò flash, êáé óêëçñïýò
äßóêïõò. ÕðÜñ÷åé åðßóçò õðïóôÞñéîç ãéá Üëëá, ìç-åããåíÞ óõóôÞìáôá
áñ÷åßùí, üðùò ôï Extended File System (<acronym>EXT</acronym>) ôïõ
&linux; êáèþò êáé ôï óýóôçìá Z File System (<acronym>ZFS</acronym>) ôçò
&sun;.</para>
<para>Ôï &os; ðáñÝ÷åé äéáöïñåôéêü åðßðåäï õðïóôÞñéîçò ãéá êÜèå óýóôçìá
áñ÷åßùí. Ãéá ïñéóìÝíá èá ÷ñåéáóôåß íá öïñôùèåß êÜðïéï Üñèñùìá óôïí
ðõñÞíá, åíþ ãéá Üëëá èá ðñÝðåé íá åãêáôáóôáèïýí êÜðïéá åñãáëåßá.
Ôï êåöÜëáéï áõôü Ý÷åé ó÷åäéáóôåß íá âïçèÞóåé ôïõò ÷ñÞóôåò ôïõ &os; íá
áðïêôÞóïõí ðñüóâáóç óå Üëëá óõóôÞìáôá áñ÷åßùí óôï óýóôçìá ôïõò,
îåêéíþíôáò áðü ôï Æ File System ôçò &sun;.</para>
<para>Áöïý äéáâÜóåôå áõôü ôï êåöÜëáéï, èá ãíùñßæåôå:</para>
<itemizedlist>
<listitem>
<para>Ôç äéáöïñÜ ìåôáîý ôùí åããåíþí êáé ôùí õðïóôçñéæüìåíùí
óõóôçìÜôùí áñ÷åßùí.</para>
</listitem>
<listitem>
<para>Ðïéá óõóôÞìáôá áñ÷åßùí õðïóôçñßæïíôáé áðü ôï &os;.</para>
</listitem>
<listitem>
<para>Ðùò íá åíåñãïðïéÞóåôå, íá ñõèìßóåôå, íá áðïêôÞóåôå ðñüóâáóç êáé
íá ÷ñçóéìïðïéÞóåôå ìç-åããåíÞ óõóôÞìáôá áñ÷åßùí.</para>
</listitem>
</itemizedlist>
<para>Ðñéí äéáâÜóåôå áõôü ôï êåöÜëáéï, èá ðñÝðåé:</para>
<itemizedlist>
<listitem>
<para>Íá êáôáíïåßôå âáóéêÝò Ýííïéåò ôïõ &unix; êáé ôïõ &os;
(<xref linkend="basics"/>).</para>
</listitem>
<listitem>
<para>Íá åßóôå åîïéêåéùìÝíïò ìå ôéò âáóéêÝò äéáäéêáóßåò ñýèìéóçò êáé
åãêáôÜóôáóçò ðñïóáñìïóìÝíïõ ðõñÞíá
(<xref linkend="kernelconfig"/>).</para>
</listitem>
<listitem>
<para>Íá áéóèÜíåóôå Üíåôá ìå ôçí åãêáôÜóôáóç åöáñìïãþí ôñßôïõ
êáôáóêåõáóôÞ óôï &os; (<xref linkend="ports"/>).</para>
</listitem>
<listitem>
<para>Íá åßóôå åîïéêåéùìÝíïò ìå ôïõò äßóêïõò, ôá ìÝóá
áðïèÞêåõóçò, êáé ôá áíôßóôïé÷á ïíüìáôá óõóêåõþí óôï
&os; (<xref linkend="disks"/>).</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="filesystems-zfs">
<title>Ôï Óýóôçìá Áñ÷åßùí Z (ZFS)</title>
<para>Ôï óýóôçìá áñ÷åßùí Z, áíáðôý÷èçêå áðü ôçí &sun;, êáé åßíáé ìéá íÝá
ôå÷íïëïãßá ðïõ ó÷åäéÜóôçêå ãéá íá ðáñÝ÷åé áðïèÞêåõóç ìÝóù ôçò ìåèüäïõ
pool. Áõôü óçìáßíåé üôé üëïò ï åëåýèåñïò ÷þñïò äéáôßèåôáé ùò
áðüèåìá, êáé äéáíÝìåôáé äõíáìéêÜ óå êÜèå óýóôçìá áñ÷åßùí áíÜëïãá ìå ôéò
áíÜãêåò áðïèÞêåõóçò äåäïìÝíùí. ¸÷åé åðßóçò ó÷åäéáóôåß ãéá ôç ìÝãéóôç
áêåñáéüôçôá äåäïìÝíùí êáé õðïóôçñßæåé óôéãìéüôõðá (snapshots) äåäïìÝíùí,
ðïëëáðëÜ áíôßãñáöá êáé áèñïßóìáôá åëÝã÷ïõ äåäïìÝíùí (checksums). ¸÷åé
áêüìá ðñïóôåèåß Ýíá íÝï ìïíôÝëï ãéá ôç äéáôÞñçóç áíôéãñÜöùí ôùí
äåäïìÝíùí, ãíùóôü ùò <acronym>RAID</acronym>-Z. Ôï ìïíôÝëï
<acronym>RAID</acronym>-Z åßíáé ðáñüìïéï ìå ôï
<acronym>RAID</acronym>5 áëëÜ åßíáé ó÷åäéáóìÝíï íá ðáñÝ÷åé ðñïóôáóßá
ôùí äåäïìÝíùí êáôÜ ôçí åããñáöÞ ôïõò.</para>
<sect2>
<title>Âåëôéóôïðïßçóç ôïõ ZFS</title>
<para>Ôï õðïóýóôçìá <acronym>ZFS</acronym> ÷ñçóéìïðïéåß áñêåôïýò ðüñïõò
ôïõ óõóôÞìáôïò. Âåëôéóôïðïéþíôáò ôéò ñõèìßóåéò ôïõ óõóôÞìáôïò óáò, èá
åðéôý÷åôå ôç ìÝãéóôç áðüäïóç óôçí êáèçìåñéíÞ ÷ñÞóç. Êáèþò ôï
<acronym>ZFS</acronym> åßíáé áêüìá óå ðåéñáìáôéêü óôÜäéï óôï &os;,
áõôü ßóùò áëëÜîåé ìåëëïíôéêÜ. Ùóôüóï, ãéá ôçí þñá, óõíßóôáôáé íá
áêïëïõèÞóåôå ôá ðáñáêÜôù âÞìáôá:</para>
<sect3>
<title>ÌíÞìç</title>
<para>Ôï óõíïëéêü ìÝãåèïò ìíÞìçò ôïõ óõóôÞìáôïò ðñÝðåé íá åßíáé
ôïõëÜ÷éóôïí Ýíá gigabyte, åíþ ôï óõíéóôþìåíï ìÝãåèïò åßíáé äýï
gigabytes Þ êáé ðåñéóóüôåñï. Óå üëá ôá ðáñáäåßãìáôá ðïõ öáßíïíôáé
åäþ, ôï óýóôçìá Ý÷åé Ýíá gigabyte ìíÞìçò êáé Ý÷ïõìå åðßóçò
âåëôéóôïðïéÞóåé ôéò ñõèìßóåéò ôïõ.</para>
<para>ÏñéóìÝíïé ÷ñÞóôåò öáßíåôáé íá ôá êáôáöÝñíïõí êáé ìå ëéãüôåñï
áðü Ýíá gigabyte ìíÞìçò, áëëÜ ìå ôÝôïéïõò ðåñéïñéóìïýò öõóéêÞò
ìíÞìçò, åßíáé áñêåôÜ ðéèáíü íá äçìéïõñãçèåß panic êÜôù áðü âáñý
öïñôßï åñãáóßáò, åîáéôßáò åîÜíôëçóçò ôçò.</para>
</sect3>
<sect3>
<title>Ñýèìéóç ôïõ ÐõñÞíá</title>
<para>Óõíßóôáôáé íá áöáéñÝóåôå ôá ðñïãñÜììáôá ïäÞãçóçò êáé ôéò
åðéëïãÝò ðïõ äåí ÷ñçóéìïðïéåßôå áðü ôï áñ÷åßï ñõèìßóåùí ôïõ
ðõñÞíá. Êáèþò ïé ðåñéóóüôåñïé ïäçãïß óõóêåõþí äéáôßèåíôáé åðßóçò
êáé óå ìïñöÞ áñèñùìÜôùí, ìðïñåßôå áðëÜ íá ôïõò öïñôþóåôå
÷ñçóéìïðïéþíôáò ôï áñ÷åßï
<filename>/boot/loader.conf</filename>.</para>
<para>Ïé ÷ñÞóôåò ôçò áñ÷éôåêôïíéêÞò &i386; èá ðñÝðåé íá ðñïóèÝóïõí ôçí
ðáñáêÜôù åðéëïãÞ óôï áñ÷åßï ñõèìßóåùí ôïõ ðõñÞíá ôïõò, íá ôïí
åðáíáìåôáãëùôôßóïõí êáé íá åðáíåêêéíÞóïõí ôï óýóôçìá ôïõò:</para>
<programlisting>options KVA_PAGES=512</programlisting>
<para>Ç åðéëïãÞ áõôÞ èá äéåõñýíåé ôçí ðåñéï÷Þ äéåõèýíóåùí ôïõ ðõñÞíá,
åðéôñÝðïíôáò Ýôóé ôçí áýîçóç ôéìÞò ôçò ñõèìéóôéêÞò ìåôáâëçôÞò
<varname>vm.kvm_size</varname> ðÝñá áðü ôï ôñÝ÷ïí üñéï ôïõ
1 GB (2 GB ãéá ðõñÞíåò <acronym>PAE</acronym>). Ãéá íá
âñåßôå ôçí êáôáëëçëüôåñç ôéìÞ ãéá áõôÞ ôçí åðéëïãÞ, äéáéñÝóôå ôï
åðéèõìçôü ìÝãåèïò ôçò ðåñéï÷Þò äéåõèýíóåùí ìå ôï ôÝóóåñá (4). Óôçí
ðåñßðôùóç áõôÞ, Ý÷ïõìå <literal>512</literal> ãéá ìÝãåèïò
2 GB.</para>
</sect3>
<sect3>
<title>Ñõèìßóåéò óôéò ÌåôáâëçôÝò ôïõ Loader</title>
<para>Èá ðñÝðåé íá áõîçèåß ç ðåñéï÷Þ äéåõèýíóåùí
<devicename>kmem</devicename> óå üëåò ôéò áñ÷éôåêôïíéêÝò ôïõ &os;.
Óôï äïêéìáóôéêü ìáò óýóôçìá, ìå Ýíá gigabyte öõóéêÞò ìíÞìçò,
åß÷áìå åðéôõ÷çìÝíï áðïôÝëåóìá ÷ñçóéìïðïéþíôáò ôéò áêüëïõèåò
åðéëïãÝò óôï áñ÷åßï <filename>/boot/loader.conf</filename> êáé
åðáíåêêéíþíôáò ôï óýóôçìá ìáò:</para>
<programlisting>vm.kmem_size="330M"
vm.kmem_size_max="330M"
vfs.zfs.arc_max="40M"
vfs.zfs.vdev.cache.size="5M"</programlisting>
<para>Ãéá áíáëõôéêüôåñåò ñõèìßóåéò ó÷åôéêÜ ìå ôçí âåëôéóôïðïßçóç ôïõ
ZFS, äåßôå ôï <ulink
url="http://wiki.freebsd.org/ZFSTuningGuide"></ulink>.</para>
</sect3>
</sect2>
<sect2>
<title>×ñçóéìïðïéþíôáò ôï <acronym>ZFS</acronym></title>
<para>ÕðÜñ÷åé Ýíáò ìç÷áíéóìüò åêêßíçóçò ðïõ åðéôñÝðåé óôï &os; íá
ðñïóáñôÞóåé <acronym>ZFS</acronym> pools êáôÜ ôç äéÜñêåéá ôçò
åêêßíçóçò ôïõ óõóôÞìáôïò. Ãéá íá ôïí ñõèìßóåôå, åêôåëÝóôå ôéò
áêüëïõèåò åíôïëÝò:</para>
<screen>&prompt.root; <userinput>echo 'zfs_enable="YES"' >> /etc/rc.conf</userinput>
&prompt.root; <userinput>/etc/rc.d/zfs start</userinput></screen>
<para>Ôï õðüëïéðï áõôïý ôïõ êåéìÝíïõ õðïèÝôåé üôé Ý÷åôå äéáèÝóéìïõò
ôñåéò <acronym>SCSI</acronym> äßóêïõò, êáé üôé ôá ïíüìáôá óõóêåõþí
ôïõò åßíáé <devicename><replaceable>da0</replaceable></devicename>,
<devicename><replaceable>da1</replaceable></devicename> êáé
<devicename><replaceable>da2</replaceable></devicename>.
¼óïé äéáèÝôïõí äßóêïõò <acronym>IDE</acronym> èá
ðñÝðåé íá ÷ñçóéìïðïéÞóïõí óõóêåõÝò ôïõ ôýðïõ
<devicename><replaceable>ad</replaceable></devicename>
áíôß ãéá ôéò áíôßóôïé÷åò <acronym>SCSI</acronym>.</para>
<sect3>
<title>Pool ìå ¸íá Ìüíï Äßóêï</title>
<para>Ãéá ôçí äçìéïõñãßá åíüò <acronym>ZFS</acronym> pool ìå Ýíá
ìüíï äßóêï (÷ùñßò äõíáôüôçôá áíï÷Þò óöáëìÜôùí), ÷ñçóéìïðïéÞóôå ôçí
åíôïëÞ <command>zpool</command>:</para>
<screen>&prompt.root; <userinput>zpool create example /dev/da0</userinput></screen>
<para>Ãéá íá äåßôå ôï íÝï pool, åîåôÜóôå ôçí Ýîïäï ôçò åíôïëÞò
<command>df</command>:</para>
<screen>&prompt.root; <userinput>df</userinput>
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235230 1628718 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032846 48737598 2% /usr
example 17547136 0 17547136 0% /example</screen>
<para>Ç Ýîïäïò áõôÞ äåß÷íåé êáèáñÜ üôé ôï <literal>example</literal>
pool ü÷é ìüíï Ý÷åé äçìéïõñãçèåß, áëëÜ Ý÷åé åðßóçò
<emphasis>ðñïóáñôçèåß</emphasis> êéüëáò. Åßíáé åðßóçò äéáèÝóéìï ùò
êáíïíéêü óýóôçìá áñ÷åßùí, ìðïñåßôå íá äçìéïõñãÞóåôå áñ÷åßá óå áõôü,
êáé Üëëïé ÷ñÞóôåò ìðïñïýí åðßóçò íá ôï äïõí, üðùò öáßíåôáé óôï
ðáñáêÜôù ðáñÜäåéãìá:</para>
<screen>&prompt.root <userinput>cd /example</userinput>
&prompt.root; <userinput>ls</userinput>
&prompt.root; <userinput>touch testfile</userinput>
&prompt.root; <userinput>ls -al</userinput>
total 4
drwxr-xr-x 2 root wheel 3 Aug 29 23:15 .
drwxr-xr-x 21 root wheel 512 Aug 29 23:12 ..
-rw-r--r-- 1 root wheel 0 Aug 29 23:15 testfile</screen>
<para>Äõóôõ÷þò áõôü ôï pool äåí ÷ñçóéìïðïéåß êÜðïéï áðü ôá
ðëåïíåêôÞìáôá ôïõ <acronym>ZFS</acronym>. ÄçìéïõñãÞóôå Ýíá óýóôçìá
áñ÷åßùí óå áõôü ôï pool êáé åíåñãïðïéÞóôå óå áõôü ôç
óõìðßåóç:</para>
<screen>&prompt.root; <userinput>zfs create example/compressed</userinput>
&prompt.root; <userinput>zfs set compression=gzip example/compressed</userinput></screen>
<para>Ôï óýóôçìá áñ÷åßùí <literal>example/compressed</literal>
åßíáé ðëÝïí Ýíá óõìðéåóìÝíï <acronym>ZFS</acronym> óýóôçìá.
ÄïêéìÜóôå íá áíôéãñÜøåôå ìåñéêÜ ìåãÜëá áñ÷åßá óå áõôü, áðåõèåßáò
óôïí êáôÜëïãï
<filename class="directory">/example/compressed</filename>.</para>
<para>Ìðïñåßôå ôþñá íá áðåíåñãïðïéÞóåôå ôç óõìðßåóç ãñÜöïíôáò:</para>
<screen>&prompt.root; <userinput>zfs set compression=off example/compressed</userinput></screen>
<para>Ãéá íá áðïðñïóáñôÞóåôå ôï óýóôçìá áñ÷åßùí, åêôåëÝóôå ôçí
áêüëïõèç åíôïëÞ êáé åðáëçèåýóôå ôï áðïôÝëåóìá ìÝóù ôïõ âïçèçôéêïý
ðñïãñÜììáôïò <command>df</command>:</para>
<screen>&prompt.root; <userinput>zfs umount example/compressed</userinput>
&prompt.root; <userinput>df</userinput>
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235232 1628716 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
example 17547008 0 17547008 0% /example</screen>
<para>ÐñïóáñôÞóôå îáíÜ ôï óýóôçìá áñ÷åßùí, þóôå íá åßíáé êáé ðÜëé
ðñïóâÜóéìï, êáé åðáëçèåýóôå ôï ÷ñçóéìïðïéþíôáò üðùò êáé ðñéí, ôçí
åíôïëÞ <command>df</command>:</para>
<screen>&prompt.root; <userinput>zfs mount example/compressed</userinput>
&prompt.root; <userinput>df</userinput>
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235234 1628714 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
example 17547008 0 17547008 0% /example
example/compressed 17547008 0 17547008 0% /example/compressed</screen>
<para>Ìðïñåßôå åðßóçò íá äåßôå ôï pool êáé ôï óýóôçìá áñ÷åßùí
åîåôÜæïíôáò ôçí Ýîïäï ôçò åíôïëÞò <command>mount</command>:</para>
<screen>&prompt.root; <userinput>mount</userinput>
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s1d on /usr (ufs, local, soft-updates)
example on /example (zfs, local)
example/data on /example/data (zfs, local)
example/compressed on /example/compressed (zfs, local)</screen>
<para>¼ðùò ðáñáôçñïýìå, ôï óýóôçìá áñ÷åßùí <acronym>ZFS</acronym>
ìðïñåß íá ÷ñçóéìïðïéçèåß ùò êïéíü óýóôçìá áñ÷åßùí ìåôÜ ôç
äçìéïõñãßá ôïõ. Ùóôüóï, äéáèÝôåé ðïëëÝò áêüìá ëåéôïõñãßåò. Óôï
ðáñáêÜôù ðáñÜäåéãìá äçìéïõñãïýìå Ýíá íÝï óýóôçìá áñ÷åßùí, ôï
<literal>data</literal>. èá áðïèçêåýóïõìå óçìáíôéêÜ äåäïìÝíá óå
áõôü, êáé Ýôóé ôï ñõèìßæïõìå þóôå íá êñáôÜåé äýï áíôßãñáöá áðü
êÜèå ìðëïê äåäïìÝíùí:</para>
<screen>&prompt.root; <userinput>zfs create example/data</userinput>
&prompt.root; <userinput>zfs set copies=2 example/data</userinput></screen>
<para>Ìðïñïýìå ôþñá íá äïýìå ôá äåäïìÝíá êáé ôçí êáôáíÜëùóç ÷þñïõ
äßíïíôáò îáíÜ ôçí åíôïëÞ <command>df</command>:</para>
<screen>&prompt.root; <userinput>df</userinput>
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235234 1628714 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
example 17547008 0 17547008 0% /example
example/compressed 17547008 0 17547008 0% /example/compressed
example/data 17547008 0 17547008 0% /example/data</screen>
<para>ÐáñáôçñÞóôå üôé êÜèå óýóôçìá áñ÷åßùí óôï pool äåß÷íåé ôï ßäéï
ìÝãåèïò äéáèÝóéìïõ ÷þñïõ. Áõôüò åßíáé êáé ï ëüãïò ðïõ
÷ñçóéìïðïéïýìå ôçí åíôïëÞ <command>df</command> óå üëá ôá
ðáñáäåßãìáôá, ãéá íá äåßîïõìå üôé ôá óõóôÞìáôá áñ÷åßùí
÷ñçóéìïðïéïýí ìüíï ôï ÷þñï ðïõ ÷ñåéÜæïíôáé êáé üôé üëá ìïéñÜæïíôáé
ôïí ßäéï ÷þñï (ôï êïéíü÷ñçóôï áðüèåìá — pool). Óôï óýóôçìá
áñ÷åßùí <acronym>ZFS</acronym> Ýííïéåò üðùò ïé ôüìïé (volumes) êáé
ïé êáôáôìÞóåéò (partitions) äåí Ý÷ïõí íüçìá. Áíôßèåôá, ðïëëÜ
óõóôÞìáôá áñ÷åßùí ìïéñÜæïíôáé ôïí ßäéï ÷þñï, ôï pool. Ìðïñåßôå íá
êáôáñãÞóåôå ôï óýóôçìá áñ÷åßùí êáé êáôüðéí ôï ßäéï ôï pool üôáí
äåí ôá ÷ñåéÜæåóôå ðëÝïí:</para>
<screen>&prompt.root; <userinput>zfs destroy example/compressed</userinput>
&prompt.root; <userinput>zfs destroy example/data</userinput>
&prompt.root; <userinput>zpool destroy example</userinput></screen>
<para>Ïé óêëçñïß äßóêïé ìå ôïí êáéñü ÷áëÜíå, åßíáé áíáðüöåõêôï.
¼ôáí Ýíáò äßóêïò ÷áëÜóåé, ôá äåäïìÝíá ôïõ ÷Üíïíôáé. Ìéá ìÝèïäïò
ãéá íá áðïöýãïõìå ôçí áðþëåéá äåäïìÝíùí åîáéôßáò åíüò ÷áëáóìÝíïõ
äßóêïõ åßíáé íá äçìéïõñãÞóïõìå ìéá óõóôïé÷ßá
<acronym>RAID</acronym>. Ôá pools ôïõ <acronym>ZFS</acronym> Ý÷ïõí
ó÷åäéáóèåß þóôå íá õðïóôçñßæïõí áõôü ôï ÷áñáêôçñéóôéêü.
Ç ëåéôïõñãßá áõôÞ áíáëýåôáé óôçí åðüìåíç åíüôçôá.</para>
</sect3>
<sect3>
<title><acronym>ZFS</acronym> RAID-Z</title>
<para>¼ðùò áíáöÝñáìå ðñïçãïõìÝíùò, ç åíüôçôá áõôÞ ðñïûðïèÝôåé üôé
÷ñçóéìïðïéïýìå ôñåéò óõóêåõÝò
<acronym>SCSI</acronym> ìå ïíüìáôá óõóêåõþí
<devicename>da0</devicename>, <devicename>da1</devicename> êáé
<devicename>da2</devicename>. Ãéá íá äçìéïõñãÞóïõìå Ýíá pool ôýðïõ
<acronym>RAID</acronym>-Z, åêôåëïýìå ôçí áêüëïõèç åíôïëÞ:</para>
<screen>&prompt.root; <userinput>zpool create storage raidz da0 da1 da2</userinput></screen>
<note>
<para>Ç &sun; óõíéóôÜ íá ÷ñçóéìïðïéïýíôáé áðü ôñåéò ùò åííéÜ
óõóêåõÝò óå óõóôïé÷ßåò ôýðïõ <acronym>RAID</acronym>-Z.
Áí ÷ñåéÜæåôáé íá äçìéïõñãÞóåôå Ýíá pool ìå ðåñéóóüôåñïõò áðü
äÝêá äßóêïõò, åßíáé ðñïôéìüôåñï íá ôï ÷ùñßóåôå óå ïìÜäåò áðü
ìéêñüôåñá <acronym>RAID</acronym>-Z pools. Áí äéáèÝôåôå ìüíï
äýï äßóêïõò áëëÜ ÷ñåéÜæåóôå ôçí äõíáôüôçôá áíï÷Þò óöáëìÜôùí,
ßóùò åßíáé êáëýôåñï íá ÷ñçóéìïðïéÞóåôå Ýíá
<acronym>ZFS</acronym> mirror. Äåßôå ôç óåëßäá manual ôïõ
&man.zpool.8; ãéá ðåñéóóüôåñåò ëåðôïìÝñåéåò.</para>
</note>
<para>Èá äçìéïõñãçèåß ôï <literal>storage</literal> zpool. Ìðïñåßôå
íá åðáëçèåýóåôå ôï áðïôÝëåóìá ÷ñçóéìïðïéþíôáò, üðùò êáé
ðñïçãïõìÝíùò, ôéò åíôïëÝò &man.mount.8; êáé &man.df.1;. Èá
ìðïñïýóáìå íá ÷ñçóéìïðïéÞóïõìå ðåñéóóüôåñïõò äßóêïõò, ðñïóèÝôïíôáò
ôá ïíüìáôá óõóêåõþí ôïõò óôï ôÝëïò ôçò ðáñáðÜíù ëßóôáò.
ÄçìéïõñãÞóôå Ýíá íÝï óýóôçìá áñ÷åßùí óôï pool, ôï ïðïßï èá
ïíïìÜæåôáé <literal>home</literal> êáé üðïõ èá áðïèçêåýïíôáé ôåëéêÜ
ôá áñ÷åßá ôùí ÷ñçóôþí:</para>
<screen>&prompt.root; <userinput>zfs create storage/home</userinput></screen>
<para>Ìðïñïýìå ôþñá íá åíåñãïðïéÞóïõìå ôçí óõìðßåóç êáé íá êñáôÜìå
åðéðëÝïí áíôßãñáöá ôùí êáôáëüãùí êáé ôùí äåäïìÝíùí ôùí ÷ñçóôþí.
¼ðùò êáé ðñïçãïõìÝíùò, ìðïñïýìå íá ôï åðéôý÷ïõìå ÷ñçóéìïðïéþíôáò
ôéò ðáñáêÜôù åíôïëÝò:</para>
<screen>&prompt.root; <userinput>zfs set copies=2 storage/home</userinput>
&prompt.root; <userinput>zfs set compression=gzip storage/home</userinput></screen>
<para>Ãéá íá ãßíåé áõôüò ï íÝïò êáôÜëïãïò ôùí ÷ñçóôþí, áíôéãñÜøôå ôá
äåäïìÝíá ôïõò óå áõôüí êáé äçìéïõñãÞóôå ôïõò êáôÜëëçëïõò
óõìâïëéêïýò äåóìïýò:</para>
<screen>&prompt.root; <userinput>cp -rp /home/* /storage/home</userinput>
&prompt.root; <userinput>rm -rf /home /usr/home</userinput>
&prompt.root; <userinput>ln -s /storage/home /home</userinput>
&prompt.root; <userinput>ln -s /storage/home /usr/home</userinput></screen>
<para>Ôá äåäïìÝíá ôùí ÷ñçóôþí èá áðïèçêåýïíôáé ôþñá óôï íÝï óýóôçìá
áñ÷åßùí <filename class="directory">/storage/home</filename>.
Ãéá íá ôï åðáëçèåýóåôå, äçìéïõñãÞóôå Ýíá íÝï ÷ñÞóôç êáé åéóÝëèåôå
óôï óýóôçìá ìå ôï íÝï ëïãáñéáóìü.</para>
<para>ÄïêéìÜóôå íá äçìéïõñãÞóåôå Ýíá óôéãìéüôõðï (snapshot) óôï
ïðïßï èá ìðïñåßôå íá åðáíÝëèåôå áñãüôåñá:</para>
<screen>&prompt.root; <userinput>zfs snapshot storage/home@08-30-08</userinput></screen>
<para>Óçìåéþóôå üôé ç åðéëïãÞ äçìéïõñãßáò óôéãìéüôõðïõ ëåéôïõñãåß
ìüíï óå ðñáãìáôéêü óýóôçìá áñ÷åßùí, êáé ü÷é óå êÜðïéï ìåìïíùìÝíï
êáôÜëïãï Þ áñ÷åßï. Ï ÷áñáêôÞñáò <literal>@</literal>
÷ñçóéìïðïéåßôáé ùò äéá÷ùñéóôéêü ìåôáîý ôïõ óõóôÞìáôïò áñ÷åßùí êáé
ôïõ ïíüìáôïò ôüìïõ. Áí êáôáóôñáöåß ï êáôÜëïãïò äåäïìÝíùí êÜðïéïõ
÷ñÞóôç áðïêáôáóôÞóôå ôïí ìå ôçí åíôïëÞ:</para>
<screen>&prompt.root; <userinput>zfs rollback storage/home@08-30-08</userinput></screen>
<para>Ãéá íá äåßôå ìéá ëßóôá ôùí äéáèÝóéìùí óôéãìéüôõðùí, åêôåëÝóôå
ôçí åíôïëÞ <command>ls</command> óôïí êáôÜëïãï
<filename class="directory">.zfs/snapshot</filename> ôïõ óõóôÞìáôïò
áñ÷åßùí. Ãéá ðáñÜäåéãìá, ãéá íá äåßôå ôï óôéãìéüôõðï ðïõ
äçìéïõñãÞóáìå ðñïçãïõìÝíùò, åêôåëÝóôå ôçí ðáñáêÜôù åíôïëÞ:</para>
<screen>&prompt.root; <userinput>ls /storage/home/.zfs/snapshot</userinput></screen>
<para>Åßíáé äõíáôüí íá ãñÜøåôå êÜðïéï script ðïõ íá äçìéïõñãåß
ìçíéáßá óôéãìéüôõðá ôùí äåäïìÝíùí ôùí ÷ñçóôþí. Ùóôüóï, ìå ôçí
ðÜñïäï ôïõ ÷ñüíïõ, ôá óôéãìéüôõðá èá êáôáíáëþóïõí ìåãÜëï ðïóïóôü
ôïõ ÷þñïõ óôï äßóêï. Ìðïñåßôå íá äéáãñÜøåôå ôï ðñïçãïýìåíï
óôéãìéüôõðï ÷ñçóéìïðïéþíôáò ôçí ðáñáêÜôù åíôïëÞ:</para>
<screen>&prompt.root; <userinput>zfs destroy storage/home@08-30-08</userinput></screen>
<para>Äåí õðÜñ÷åé ëüãïò, ìåôÜ áðü üëåò áõôÝò ôéò äïêéìÝò, íá
êñáôÞóïõìå ôï <filename class="directory">/storage/home</filename>
óôçí ðáñïýóá êáôÜóôáóç ôïõ. ÌåôáôñÝøôå ôï óôï ðñáãìáôéêü óýóôçìá
áñ÷åßùí <filename class="directory">/home</filename>:</para>
<screen>&prompt.root; <userinput>zfs set mountpoint=/home storage/home</userinput></screen>
<para>×ñçóéìïðïéþíôáò ôéò åíôïëÝò <command>df</command> êáé
<command>mount</command> èá äïýìå üôé ôï óýóôçìá ÷åéñßæåôáé ðëÝïí
áõôü ôï óýóôçìá áñ÷åßùí ùò ôï ðñáãìáôéêü
<filename class="directory">/home</filename>:</para>
<screen>&prompt.root; <userinput>mount</userinput>
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s1d on /usr (ufs, local, soft-updates)
storage on /storage (zfs, local)
storage/home on /home (zfs, local)
&prompt.root; <userinput>df</userinput>
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235240 1628708 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032826 48737618 2% /usr
storage 26320512 0 26320512 0% /storage
storage/home 26320512 0 26320512 0% /home</screen>
<para>Åäþ ïëïêëçñþíåôáé ç ñýèìéóç ôïõ <acronym>RAID</acronym>-Z.
Ãéá íá äÝ÷åóôå áíáöïñÝò êáôÜóôáóçò ó÷åôéêÜ ìå ôá óõóôÞìáôá
áñ÷åßùí êáôÜ ôç íõêôåñéíÞ åêôÝëåóç ôïõ &man.periodic.8;, äþóôå ôçí
ðáñáêÜôù åíôïëÞ:</para>
<screen>&prompt.root; <userinput>echo 'daily_status_zfs_enable="YES"' >> /etc/periodic.conf</userinput></screen>
</sect3>
<sect3>
<title>ÁíÜêôçóç ôïõ <acronym>RAID</acronym>-Z</title>
<para>ÊÜèå ëïãéóìéêü <acronym>RAID</acronym> Ý÷åé ìéá ìÝèïäï ãéá
åðßâëåøç ôçò êáôÜóôáóÞò ôïõ, êáé ôï <acronym>ZFS</acronym> äåí
áðïôåëåß åîáßñåóç. Ìðïñåßôå íá äåßôå ôçí êáôÜóôáóç ôùí óõóêåõþí
ôïõ <acronym>RAID</acronym>-Z ÷ñçóéìïðïéþíôáò ôçí áêüëïõèç
åíôïëÞ:</para>
<screen>&prompt.root; <userinput>zpool status -x</userinput></screen>
<para>Áí üëá ôá pools åßíáé óå õãéÞ êáôÜóôáóç, èá ðÜñåôå ôï áêüëïõèï
ìÞíõìá:</para>
<screen>all pools are healthy</screen>
<para>Áí õðÜñ÷åé êÜðïéï ðñüâëçìá, ð.÷. êÜðïéïò äßóêïò Ý÷åé âãåé
åêôüò ëåéôïõñãßáò, èá äåßôå ôçí ðåñéãñáöÞ ôçò êáôÜóôáóçò óå
Ýíá ìÞíõìá üðùò ôï ðáñáêÜôù:</para>
<screen> pool: storage
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
storage DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
da0 ONLINE 0 0 0
da1 OFFLINE 0 0 0
da2 ONLINE 0 0 0
errors: No known data errors</screen>
<para>Ôï ðáñáðÜíù äåß÷íåé üôé ç óõóêåõÞ ôÝèçêå åêôüò ëåéôïõñãßáò
áðü ôïí äéá÷åéñéóôÞ. Áõôü åßíáé áëÞèåéá ãéá ôï óõãêåêñéìÝíï
ðáñÜäåéãìá. Ãéá íá ôåèåß ï äßóêïò åêôüò, ÷ñçóéìïðïéÞèçêå ç
ðáñáêÜôù åíôïëÞ:</para>
<screen>&prompt.root; <userinput>zpool offline storage da1</userinput></screen>
<para>Ìðïñïýìå ôþñá íá áíôéêáôáóôÞóïõìå ôï äßóêï
<devicename>da1</devicename> ìåôÜ ôçí áðåíåñãïðïßçóç ôïõ
óõóôÞìáôïò. ¼ôáí ôï óýóôçìá åðáíÝëèåé óå ëåéôïõñãßá, ìðïñïýìå íá
÷ñçóéìïðïéÞóïõìå ôçí áêüëïõèç åíôïëÞ ãéá íá åíçìåñþóïõìå ôï
óýóôçìá ãéá ôçí áíôéêáôÜóôáóç ôïõ äßóêïõ:</para>
<screen>&prompt.root; <userinput>zpool replace storage da1</userinput></screen>
<para>Áðü åäþ, ìðïñïýìå íá åëÝãîïõìå îáíÜ ôçí êáôÜóôáóç, áõôÞ ôç
öïñÜ ÷ùñßò ôçí åðéëïãÞ <option>-x</option>:</para>
<screen>&prompt.root; <userinput>zpool status storage</userinput>
pool: storage
state: ONLINE
scrub: resilver completed with 0 errors on Sat Aug 30 19:44:11 2008
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz1 ONLINE 0 0 0
da0 ONLINE 0 0 0
da1 ONLINE 0 0 0
da2 ONLINE 0 0 0
errors: No known data errors</screen>
<para>¼ðùò öáßíåôáé óôï ðáñÜäåéãìá, ôá ðÜíôá öáßíåôáé íá ëåéôïõñãïýí
öõóéïëïãéêÜ.</para>
</sect3>
<sect3>
<title>ÅðáëÞèåõóç ÄåäïìÝíùí</title>
<para>¼ðùò áíáöÝñáìå ðñïçãïõìÝíùò, ôï <acronym>ZFS</acronym>
÷ñçóéìïðïéåß <literal>checksums</literal> (áèñïßóìáôá åëÝã÷ïõ) ãéá
íá åðáëçèåýóåé ôçí áêåñáéüôçôá ôùí áðïèçêåõìÝíùí äåäïìÝíùí.
Ôá áèñïßóìáôá åëÝã÷ïõ åíåñãïðïéïýíôáé áõôüìáôá êáôÜ ôçí äçìéïõñãßá
ôùí óõóôçìÜôùí áñ÷åßùí, êáé ìðïñïýí íá áðåíåñãïðïéçèïýí ìÝóù ôçò
åðüìåíçò åíôïëÞò:</para>
<screen>&prompt.root; <userinput>zfs set checksum=off storage/home</userinput></screen>
<para>Áõôü äåí åßíáé ãåíéêÜ êáëÞ éäÝá, êáèþò ôá checksums
êáôáëáìâÜíïõí åëÜ÷éóôï áðïèçêåõôéêü ÷þñï, êáé åßíáé ðïëý ðéï
÷ñÞóéìï íá ôá Ý÷ïõìå åíåñãïðïéçìÝíá. Åðßóçò äåí öáßíåôáé íá
ðñïêáëïýí êÜðïéá óçìáíôéêÞ êáèõóôÝñçóç Þ åðéâÜñõíóç. Ìå ôá
checksums åíåñãïðïéçìÝíá, ìðïñïýìå íá æçôÞóïõìå áðü ôï
<acronym>ZFS</acronym> íá åëÝãîåé ôçí áêåñáéüôçôá ôùí äåäïìÝíùí
÷ñçóéìïðïéþíôáò ôá ãéá åðáëÞèåõóç. Ç äéáäéêáóßá áõôÞ åßíáé
ãíùóôÞ ùò <quote>scrubbing.</quote> Ãéá íá åëÝãîåôå ôçí
áêåñáéüôçôá äåäïìÝíùí ôïõ pool <literal>storage</literal>,
÷ñçóéìïðïéÞóôå ôçí ðáñáêÜôù åíôïëÞ:</para>
<screen>&prompt.root; <userinput>zpool scrub storage</userinput></screen>
<para>Ç äéáäéêáóßá áõôÞ ìðïñåß íá ðÜñåé áñêåôÞ þñá, áíÜëïãá ìå ôçí
ðïóüôçôá ôùí áðïèçêåõìÝíùí äåäïìÝíùí. Åðßóçò ÷ñçóéìïðïéåß ðÜñá
ðïëý ôï äßóêï (<acronym>I/O</acronym>), ôüóï þóôå óå êÜèå
äåäïìÝíç óôéãìÞ ìðïñåß íá åêôåëåßôáé ìüíï ìéá ôÝôïéá äéáäéêáóßá.
ÌåôÜ ôçí ïëïêëÞñùóç ôïõ scrub, èá áíáíåùèåß êáé ç áíáöïñÜ
êáôÜóôáóçò, ôçí ïðïßá ìðïñåßôå íá äåßôå æçôþíôáò ôçí ìå ôçí
ðáñáêÜôù åíôïëÞ:</para>
<screen>&prompt.root; <userinput>zpool status storage</userinput>
pool: storage
state: ONLINE
scrub: scrub completed with 0 errors on Sat Aug 30 19:57:37 2008
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz1 ONLINE 0 0 0
da0 ONLINE 0 0 0
da1 ONLINE 0 0 0
da2 ONLINE 0 0 0
errors: No known data errors</screen>
<para>Óôï ðáñÜäåéãìá ìáò åìöáíßæåôáé êáé ç ÷ñïíéêÞ óôéãìÞ ðïõ
ïëïêëçñþèçêå ç åíôïëÞ scrub. Ç äõíáôüôçôá áõôÞ ìáò åîáóöáëßæåé
áêåñáéüôçôá äåäïìÝíùí óå ìåãÜëï âÜèïò ÷ñüíïõ.</para>
<para>ÕðÜñ÷ïõí ðïëëÝò áêüìá åðéëïãÝò ãéá ôï óýóôçìá áñ÷åßùí Æ. Äåßôå
ôéò óåëßäåò manual &man.zfs.8; êáé &man.zpool.8;.</para>
</sect3>
</sect2>
</sect1>
<!--
XXXTR: stub sections (added later, as needed, as desire,
after I get opinions from -doc people):
Still need to discuss native and foreign file systems.
<sect1>
<title>Device File System</title>
</sect1>
<sect1>
<title>DOS and NTFS File Systems</title>
<para>This is a good section for those who transfer files, using
USB devices, from Windows to FreeBSD and vice-versa. My camera,
and many other cameras I have seen default to using FAT16. There
is (was?) a kde utility, I think called kamera, that could be used
to access camera devices. A section on this would be useful.</para>
<para>XXXTR: Though! The disks chapter, covers a bit of this and
devfs under it's USB devices. It leaves a lot to be desired though,
see:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/usb-disks.html
It may be better to flesh out that section a bit more. Add the
word "camera" to it so that others can easily notice.</para>
</sect1>
<sect1>
<title>Linux EXT File System</title>
<para>Probably NOT as useful as the other two, but it requires
knowledge of the existence of the tools. Which are hidden in
the ports collection. Most Linux guys would probably only use
Linux, BSD guys would be smarter and use NFS.</para>
</sect1>
<sect1>
<title>HFS</title>
<para>I think this is the file system used on Apple OSX. There are
tools in the ports collection, and with Apple being a big
FreeBSD supporter and user of our technologies, surely there
is enough cross over to cover this?</para>
</sect1>
-->
</chapter>
|