aboutsummaryrefslogtreecommitdiff
path: root/el_GR.ISO8859-7/books
diff options
context:
space:
mode:
authorManolis Kiagias <manolis@FreeBSD.org>2008-10-09 16:00:06 +0000
committerManolis Kiagias <manolis@FreeBSD.org>2008-10-09 16:00:06 +0000
commitbe00b9d3728ff759aa463292f5673e96fadbeb47 (patch)
tree2f7823cb5e53cec84b4d10cc319593f7e294a0c6 /el_GR.ISO8859-7/books
parent988789ddced9e694ae39cd7f4bb9c73124dedfc4 (diff)
downloaddoc-be00b9d3728ff759aa463292f5673e96fadbeb47.tar.gz
doc-be00b9d3728ff759aa463292f5673e96fadbeb47.zip
Integrate new chapters of the Handbook into the Greek build.
This is still work in progress (as not everything is translated yet) but it makes life easier for us if the 'official' and our test builds are in sync. New files: el_GR.ISO8859-7/books/handbook/dtrace Makefile & chapter.sgml (Synopsis translated) el_GR.ISO8859-7/books/handbook/updating Makefile & chapter.sgml (Completely translated) el_GR.ISO8859-7/books/handbook/filesystems Makefile & chapter.sgml (Synopsis translated) Modified files: MFen: 1.109 -> 1.110 en_US.ISO8859-1/books/handbook/Makefile MFen: 1.172 -> 1.173 en_US.ISO8859-1/books/handbook/book.sgml MFen: 1.37 -> 1.38 en_US.ISO8859-1/books/handbook/chapters.ent Obtained from: FreeBSD Greek Documentation Project
Notes
Notes: svn path=/head/; revision=33028
Diffstat (limited to 'el_GR.ISO8859-7/books')
-rw-r--r--el_GR.ISO8859-7/books/handbook/Makefile5
-rw-r--r--el_GR.ISO8859-7/books/handbook/book.sgml5
-rw-r--r--el_GR.ISO8859-7/books/handbook/chapters.ent5
-rw-r--r--el_GR.ISO8859-7/books/handbook/dtrace/Makefile18
-rw-r--r--el_GR.ISO8859-7/books/handbook/dtrace/chapter.sgml397
-rw-r--r--el_GR.ISO8859-7/books/handbook/filesystems/Makefile18
-rw-r--r--el_GR.ISO8859-7/books/handbook/filesystems/chapter.sgml630
-rw-r--r--el_GR.ISO8859-7/books/handbook/updating/Makefile18
-rw-r--r--el_GR.ISO8859-7/books/handbook/updating/chapter.sgml581
9 files changed, 1674 insertions, 3 deletions
diff --git a/el_GR.ISO8859-7/books/handbook/Makefile b/el_GR.ISO8859-7/books/handbook/Makefile
index ce6888706c..3a513ce89d 100644
--- a/el_GR.ISO8859-7/books/handbook/Makefile
+++ b/el_GR.ISO8859-7/books/handbook/Makefile
@@ -4,7 +4,7 @@
# Μορφοποίηση του Εγχειριδίου του FreeBSD
#
# %SOURCE% en_US.ISO8859-1/books/handbook/Makefile
-# %SRCID% 1.109
+# %SRCID% 1.110
#
# ------------------------------------------------------------------------
@@ -202,6 +202,7 @@ IMAGES_LIB+= callouts/15.png
SRCS+= audit/chapter.sgml
SRCS+= book.sgml
SRCS+= colophon.sgml
+SRCS+= dtrace/chapter.sgml
SRCS+= freebsd-glossary.sgml
SRCS+= advanced-networking/chapter.sgml
SRCS+= basics/chapter.sgml
@@ -213,6 +214,7 @@ SRCS+= desktop/chapter.sgml
SRCS+= disks/chapter.sgml
SRCS+= eresources/chapter.sgml
SRCS+= firewalls/chapter.sgml
+SRCS+= filesystems/chapter.sgml
SRCS+= geom/chapter.sgml
SRCS+= install/chapter.sgml
SRCS+= introduction/chapter.sgml
@@ -232,6 +234,7 @@ SRCS+= preface/preface.sgml
SRCS+= printing/chapter.sgml
SRCS+= security/chapter.sgml
SRCS+= serialcomms/chapter.sgml
+SRCS+= updating/chapter.sgml
SRCS+= users/chapter.sgml
SRCS+= vinum/chapter.sgml
SRCS+= virtualization/chapter.sgml
diff --git a/el_GR.ISO8859-7/books/handbook/book.sgml b/el_GR.ISO8859-7/books/handbook/book.sgml
index 3695800bf7..4b7a003e03 100644
--- a/el_GR.ISO8859-7/books/handbook/book.sgml
+++ b/el_GR.ISO8859-7/books/handbook/book.sgml
@@ -7,7 +7,7 @@
$FreeBSD$
%SOURCE% en_US.ISO8859-1/books/handbook/book.sgml
- %SRCID% 1.172
+ %SRCID% 1.173
-->
@@ -291,10 +291,12 @@
<![ %chap.audit; [ &chap.audit; ]]>
<![ %chap.disks; [ &chap.disks; ]]>
<![ %chap.geom; [ &chap.geom; ]]>
+ <![ %chap.filesystems; [ &chap.filesystems; ]]>
<![ %chap.vinum; [ &chap.vinum; ]]>
<![ %chap.virtualization; [ &chap.virtualization; ]]>
<![ %chap.l10n; [ &chap.l10n; ]]>
<![ %chap.cutting-edge; [ &chap.cutting-edge; ]]>
+ <![ %chap.dtrace; [ &chap.dtrace; ]]>
</part>
<part id="network-communication">
@@ -339,6 +341,7 @@
το &os;.</para>
</partintro>
+ <![ %chap.updating; [ &chap.updating; ]]>
<![ %chap.serialcomms; [ &chap.serialcomms; ]]>
<![ %chap.ppp-and-slip; [ &chap.ppp-and-slip; ]]>
<![ %chap.mail; [ &chap.mail; ]]>
diff --git a/el_GR.ISO8859-7/books/handbook/chapters.ent b/el_GR.ISO8859-7/books/handbook/chapters.ent
index b4f41edc99..2550145b4b 100644
--- a/el_GR.ISO8859-7/books/handbook/chapters.ent
+++ b/el_GR.ISO8859-7/books/handbook/chapters.ent
@@ -12,7 +12,7 @@
$FreeBSD$
%SOURCE% en_US.ISO8859-1/books/handbook/chapters.ent
- %SRCID% 1.37
+ %SRCID% 1.38
-->
@@ -42,12 +42,15 @@
<!ENTITY chap.audit SYSTEM "audit/chapter.sgml">
<!ENTITY chap.disks SYSTEM "disks/chapter.sgml">
<!ENTITY chap.geom SYSTEM "geom/chapter.sgml">
+<!ENTITY chap.filesystems SYSTEM "filesystems/chapter.sgml">
<!ENTITY chap.vinum SYSTEM "vinum/chapter.sgml">
<!ENTITY chap.virtualization SYSTEM "virtualization/chapter.sgml">
<!ENTITY chap.l10n SYSTEM "l10n/chapter.sgml">
<!ENTITY chap.cutting-edge SYSTEM "cutting-edge/chapter.sgml">
+<!ENTITY chap.dtrace SYSTEM "dtrace/chapter.sgml">
<!-- Part four -->
+<!ENTITY chap.updating SYSTEM "updating/chapter.sgml">
<!ENTITY chap.serialcomms SYSTEM "serialcomms/chapter.sgml">
<!ENTITY chap.ppp-and-slip SYSTEM "ppp-and-slip/chapter.sgml">
<!ENTITY chap.mail SYSTEM "mail/chapter.sgml">
diff --git a/el_GR.ISO8859-7/books/handbook/dtrace/Makefile b/el_GR.ISO8859-7/books/handbook/dtrace/Makefile
new file mode 100644
index 0000000000..be94ef2c90
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/dtrace/Makefile
@@ -0,0 +1,18 @@
+#
+# Build the Handbook with just the content from this chapter.
+#
+# $FreeBSD$
+#
+# %SOURCE% en_US.ISO8859-1/books/handbook/dtrace/Makefile
+# %SRCID% 1.1
+#
+
+CHAPTERS= dtrace/chapter.sgml
+
+VPATH= ..
+
+MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
+
+DOC_PREFIX?= ${.CURDIR}/../../../..
+
+.include "../Makefile"
diff --git a/el_GR.ISO8859-7/books/handbook/dtrace/chapter.sgml b/el_GR.ISO8859-7/books/handbook/dtrace/chapter.sgml
new file mode 100644
index 0000000000..a522c91010
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/dtrace/chapter.sgml
@@ -0,0 +1,397 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: DTrace
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/dtrace/chapter.sgml
+ %SRCID% 1.2
+
+-->
+
+<chapter id="dtrace">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Γράφηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>DTrace</title>
+
+ <sect1 id="dtrace-synopsis">
+ <title>Σύνοψη</title>
+
+ <indexterm><primary>DTrace</primary></indexterm>
+ <indexterm>
+ <primary>DTrace support</primary>
+ <see>DTrace</see>
+ </indexterm>
+
+ <para>Το DTrace, γνωστό επίσης ως Dynamic Tracing, είναι ένα εργαλείο το
+ οποίο αναπτύχθηκε από την &sun; για τον εντοπισμό προβλημάτων απόδοσης
+ σε συστήματα που πρόκειται να χρησιμοποιηθούν ή χρησιμοποιούνται ήδη
+ στην παραγωγή. Δεν πρόκειται για εργαλείο αποσφαλμάτωσης, αλλά για
+ εργαλείο ανάλυσης πραγματικού χρόνου, με το οποίο μπορούν να
+ εντοπιστούν προβλήματα απόδοσης και άλλες καταστάσεις.</para>
+
+ <para>Το DTrace είναι ένα θαυμάσιο εργαλείο profiling και διαθέτει
+ εντυπωσιακό πλήθος χαρακτηριστικών για την διάγνωση προβλημάτων του
+ συστήματος. Μπορεί επίσης να χρησιμοποιηθεί για να εκτελέσει από πριν
+ έτοιμα scripts, με τα οποία μπορείτε να εκμεταλλευθείτε καλύτερα τις
+ δυνατότητες του. Οι χρήστες μπορούν ακόμα να γράψουν και τα δικά τους
+ βοηθητικά προγράμματα, χρησιμοποιώντας την Γλώσσα D που παρέχει το
+ DTrace, και να προσαρμόσουν με αυτό τον τρόπο το profiling στις δικές
+ τους ανάγκες.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα γνωρίζετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Τι είναι το DTrace και τι δυνατότητες παρέχει.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τις διαφορές υλοποίησης μεταξύ του DTrace του &solaris; και
+ του &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ενεργοποιήσετε και να χρησιμοποιήσετε το DTrace
+ στο &os;.</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="security">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να κατανοείτε πως μπορείτε να ανακτήσετε τον πηγαίο κώδικα του
+ &os; και να τον χρησιμοποιήσετε ώστε να επαναμεταγλωττίσετε το
+ σύστημα σας (<xref linkend="cutting-edge">).</para>
+ </listitem>
+ </itemizedlist>
+
+ <!--
+ Temporary warning to avoid listing experimental versions
+ and production versions of FreeBSD with this technology.
+ -->
+ <warning>
+ <para>Τη δεδομένη στιγμή, το DTrace θεωρείται ότι είναι σε πειραματικό
+ στάδιο. Ορισμένες επιλογές μπορεί να υπολείπονται σε λειτουργικότητα,
+ και κάποια τμήματα ίσως να μη λειτουργούν καθόλου. Με την πάροδο του
+ χρόνου, οι παραπάνω δυνατότητες θα θεωρηθούν έτοιμες για χρήση σε
+ μηχανήματα παραγωγής, και η παρούσα τεκμηρίωση θα ανανεωθεί ώστε να
+ αντιπροσωπεύει αυτή την κατάσταση.</para>
+ </warning>
+ </sect1>
+
+ <sect1 id="dtrace-implementation">
+ <title>Implementation Differences</title>
+
+ <para>While the DTrace in &os; is very similar to that found
+ in &solaris;, differences exist that should be explained before
+ continuing. The primary difference users will notice is that
+ on &os;, DTrace needs to be specifically enabled. There are
+ kernel options and modules which must be enabled for DTrace to
+ work properly. These will be explained later.</para>
+
+ <para>There is a <literal>DDB_CTF</literal> kernel option which
+ is used to enable support for loading the <acronym>CTF</acronym>
+ data from kernel modules and the kernel itself.
+ <acronym>CTF</acronym> is the &solaris; Compressed C Type format
+ which encapsulates a reduced form of debugging information
+ similar to <acronym>DWARF</acronym> and the venerable stabs.
+ This <acronym>CTF</acronym> data is added to the binaries by the
+ <command>ctfconvert</command> and <command>ctfmerge</command>
+ build tools. The <command>ctfconvert</command> utility parses
+ <acronym>DWARF</acronym> debug <acronym>ELF</acronym> sections
+ created by the compiler and <command>ctfmerge</command> merges
+ <acronym>CTF</acronym> <acronym>ELF</acronym> sections from
+ objects into either executables or shared libraries. More on
+ how to enable this for the kernel and &os; build is
+ forthcoming.</para>
+
+ <para>Some different providers exist for &os; than for &solaris;.
+ Most notable is the <literal>dtmalloc</literal> provider, which
+ allows tracing <function>malloc()</function> by type in the
+ &os; kernel.</para>
+
+ <para>Only <username>root</username> may use DTrace on &os;.
+ This is related to security differences, &solaris; has a few
+ low level security checks which do not yet exist in &os;. As
+ such, the <devicename>/dev/dtrace/dtrace</devicename> is strictly
+ limited to <username>root</username> users only.</para>
+
+ <para>Finally, the DTrace software falls under &sun;'s
+ <acronym>CDDL</acronym> license. The <literal>Common Development
+ and Distribution License</literal> comes with &os;, see the
+ <filename>/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE</filename>
+ or view it online at
+ <ulink url="http://www.opensolaris.org/os/licensing">
+ http://www.opensolaris.org/os/licensing</ulink>.</para>
+
+ <para>This license means that a &os; kernel with the DTrace options
+ is still <acronym>BSD</acronym> licensed; however the
+ <acronym>CDDL</acronym> kicks in when the modules are distributed
+ in binary form, or the binaries are loaded.</para>
+ </sect1>
+
+ <sect1 id="dtrace-enable">
+ <title>Enabling DTrace Support</title>
+
+ <para>To enable support for DTrace, add the following lines to
+ the kernel configuration file:</para>
+
+ <programlisting>options KDTRACE_HOOKS
+options DDB_CTF</programlisting>
+
+ <note>
+ <para>Users of the AMD64 architecture will want to add the
+ following line to their kernel configuration file:</para>
+
+ <programlisting>options KDTRACE_FRAME</programlisting>
+
+ <para>This option provides support for the <acronym>FBT</acronym>
+ feature. DTrace will work without this option; however, there
+ will be limited support for function boundary tracing.</para>
+ </note>
+
+ <para>All sources must be rebuilt and installed with CTF options.
+ To accomplish this task, rebuild the &os; sources using:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src</userinput>
+ &prompt.root; <userinput>make WITH_CTF=1 buildworld</userinput>
+ &prompt.root; <userinput>make WITH_CFT=1 kernel</userinput>
+ &prompt.root; <userinput>make WITH_CFT=1 installworld</userinput>
+ &prompt.root; <userinput>mergemaster -Ui</userinput></screen>
+
+ <para>The system will need to be restarted.</para>
+
+ <para>After rebooting and allowing the new kernel to be loaded
+ into memory, support for the Korn shell should be added. This
+ is needed as the DTrace toolkit has several utilities written
+ in <command>ksh</command>. Install the
+ <filename role="package">shells/ksh93</filename>. It is also
+ possible to run these tools under
+ <filename role="package">shells/pdksh</filename> or
+ <filename role="package">shells/mksh</filename>.</para>
+
+ <para>Finally, obtain the current DTrace toolkit. The current
+ version is available at
+ <ulink url="http://www.opensolaris.org/os/community/dtrace/dtracetoolkit/">
+ http://www.opensolaris.org/os/community/dtrace/dtracetoolkit/</ulink>.
+ There is an install mechanism included; however, installation
+ is not required to make use of the bundled utilities.</para>
+ </sect1>
+
+ <sect1 id="dtrace-using">
+ <title>Using DTrace</title>
+
+ <para>Before making use of DTrace functionality, the DTrace device
+ must exist. To load the device, issue the following
+ command:</para>
+
+ <screen>&prompt.root; <userinput>kldload dtraceall</userinput></screen>
+
+ <para>DTrace support should now be available. To view all probes
+ the administrator may now execute the following command:</para>
+
+ <screen>&prompt.root; <userinput>dtrace -l | more</userinput></screen>
+
+ <para>All output is passed to the <command>more</command>
+ utility as it will quickly overflow the screen buffer. At
+ this point, DTrace should be considered working. It is now
+ time to review the toolkit.</para>
+
+ <para>The toolkit is a collection of ready-made scripts to run
+ with DTrace to collect system information. There are scripts
+ to check open files, memory, <acronym>CPU</acronym> usage and
+ a lot more. Extract the scripts with the following
+ command:</para>
+
+ <screen>&prompt.root; <userinput>gunzip -c DTraceToolkit* | tar xvf -</userinput></screen>
+
+ <para>Change into that directory with the <command>cd</command>
+ and change the execution permissions on all files, designated
+ as those files with lower case names, to
+ <literal>755</literal>.</para>
+
+ <para>All of these scripts will need modifications to their
+ contents. The ones which refer to
+ <filename>/usr/bin/ksh</filename> need that changed to
+ <filename>/usr/local/bin/ksh</filename>, the others which
+ use <filename>/usr/bin/sh</filename> need to be altered to use
+ <filename>/bin/sh</filename>, and finally the ones which
+ use <filename>/usr/bin/perl</filename> will need altered to
+ use <filename>/usr/local/bin/perl</filename>.</para>
+
+ <important>
+ <para>At this point it is prudent to remind the reader that
+ DTrace support in &os; is <emphasis>incomplete</emphasis>
+ and <emphasis>experimental</emphasis>. Many of these scripts
+ will not work as they are either too &solaris;-specific or
+ use probes which are unsupported at this time.</para>
+ </important>
+
+ <para>At the time of this writing only two of the scripts of the
+ DTrace Toolkit are fully supported in &os;:
+ the <filename>hotkernel</filename>
+ and <filename>procsystime</filename> scripts. These are the two
+ we will explore in the following parts of this section.</para>
+
+ <para>The <filename>hotkernel</filename> is designed to identify
+ which function is using the most kernel time. Run normally, it
+ will produce output similar to the following:</para>
+
+ <screen>&prompt.root; <userinput>./hotkernel</userinput>
+localhost# ./hotkernel
+Sampling... Hit Ctrl-C to end.</screen>
+
+ <para>The system administrator must use the
+ <keycombo action="simul"><keycap>Ctrl</keycap><keycap>C</keycap>
+ </keycombo> key combination to stop the process. Upon
+ termination, the script will display a list of kernel functions and
+ timing information, sorting the output in increasing order of
+ time:</para>
+
+ <screen>kernel`_thread_lock_flags 2 0.0%
+0xc1097063 2 0.0%
+kernel`sched_userret 2 0.0%
+kernel`kern_select 2 0.0%
+kernel`generic_copyin 3 0.0%
+kernel`_mtx_assert 3 0.0%
+kernel`vm_fault 3 0.0%
+kernel`sopoll_generic 3 0.0%
+kernel`fixup_filename 4 0.0%
+kernel`_isitmyx 4 0.0%
+kernel`find_instance 4 0.0%
+kernel`_mtx_unlock_flags 5 0.0%
+kernel`syscall 5 0.0%
+kernel`DELAY 5 0.0%
+0xc108a253 6 0.0%
+kernel`witness_lock 7 0.0%
+kernel`read_aux_data_no_wait 7 0.0%
+kernel`Xint0x80_syscall 7 0.0%
+kernel`witness_checkorder 7 0.0%
+kernel`sse2_pagezero 8 0.0%
+kernel`strncmp 9 0.0%
+kernel`spinlock_exit 10 0.0%
+kernel`_mtx_lock_flags 11 0.0%
+kernel`witness_unlock 15 0.0%
+kernel`sched_idletd 137 0.3%
+0xc10981a5 42139 99.3%</screen>
+
+ <!-- XXXTR: I attempted to use objdump and nm on /boot/kernel/kernel
+ to find 0xc10981a5, but to no avail. It would be nice to know
+ how we should look that up. -->
+
+ <para>This script will also work with kernel modules. To use this
+ feature, run the script with the <option>-m</option> flag:</para>
+
+ <screen>&prompt.root; <userinput>./hotkernel -m</userinput></screen>
+
+ <screen>localhost# <userinput>./hotkernel -m</userinput>
+Sampling... Hit Ctrl-C to end.
+^C
+MODULE COUNT PCNT
+0xc107882e 1 0.0%
+0xc10e6aa4 1 0.0%
+0xc1076983 1 0.0%
+0xc109708a 1 0.0%
+0xc1075a5d 1 0.0%
+0xc1077325 1 0.0%
+0xc108a245 1 0.0%
+0xc107730d 1 0.0%
+0xc1097063 2 0.0%
+0xc108a253 73 0.0%
+kernel 874 0.4%
+0xc10981a5 213781 99.6%</screen>
+
+ <!-- XXXTR: I was unable to match these up with output from
+ kldstat and kldstat -v and grep. Maybe I'm missing something
+ seriously obvious. It is 5AM btw. -->
+
+ <para>The <filename>procsystime</filename> script captures and
+ prints the system call time usage for a given
+ <acronym>PID</acronym> or process name. In the following
+ example, a new instance of <filename>/bin/csh</filename>
+ was spawned. The <filename>procsystime</filename> was executed
+ and remained waiting while a few commands were typed on the
+ other incarnation of <command>csh</command>. These are the
+ results of this test:</para>
+
+ <screen>&prompt.root; <userinput>./procsystime -n csh</userinput>
+Tracing... Hit Ctrl-C to end...
+^C
+
+Elapsed Times for processes csh,
+
+ SYSCALL TIME (ns)
+ getpid 6131
+ sigreturn 8121
+ close 19127
+ fcntl 19959
+ dup 26955
+ setpgid 28070
+ stat 31899
+ setitimer 40938
+ wait4 62717
+ sigaction 67372
+ sigprocmask 119091
+ gettimeofday 183710
+ write 263242
+ execve 492547
+ ioctl 770073
+ vfork 3258923
+ sigsuspend 6985124
+ read 3988049784</screen>
+
+ <para>As shown, the read system call seems to use the
+ most time in nanoseconds with the <function>getpid()</function>
+ system call used the least amount of time.</para>
+ </sect1>
+
+ <sect1 id="dtrace-language">
+ <title>The D Language</title>
+
+ <para>The DTrace Toolkit includes many scripts in the special language of
+ DTrace. This language is called <quote>the D language</quote> by &sun;
+ documentation, and it is very similar to C++. An in depth
+ discussion of the language is beyond the scope of this document. It is
+ extensively discussed
+ at <ulink url="http://wikis.sun.com/display/DTrace/Documentation"></ulink>.</para>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/filesystems/Makefile b/el_GR.ISO8859-7/books/handbook/filesystems/Makefile
new file mode 100644
index 0000000000..cb61bfe236
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/filesystems/Makefile
@@ -0,0 +1,18 @@
+#
+# Build the Handbook with just the content from this chapter.
+#
+# $FreeBSD$
+#
+# %SOURCE% en_US.ISO8859-1/books/handbook/filesystems/Makefile
+# %SRCID% 1.1
+#
+
+CHAPTERS= filesystems/chapter.sgml
+
+VPATH= ..
+
+MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
+
+DOC_PREFIX?= ${.CURDIR}/../../../..
+
+.include "../Makefile"
diff --git a/el_GR.ISO8859-7/books/handbook/filesystems/chapter.sgml b/el_GR.ISO8859-7/books/handbook/filesystems/chapter.sgml
new file mode 100644
index 0000000000..18d6e92a6d
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/filesystems/chapter.sgml
@@ -0,0 +1,630 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Συστήματα Αρχείων
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/filesystems/chapter.sgml
+ %SRCID% 1.3
+
+-->
+
+<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&trade;, γνωστό
+ επίσης και ως <acronym>UFS</acronym>. Αυτό είναι και το εγγενές
+ σύστημα αρχείων του &os;, το οποίο χρησιμοποιείται στους σκληρούς
+ δίσκους και προσφέρει πρόσβαση στα δεδομένα.</para>
+
+ <para>Το &os; προσφέρει επίσης πληθώρα διαφορετικών συστημάτων αρχείων,
+ ώστε να παρέχει τοπική πρόσβαση σε δεδομένα που έχουν δημιουργηθεί από
+ άλλα λειτουργικά συστήματα, π.χ.&nbsp;δεδομένα που βρίσκονται σε τοπικά
+ <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>
+
+ <!--
+ Temporary warning to avoid listing experimental versions
+ and production versions of FreeBSD with this technology.
+ -->
+ <warning>
+ <para>Τη δεδομένη στιγμή, το <acronym>ZFS</acronym> θεωρείται
+ δοκιμαστική δυνατότητα. Μερικές επιλογές μπορεί να υπολείπονται
+ λειτουργικότητας, και άλλες μπορεί να μη λειτουργούν καθόλου. Με
+ την πάροδο του χρόνου, η δυνατότητα αυτή θα θεωρηθεί έτοιμη για χρήση
+ σε περιβάλλοντα παραγωγής, και η παρούσα τεκμηρίωση θα ανανεωθεί ώστε
+ να αντιπροσωπεύει αυτή την κατάσταση.</para>
+ </warning>
+ </sect1>
+
+ <sect1 id="filesystems-zfs">
+ <title>The Z File System</title>
+
+ <para>The Z&nbsp;file system, developed by &sun;, is a new
+ technology designed to use a pooled storage method. This means
+ that space is only used as it is needed for data storage. It
+ has also been designed for maximum data integrity, supporting
+ data snapshots, multiple copies, and data checksums. A new
+ data replication model, known as <acronym>RAID</acronym>-Z has
+ been added. The <acronym>RAID</acronym>-Z model is similar
+ to <acronym>RAID</acronym>5 but is designed to prevent data
+ write corruption.</para>
+
+ <sect2>
+ <title>ZFS Tuning</title>
+
+ <para>The <acronym>ZFS</acronym> subsystem utilizes much of
+ the system resources, so some tuning may be required to provide
+ maximum efficiency during every-day use. As an experimental
+ feature in &os; this may change in the near future; however,
+ at this time, the following steps are recommended.</para>
+
+ <sect3>
+ <title>Memory</title>
+
+ <para>The total system memory should be at least one gigabyte,
+ with two gigabytes or more recommended. In all of the
+ examples here, the system has one gigabyte of memory with
+ several other tuning mechanisms in place.</para>
+
+ <para>Some people have had luck using fewer than one gigabyte
+ of memory, but with such a limited amount of physical memory,
+ when the system is under heavy load, it is very plausible
+ that &os; will panic due to memory exhaustion.</para>
+ </sect3>
+
+ <sect3>
+ <title>Kernel Configuration</title>
+
+ <para>It is recommended that unused drivers and options
+ be removed from the kernel configuration file. Since most
+ devices are available as modules, they may simply be loaded
+ using the <filename>/boot/loader.conf</filename> file.</para>
+
+ <para>Users of the i386 architecture should add the following
+ option to their kernel configuration file, rebuild their
+ kernel, and reboot:</para>
+
+ <programlisting>options KVA_PAGES=512</programlisting>
+
+ <para>This option will expand the kernel address space, thus
+ allowing the <varname>vm.kvm_size</varname> tunable to be
+ pushed beyond the currently imposed limit of 1&nbsp;GB
+ (2&nbsp;GB for <acronym>PAE</acronym>). To find the most
+ suitable value for this option, divide the desired address
+ space in megabytes by four (4). In this case, it is
+ <literal>512</literal> for 2&nbsp;GB.</para>
+ </sect3>
+
+ <sect3>
+ <title>Loader Tunables</title>
+
+ <para>The <devicename>kmem</devicename> address space should be
+ increased on all &os; architectures. On the test system with
+ one gigabyte of physical memory, success was achieved with the
+ following options which should be placed in
+ the <filename>/boot/loader.conf</filename> file and the system
+ restarted:</para>
+
+ <programlisting>vm.kmem_slze="330M"
+vm.kmem_size_max="330M"
+vfs.zfs.arc_max="40M"
+vfs.zfs.vdev.cache.size="5M"</programlisting>
+
+ <para>For a more detailed list of recommendations for ZFS-related
+ tuning, see
+ <ulink url="http://wiki.freebsd.org/ZFSTuningGuide"></ulink>.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Using <acronym>ZFS</acronym></title>
+
+ <para>There is a start up mechanism that allows &os; to
+ mount <acronym>ZFS</acronym> pools during system
+ initialization. To set it, issue the following
+ commands:</para>
+
+ <screen>&prompt.root; <userinput>echo 'zfs_enable="YES"' &gt;&gt; /etc/rc.conf</userinput>
+&prompt.root; <userinput>/etc/rc.d/zfs start</userinput></screen>
+
+ <para>The remainder of this document assumes two
+ <acronym>SCSI</acronym> disks are available, and their device names
+ are <devicename><replaceable>da0</replaceable></devicename>
+ and <devicename><replaceable>da1</replaceable></devicename>
+ respectively. Users of <acronym>IDE</acronym> hardware may
+ use the <devicename><replaceable>ad</replaceable></devicename>
+ devices in place of <acronym>SCSI</acronym> hardware.</para>
+
+ <sect3>
+ <title>Single Disk Pool</title>
+
+ <para>To create a <acronym>ZFS</acronym> over a single disk
+ device, use the <command>zpool</command> command:</para>
+
+ <screen>&prompt.root; <userinput>zpool create example /dev/da0</userinput></screen>
+
+ <para>To view the new pool, review the output of the
+ <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>This output clearly shows the <literal>example</literal>
+ pool has not only been created but
+ <emphasis>mounted</emphasis> as well. It is also accessible
+ just like a normal file system, files may be created on it
+ and users are able to browse it as in the
+ following example:</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>Unfortunately this pool is not taking advantage of
+ any <acronym>ZFS</acronym> features. Create a file system
+ on this pool, and enable compression on it:</para>
+
+ <screen>&prompt.root; <userinput>zfs create example/compressed</userinput>
+&prompt.root; <userinput>zfs set compression=gzip example/compressed</userinput></screen>
+
+ <para>The <literal>example/compressed</literal> is now a
+ <acronym>ZFS</acronym> compressed file system. Try copying
+ some large files to it by copying them to
+ <filename class="directory">/example/compressed</filename>.</para>
+
+ <para>The compression may now be disabled with:</para>
+
+ <screen>&prompt.root; <userinput>zfs set compression=off example/compressed</userinput></screen>
+
+ <para>To unmount the file system, issue the following command
+ and then verify by using the <command>df</command>
+ utility:</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>Re-mount the file system to make it accessible
+ again, and verify with <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>The pool and file system may also be observed by viewing
+ the output from <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>As observed, <acronym>ZFS</acronym> file systems, after
+ creation, may be used like ordinary file systems; however,
+ many other features are also available. In the following
+ example, a new file system, <literal>data</literal> is
+ created. Important files will be stored here, so the file
+ system is set to keep two copies of each data block:</para>
+
+ <screen>&prompt.root; <userinput>zfs create example/data</userinput>
+&prompt.root; <userinput>zfs set copies=2 example/data</userinput></screen>
+
+ <para>It is now possible to see the data and space utilization
+ by issuing the <command>df</command> again:</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>Notice that each file system on the pool has the same
+ amount of available space. This is the reason for using
+ the <command>df</command> through these examples, to show
+ that the file systems are using only the amount of space
+ they need and will all draw from the same pool.
+ The <acronym>ZFS</acronym> file system does away with concepts
+ such as volumes and partitions, and allows for several file
+ systems to occupy the same pool. Destroy the file systems,
+ and then destroy the pool as they are no longer
+ needed:</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>Disks go bad and fail, an unavoidable trait. When
+ this disk goes bad, the data will be lost. One method of
+ avoiding data loss due to a failed hard disk is to implement
+ a <acronym>RAID</acronym>. <acronym>ZFS</acronym> supports
+ this feature in its pool design which is covered in
+ the next section.</para>
+ </sect3>
+
+ <sect3>
+ <title><acronym>ZFS</acronym> RAID-Z</title>
+
+ <para>As previously noted, this section will assume that
+ two <acronym>SCSI</acronym> exists as devices
+ <devicename>da0</devicename> and
+ <devicename>da1</devicename>. To create a
+ <acronym>RAID</acronym>-Z pool, issue the following
+ command:</para>
+
+ <screen>&prompt.root; <userinput>zpool create storage raidz da0 da1</userinput></screen>
+
+ <para>The <literal>storage</literal> zpool should have been
+ created. This may be verified by using the &man.mount.8; and
+ &man.df.1; commands as before. More disk devices may have
+ been allocated by adding them to the end of the list above.
+ Make a new file system in the pool, called
+ <literal>home</literal> where user files will eventually be
+ placed:</para>
+
+ <screen>&prompt.root; <userinput>zfs create storage/home</userinput></screen>
+
+ <para>It is now possible to enable compression and keep extra
+ copies of the user's home directories and files. This may
+ be accomplished just as before using the following
+ commands:</para>
+
+ <screen>&prompt.root; <userinput>zfs set copies=2 storage/home</userinput>
+&prompt.root; <userinput>zfs set compression=gzip storage/home</userinput></screen>
+
+ <para>To make this the new home directory for users, copy the
+ user data to this directory, and create the appropriate
+ symbolic links:</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>Users should now have their data stored on the freshly
+ created <filename class="directory">/storage/home</filename>
+ file system. Test by adding a new user and logging in as
+ that user.</para>
+
+ <para>Try creating a snapshot which may be rolled back
+ later:</para>
+
+ <screen>&prompt.root; <userinput>zfs snapshot storage/home@08-30-08</userinput></screen>
+
+ <para>Note that the snapshot option will only capture a real
+ file system, not a home directory or a file. The
+ <literal>@</literal> character is a delimiter used between
+ the file system name or the volume name. When a user's
+ home directory gets trashed, restore it with:</para>
+
+ <screen>&prompt.root; <userinput>zfs rollback storage/home@08-30-08</userinput></screen>
+
+ <para>To get a list of all available snapshots, run the
+ <command>ls</command> in the file system's
+ <filename class="directory">.zfs/snapshot</filename>
+ directory. For example, to see the previously taken
+ snapshot, perform the following command:</para>
+
+ <screen>&prompt.root; <userinput>ls /storage/home/.zfs/snapshot</userinput></screen>
+
+ <para>It is possible to write a script to perform monthly
+ snapshots on user data; however, over time, snapshots
+ may consume a great deal of disk space. The previous
+ snapshot may be removed using the following command:</para>
+
+ <screen>&prompt.root; <userinput>zfs destroy storage/home@08-30-08</userinput></screen>
+
+ <para>There is no reason, after all of this testing, we should
+ keep <filename class="directory">/storage/home</filename>
+ around in its present state. Make it the real
+ <filename class="directory">/home</filename> file
+ system:</para>
+
+ <screen>&prompt.root; <userinput>zfs set mountpoint=/home storage/home</userinput></screen>
+
+ <para>Issuing the <command>df</command> and
+ <command>mount</command> commands will show that the system
+ now treats our file system as the real
+ <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 17547008 0 17547008 0% /storage
+storage/home 17547008 0 17547008 0% /home</screen>
+
+ <para>This completes the <acronym>RAID</acronym>-Z
+ configuration. To get status updates about the file systems
+ created during the nightly &man.periodic.8; runs, issue the
+ following command:</para>
+
+ <screen>&prompt.root; <userinput>echo 'daily_status_zfs_enable="YES"' &gt;&gt; /etc/periodic.conf</userinput></screen>
+ </sect3>
+
+ <sect3>
+ <title>Recovering <acronym>RAID</acronym>-Z</title>
+
+ <para>Every software <acronym>RAID</acronym> has a method of
+ monitoring their <literal>state</literal>.
+ <acronym>ZFS</acronym> is no exception. The status of
+ <acronym>RAID</acronym>-Z devices may be viewed with the
+ following command:</para>
+
+ <screen>&prompt.root; <userinput>zpool status -x</userinput></screen>
+
+ <para>If all pools are healthy and everything is normal, the
+ following message will be returned:</para>
+
+ <screen>all pools are healthy</screen>
+
+ <para>If there is an issue, perhaps a disk has gone offline,
+ the pool state will be returned and look similar to:</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
+
+errors: No known data errors</screen>
+
+ <para>This states that the device was taken offline by the
+ administrator. This is true for this particular example.
+ To take the disk offline, the following command was
+ used:</para>
+
+ <screen>&prompt.root; <userinput>zpool offline storage da1</userinput></screen>
+
+ <para>It is now possible to replace the
+ <devicename>da1</devicename> after the system has been
+ powered down. When the system is back online, the following
+ command may issued to replace the disk:</para>
+
+ <screen>&prompt.root; <userinput>zpool replace storage da1</userinput></screen>
+
+ <para>From here, the status may be checked again, this time
+ without the <option>-x</option> flag to get state
+ information:</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
+
+errors: No known data errors</screen>
+
+ <para>As shown from this example, everything appears to be
+ normal.</para>
+ </sect3>
+
+ <sect3>
+ <title>Data Verification</title>
+
+ <para>As previously mentioned, <acronym>ZFS</acronym> uses
+ <literal>checksums</literal> to verify the integrity of
+ stored data. They are enabled automatically upon creation
+ of file systems and may be disabled using the following
+ command:</para>
+
+ <screen>&prompt.root; <userinput>zfs set checksum=off storage/home</userinput></screen>
+
+ <para>This is not a wise idea; however, as checksums take
+ very little storage space and are more useful enabled. There
+ also appear to be no noticeable costs having them enabled.
+ While enabled, it is possible to have <acronym>ZFS</acronym>
+ check data integrity using checksum verification. This
+ process is known as <quote>scrubing.</quote> To verify the
+ data integrity of the <literal>storage</literal> pool, issue
+ the following command:</para>
+
+ <screen>&prompt.root; <userinput>zpool scrub storage</userinput></screen>
+
+ <para>This process may take considerable time depending on
+ the amount of data stored. It is also very
+ <acronym>I/O</acronym> intensive, so much that only one
+ of these operations may be run at any given time. After
+ the scrub has completed, the status is updated and may be
+ viewed by issuing a status request:</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
+
+errors: No known data errors</screen>
+
+ <para>The completion time is in plain view in this example.
+ This feature helps to ensure data integrity over a long
+ period of time.</para>
+
+ <para>There are many more options for the Z&nbsp;file system,
+ see the &man.zfs.8; and &man.zpool.8; manual
+ pages.</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>
diff --git a/el_GR.ISO8859-7/books/handbook/updating/Makefile b/el_GR.ISO8859-7/books/handbook/updating/Makefile
new file mode 100644
index 0000000000..fd42d72743
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/updating/Makefile
@@ -0,0 +1,18 @@
+#
+# Build the Handbook with just the content from this chapter.
+#
+# $FreeBSD$
+#
+# %SOURCE% en_US.ISO8859-1/books/handbook/updating/Makefile
+# %SRCID% 1.1
+#
+
+CHAPTERS= updating/chapter.sgml
+
+VPATH= ..
+
+MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
+
+DOC_PREFIX?= ${.CURDIR}/../../../..
+
+.include "../Makefile"
diff --git a/el_GR.ISO8859-7/books/handbook/updating/chapter.sgml b/el_GR.ISO8859-7/books/handbook/updating/chapter.sgml
new file mode 100644
index 0000000000..b27a71c607
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/updating/chapter.sgml
@@ -0,0 +1,581 @@
+<!--
+
+ The FreeBSD Greek Documentation Project
+
+ Το Εγχειρίδιο του FreeBSD: Ενημερώνοντας το FreeBSD
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/updating/chapter.sgml
+ %SRCID% 1.1
+
+-->
+
+<chapter id="updating">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Γράφηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Colin</firstname>
+ <surname>Percival</surname>
+ <contrib>Βασίστηκε σε σημειώσεις που παρείχε ο </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Ενημερώνοντας το &os;</title>
+
+ <sect1 id="updating-synopsis">
+ <title>Σύνοψη</title>
+
+ <indexterm><primary>Updating FreeBSD</primary></indexterm>
+ <indexterm>
+ <primary>freebsd-update</primary>
+ <see>Updating</see>
+ </indexterm>
+
+ <para>Ένα κύριο χαρακτηριστικό του &os; έχει παραμείνει αναλλοίωτο με την
+ πάροδο του χρόνου: Η απαίτηση για την χρήση εφαρμογών και βοηθητικών
+ προγραμμάτων για την ανάκτηση μικρών και μεγάλων ενημερώσεων του
+ συστήματος.</para>
+
+ <para>Για πολλά χρόνια, οι χρήστες που επιθυμούσαν να αναβαθμίσουν το
+ σύστημα τους, να ανακτήσουν τις ενημερώσεις ασφαλείας, και να λάβουν
+ ενημερωμένες εκδόσεις των πακέτων και των ports, χωρίς να χαλάσουν τη
+ λειτουργία της Συλλογής των Ports, ήταν αναγκασμένοι να χρησιμοποιούν
+ το εργαλείο <application>CVSup</application>.</para>
+
+ <para>Αν και το <application>CVSup</application> υποστηρίζεται ακόμα (και
+ έχει επίσης προστεθεί και μια έκδοση του σε γλώσσα C στο βασικό σύστημα
+ του &os;), υπάρχουν και νέες μέθοδοι για την ανάκτηση ενημερώσεων του
+ συστήματος.</para>
+
+ <para>Εργαλεία όπως το &man.portsnap.8; και το &man.freebsd-update.8;
+ έχουν εκσυγχρονίσει την διαδικασία αναβάθμισης. Αυτές οι νέες μέθοδοι
+ αυξάνουν την παραγωγικότητα ενώ ταυτόχρονα παρέχουν και μια απλούστερη
+ διεπαφή προς τους χρήστες. Ορισμένα από αυτά τα εργαλεία μπορούν να
+ εκτελεστούν από το &man.cron.8;, ελαχιστοποιώντας την ανάγκη
+ αλληλεπίδρασης με το διαχειριστή του συστήματος. Αυτό είναι πραγματικό
+ όφελος για όσους διαχειρίζονται και παρακολουθούν εκατοντάδες συστήματα
+ &os;.</para>
+
+ <para>Στο κεφάλαιο αυτό θα εξηγήσουμε τις νέες μεθόδους, καθώς και
+ τους τρόπους με τους οποίους μπορούν να ωφεληθούν τόσο οι χρήστες όσο
+ και οι διαχειριστές συστημάτων, από την πρακτική και εύκολη εφαρμογή
+ τους.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα γνωρίζετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ποια βοηθητικά προγράμματα μπορείτε να χρησιμοποιήσετε για να
+ ενημερώσετε το σύστημα και την Συλλογή των Ports.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να χρησιμοποιήσετε το <command>freebsd-update</command>
+ για να εφαρμόσετε ενημερώσεις ασφαλείας και άλλες μικρές και
+ μεγαλύτερες αναβαθμίσεις στο &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>Να είστε εξοικειωμένος με την Συλλογή των Ports και την
+ εγκατάσταση εφαρμογών τρίτου κατασκευαστή στο &os;
+ (<xref linkend="ports">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να είστε εξοικειωμένος με τα διάφορα τμήματα πηγαίου κώδικα
+ από τα οποία αποτελείται το &os;, καθώς και με τη χρήση του
+ εργαλείου &man.mergemaster.8;
+ (<xref linkend="cutting-edge">).</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="updating-freebsdupdate">
+ <title>Ενημέρωση του &os;</title>
+
+ <para>Η εφαρμογή ενημερώσεων ασφαλείας αποτελεί ένα σημαντικό τμήμα της
+ συντήρησης λογισμικού, ειδικά όταν πρόκειται για το λειτουργικό σύστημα.
+ Για μεγάλο διάστημα, η διαδικασία αυτή δεν ήταν εύκολη στο &os;.
+ Έπρεπε να εφαρμοστούν patches στον πηγαίο κώδικα, να γίνει μεταγλώττιση
+ του από την αρχή, και να εγκατασταθούν ξανά τα νέα εκτελέσιμα.</para>
+
+ <para>Αυτό δεν είναι πλέον αναγκαίο, καθώς το &os; διαθέτει τώρα ένα
+ βοηθητικό πρόγραμμα, το <command>freebsd-update</command>. Το πρόγραμμα
+ παρέχει δύο διαφορετικές λειτουργίες. Η πρώτη είναι η δυνατότητα
+ δυαδικής (binary) ενημέρωσης του βασικού συστήματος με τις τελευταίες
+ διορθώσεις ασφάλειας και λαθών, χωρίς να χρειάζεται ξανά μεταγλώττιση
+ και εγκατάσταση. Η δεύτερη είναι η δυνατότητα αναβάθμισης του
+ συστήματος σε μια νέα μικρή ή μεγάλη επίσημη έκδοση (release).</para>
+
+ <note>
+ <para>Δυαδικές διορθώσεις λαθών και ασφάλειας, διατίθενται για όλες
+ τις αρχιτεκτονικές και εκδόσεις που υποστηρίζονται από την ομάδα
+ ασφάλειας. Ωστόσο, ορισμένα χαρακτηριστικά όπως η δυνατότητα
+ αναβάθμισης του λειτουργικού σε μια νέα έκδοση, απαιτούν την
+ τελευταία έκδοση του &man.freebsd-update.8; και του &os;&nbsp;6.3.
+ Πριν προχωρήσετε στην αναβάθμιση σε μια νέα έκδοση, θα πρέπει να
+ διαβάσετε τις σχετικές με αυτήν ανακοινώσεις, καθώς μπορεί να
+ περιέχουν σημαντικές πληροφορίες. Μπορείτε να δείτε τις
+ ανακοινώσεις εκδόσεων στην παρακάτω τοποθεσία:
+ <ulink url="http://www.FreeBSD.org/releases/"></ulink>.</para>
+ </note>
+
+ <para>Αν υπάρχει κάποιο <command>crontab</command> που χρησιμοποιεί τις
+ δυνατότητες του <command>freebsd-update</command>, θα πρέπει να
+ απενεργοποιηθεί πριν ξεκινήσει η παρακάτω διαδικασία. Μπορείτε να
+ εγκαταστήσετε την τελευταία έκδοση του
+ <command>freebsd-update</command> κατεβάζοντας το συμπιεσμένο πακέτο
+ από το παραπάνω <acronym>URL</acronym> και εκτελώντας τις παρακάτω
+ εντολές:</para>
+
+ <screen>&prompt.root; <userinput>gunzip -c freebsd-update-upgrade.tgz | tar xvf -</userinput>
+&prompt.root; <userinput>mv freebsd-update.sh /usr/sbin/freebsd-update</userinput>
+&prompt.root; <userinput>mv freebsd-update.conf /etc</userinput></screen>
+
+ <para>Δεν απαιτείται να κατεβάσετε την τελευταία έκδοση, αν χρησιμοποιείτε
+ κάποια από τις τρέχουσες εκδόσεις του &os;.</para>
+
+ <sect2>
+ <title>Το Αρχείο Ρυθμίσεων</title>
+
+ <para>Κάποιοι χρήστες ίσως θέλουν να αλλάξουν το αρχείο ρυθμίσεων, ώστε
+ να έχουν καλύτερο έλεγχο της διαδικασίας. Οι επιλογές είναι γενικά
+ αρκετά καλά τεκμηριωμένες, αλλά οι παρακάτω ίσως να χρειάζονται
+ κάποιες επιπλέον επεξηγήσεις:</para>
+
+ <programlisting># Components of the base system which should be kept updated.
+Components src world kernel</programlisting>
+
+ <para>Αυτή η παράμετρος ελέγχει ποια τμήματα του &os; θα διατηρούνται
+ ενημερωμένα. Η προεπιλογή είναι να ενημερώνεται ο πηγαίος κώδικας,
+ όλο το βασικό σύστημα, και ο πυρήνας. Τα τμήματα είναι τα ίδια
+ που διατίθενται και κατά την εγκατάσταση, για παράδειγμα αν βάλετε
+ την επιλογή <quote>world/games</quote> θα εγκαθίστανται ενημερώσεις
+ για τα παιχνίδια. Αν βάλετε <quote>src/bin</quote> θα επιτρέψετε
+ την ενημέρωση του πηγαίου κώδικα του καταλόγου
+ <filename class="directory">src/bin</filename>.</para>
+
+ <para>Η καλύτερη επιλογή είναι να αφήσετε εδώ την προεπιλεγμένη τιμή,
+ καθώς αν την αλλάξετε ώστε να περιέχει συγκεκριμένα μόνο τμήματα,
+ θα αναγκαστείτε να αναφέρετε χωριστά μέσα στο αρχείο ρυθμίσεων κάθε
+ τμήμα που θέλετε να ενημερώνεται. Αυτό ίσως έχει καταστροφικά
+ αποτελέσματα, καθώς είναι πιθανό ο πηγαίος κώδικας και τα εκτελέσιμα
+ προγράμματα να μην είναι πλέον σε συγχρονισμό μεταξύ τους.</para>
+
+ <programlisting># Paths which start with anything matching an entry in an IgnorePaths
+# statement will be ignored.
+IgnorePaths</programlisting>
+
+ <para>Προσθέστε διαδρομές σε καταλόγους, όπως
+ <filename class="directory">/bin</filename> ή
+ <filename class="directory">/sbin</filename> για να αφήσετε
+ απείραχτους τους συγκεκριμένους καταλόγους κατά την διαδικασία
+ ενημέρωσης. Η επιλογή αυτή μπορεί να χρησιμοποιηθεί για να αποτρέψει
+ το <command>freebsd-update</command> να γράψει πάνω σε πιθανόν
+ δικές σας τοπικές αλλαγές.</para>
+
+ <programlisting># Paths which start with anything matching an entry in an UpdateIfUnmodified
+# statement will only be updated if the contents of the file have not been
+# modified by the user (unless changes are merged; see below).
+UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile</programlisting>
+
+ <para>Η επιλογή αυτή θα ενημερώσει τα αρχεία ρυθμίσεων στους καταλόγους
+ που καθορίζονται, μόνο αν αυτά δεν έχουν μεταβληθεί από το χρήστη.
+ Αν υπάρχουν τοπικές αλλαγές, δεν θα γίνει ενημέρωση. Υπάρχει μια
+ ακόμα επιλογή, η <literal>KeepModifiedMetadata</literal>, η οποία
+ οδηγεί το <command>freebsd-update</command> να αποθηκεύσει τις αλλαγές
+ μεταξύ των δύο εκδόσεων κατά τη διάρκεια της συγχώνευσης
+ (merge).</para>
+
+ <programlisting># When upgrading to a new &os; release, files which match MergeChanges
+# will have any local changes merged into the version from the new release.
+MergeChanges /etc/ /var/named/etc/</programlisting>
+
+ <para>Πρόκειται για τη λίστα των καταλόγων που περιέχουν αρχεία
+ ρυθμίσεων, και στα οποία το <command>freebsd-update</command> θα
+ επιχειρεί την διαδικασία συγχώνευσης αλλαγών. Η διαδικασία
+ συγχώνευσης γίνεται με μια σειρά από patches τύπου &man.diff.1;
+ παρόμοια με το &man.mergemaster.8; αλλά με λιγότερες επιλογές. Οι
+ συγχωνεύσεις είτε γίνονται δεκτές, είτε προκαλούν το άνοιγμα κάποιου
+ συντάκτη κειμένου, διαφορετικά η εκτέλεση του
+ <command>freebsd-update</command> ακυρώνεται. Αν δεν είστε
+ σίγουρος, κρατήστε αντίγραφο ασφαλείας του καταλόγου
+ <filename class="directory">/etc</filename> και απλώς δεχθείτε τις
+ αλλαγές. Δείτε το <xref linkend="cutting-edge"> για περισσότερες
+ πληροφορίες σχετικά με την εντολή
+ <command>mergemaster</command>.</para>
+
+ <programlisting># Directory in which to store downloaded updates and temporary
+# files used by &os; Update.
+# WorkDir /var/db/freebsd-update</programlisting>
+
+ <para>Στον κατάλογο αυτό φυλάσσονται όλα τα patches και τα προσωρινά
+ αρχεία. Σε περιπτώσεις όπου ο χρήστης εκτελεί αναβάθμιση σε μια
+ νεότερη έκδοση του &os;, θα πρέπει να διαθέτει τουλάχιστον ένα
+ gigabyte ελεύθερου χώρου.</para>
+
+ <programlisting># When upgrading between releases, should the list of Components be
+# read strictly (StrictComponents yes) or merely as a list of components
+# which *might* be installed of which &os; Update should figure out
+# which actually are installed and upgrade those (StrictComponents no)?
+# StrictComponents no</programlisting>
+
+ <para>Αν θέσετε την παραπάνω επιλογή στο <literal>yes</literal>,
+ το <command>freebsd-update</command> θα υποθέσει ότι η λίστα
+ <literal>Components</literal> είναι πλήρης και δεν θα επιχειρήσει
+ να προχωρήσει σε αλλαγές εκτός λίστας. Ουσιαστικά, το
+ <command>freebsd-update</command> θα προσπαθήσει να ενημερώσει κάθε
+ αρχείο που ανήκει στη λίστα <literal>Components</literal>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Patches Σχετικά με την Ασφάλεια</title>
+
+ <para>Τα patches που σχετίζονται με την ασφάλεια, αποθηκεύονται σε
+ ένα απομακρυσμένο μηχάνημα και μπορούν να μεταφορτωθούν και να
+ εγκατασταθούν με την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>freebsd-update fetch</userinput>
+&prompt.root; <userinput>freebsd-update install</userinput></screen>
+
+ <para>Αν με την παραπάνω εντολή εγκατασταθούν ενημερώσεις στον πυρήνα,
+ θα χρειαστεί να επανεκκινήσετε το σύστημα. Αν όλα πάνε καλά, το
+ σύστημα θα είναι πλέον ενημερωμένο και μπορείτε να εκτελείτε το
+ <command>freebsd-update</command> αυτόματα με την βοήθεια του
+ &man.cron.8;. Μια απλή καταχώριση στο αρχείο
+ <filename>/etc/crontab</filename> είναι επαρκής για αυτό
+ το σκοπό:</para>
+
+ <programlisting>@daily root freebsd-update cron</programlisting>
+
+ <para>Η παραπάνω καταχώριση ορίζει ότι το
+ <command>freebsd-update</command> θα εκτελείται μια φορά την ημέρα.
+ Με τον τρόπο αυτό, και όταν η εκτέλεση είναι μέσω της επιλογής
+ <option>cron</option>, το <command>freebsd-update</command> απλώς
+ θα ελέγχει για ενημερώσεις. Αν υπάρχουν, η εφαρμογή θα τις
+ κατεβάζει, αλλά δεν θα τις εγκαθιστά. Θα στέλνει όμως ένα email
+ στο χρήστη <username>root</username> ώστε να τις εγκαταστήσει
+ χειροκίνητα.</para>
+
+ <para>Αν οτιδήποτε πάει στραβά, το <command>freebsd-update</command>
+ έχει την ικανότητα να επιστρέφει στην προηγούμενη σταθερή κατάσταση,
+ αναιρώντας το τελευταίο σετ αλλαγών με την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>freebsd-update rollback</userinput></screen>
+
+ <para>Με την ολοκλήρωση της εντολής, θα πρέπει να επανεκκινήσετε το
+ σύστημα αν έχουν γίνει αλλαγές στον πυρήνα ή σε κάποιο από τα
+ αρθρώματα του. Αυτό θα επιτρέψει στο &os; να φορτώσει τα νέα
+ εκτελέσιμα στη μνήμη.</para>
+
+ <note>
+ <para>Η εντολή <command>freebsd-update</command> λειτουργεί μόνο
+ με τον πυρήνα <filename>GENERIC</filename>. Αν έχετε κάνει αλλαγές
+ στον <filename>GENERIC</filename> ή έχετε εγκαταστήσει
+ προσαρμοσμένο πυρήνα, το <command>freebsd-update</command> δεν θα
+ ολοκληρώσει τις αλλαγές. Θα αποτύχει στην πρώτη περίπτωση, και
+ θα εμφανίσει ένα μήνυμα λάθους στη δεύτερη.</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>Αναβαθμίσεις σε Μικρές και Μεγάλες Εκδόσεις</title>
+
+ <para>Η διαδικασία αυτή θα απομακρύνει τα παλιά αρχεία αντικειμενικού
+ κώδικα (object files) καθώς και τις παλιές βιβλιοθήκες, κάνοντας
+ τις περισσότερες εφαρμογές τρίτων κατασκευαστών να μη λειτουργούν.
+ Σας συνιστούμε είτε να απεγκαταστήσετε όλα τα εγκατεστημένα ports και
+ να τα εγκαταστήσετε ξανά, ή να τα αναβαθμίσετε αργότερα,
+ χρησιμοποιώντας το βοηθητικό πρόγραμμα
+ <filename role="package">ports-mgmt/portupgrade</filename>.
+ Οι περισσότεροι χρήστες θα θέλουν να κάνουν μια δοκιμαστική
+ μεταγλώττιση χρησιμοποιώντας την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>portupgrade -af</userinput></screen>
+
+ <para>Με αυτό τον τρόπο εξασφαλίζεται ότι τα πάντα θα επανεγκατασταθούν
+ σωστά. Σημειώστε ότι αν θέσετε την μεταβλητή περιβάλλοντος
+ <makevar>BATCH</makevar> στην τιμή <literal>yes</literal>, όλες οι
+ πιθανές ερωτήσεις που θα εμφανιστούν κατά τη διαδικασία, θα
+ απαντηθούν αυτόματα με <literal>yes</literal>. Έτσι δεν υπάρχει πλέον
+ ανάγκη για παρέμβαση του χρήστη κατά τη διάρκεια της διαδικασίας
+ μεταγλώττισης.</para>
+
+ <para>Είναι δυνατές οι αναβαθμίσεις τόσο σε μικρές όσο και σε μεγάλες
+ εκδόσεις, δίνοντας στην εντολή <command>freebsd-update</command> τον
+ επιθυμητό αριθμό έκδοσης. Για παράδειγμα, η ακόλουθη εντολή θα
+ αναβαθμίσει το σύστημα σε &os;&nbsp;6.3:</para>
+
+ <screen>&prompt.root; <userinput>freebsd-update -r 6.3-RELEASE upgrade</userinput></screen>
+
+ <para>Μετά τη λήψη της εντολής, το
+ <command>freebsd-update</command> θα αξιολογήσει την κατάσταση του
+ συστήματος και του αρχείου ρυθμίσεων του, σε μια απόπειρα να μαζέψει
+ τις απαραίτητες πληροφορίες για την αναβάθμιση του συστήματος.
+ Οι πληροφορίες που ανιχνεύθηκαν θα εμφανιστούν στην οθόνη με τη μορφή
+ μιας λίστας εγκατεστημένων προγραμμάτων. Για παράδειγμα:</para>
+
+ <screen>Looking up update.FreeBSD.org mirrors... 1 mirrors found.
+Fetching metadata signature for 6.3-BETA1 from update1.FreeBSD.org... done.
+Fetching metadata index... done.
+Inspecting system... done.
+
+The following components of FreeBSD seem to be installed:
+kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
+src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
+src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
+world/base world/info world/lib32 world/manpages
+
+The following components of FreeBSD do not seem to be installed:
+kernel/generic world/catpages world/dict world/doc world/games
+world/proflibs
+
+Does this look reasonable (y/n)? y</screen>
+
+ <para>Στο σημείο αυτό, το <command>freebsd-update</command> θα
+ κατεβάσει όλα τα αρχεία που απαιτούνται για την αναβάθμιση. Σε
+ μερικές περιπτώσεις, ο χρήστης θα κληθεί να απαντήσει σε ερωτήσεις
+ σχετικά με το τι θα εγκατασταθεί ή πως πρέπει να προχωρήσει η
+ διαδικασία.</para>
+
+ <para>Αφού μεταφορτωθούν όλα τα patches στο τοπικό σύστημα, θα γίνει
+ και η εφαρμογή τους. Η διαδικασία αυτή ίσως πάρει λίγο χρόνο,
+ ανάλογα με την ταχύτητα και το φορτίο του μηχανήματος. Έπειτα θα
+ γίνει η συγχώνευση των αρχείων ρυθμίσεων. Αυτό το μέρος της
+ διαδικασίας απαιτεί παρέμβαση του χρήστη, καθώς σε κάποια αρχεία θα
+ χρειαστεί η συγχώνευση να γίνει χειροκίνητα με τη βοήθεια κάποιου
+ συντάκτη κειμένου. Ο χρήστης θα ενημερώνεται για το αποτέλεσμα κάθε
+ επιτυχημένης συγχώνευσης καθώς εξελίσσεται η διαδικασία. Σε
+ περίπτωση αποτυχημένης συγχώνευσης (ή αγνόησης της), η διαδικασία
+ αναβάθμισης θα διακοπεί. Ενδεχομένως να θέλετε να κρατήσετε αντίγραφο
+ ασφαλείας του καταλόγου <filename class="directory">/etc</filename>
+ και να συγχωνεύσετε αργότερα (χειροκίνητα) κάποια σημαντικά αρχεία,
+ όπως το <filename>master.passwd</filename> ή το
+ <filename>group</filename>.</para>
+
+ <note>
+ <para>Στο σημείο αυτό δεν έχει γίνει ακόμα καμιά αλλαγή στο σύστημα,
+ καθώς όλη η διαδικασία της αναβάθμισης και συγχώνευσης γίνεται σε
+ διαφορετικό κατάλογο. Όταν εφαρμοστούν επιτυχώς όλα τα patches
+ και ολοκληρωθεί με επιτυχία η διαδικασία της συγχώνευσης όλων των
+ αρχείων ρύθμισης, ο χρήστης θα πρέπει να επιβεβαιώσει την τελική
+ εγκατάσταση.</para>
+ </note>
+
+ <para>Με το τέλος αυτής τη διαδικασίας, η αναβάθμιση μπορεί να
+ οριστικοποιηθεί στο δίσκο, με τη χρήση της ακόλουθης εντολής:</para>
+
+ <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
+
+ <para>Στην πρώτη φάση, θα αλλαχθεί ο πυρήνας και τα σχετικά αρθρώματα.
+ Στο σημείο αυτό, θα πρέπει να γίνει επανεκκίνηση του μηχανήματος.
+ Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να επανεκκινήσετε
+ το μηχάνημα ώστε να φορτωθεί στη μνήμη ο νέος πυρήνας:</para>
+
+ <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
+
+ <para>Μόλις το σύστημα επανέλθει σε λειτουργία, θα πρέπει να εκτελέσετε
+ ξανά το <command>freebsd-update</command>. Η προηγούμενη λειτουργία
+ έχει αποθηκευθεί, και έτσι το <command>freebsd-update</command> δεν θα
+ ξεκινήσει από την αρχή, αλλά θα απομακρύνει όλες τις παλιές
+ κοινόχρηστες βιβλιοθήκες και τα αρχεία αντικειμενικού κώδικα. Για να
+ συνεχίσετε σε αυτό το στάδιο, δώστε την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
+
+ <note>
+ <para>Ανάλογα με το αν υπήρξαν αλλαγές στους αριθμούς εκδόσεων των
+ βιβλιοθηκών, ίσως να υπάρχουν μόνο δύο φάσεις εγκατάστασης αντί για
+ τρεις.</para>
+ </note>
+
+ <para>Όλο το λογισμικό τρίτου κατασκευαστή θα πρέπει τώρα να
+ μεταγλωττιστεί και να επανεγκατασταθεί από την αρχή. Αυτό απαιτείται
+ καθώς το εγκατεστημένο λογισμικό ίσως εξαρτάται από βιβλιοθήκες οι
+ οποίες αφαιρέθηκαν κατά τη διαδικασία της αναβάθμισης. Μπορείτε να
+ χρησιμοποιήσετε την εντολή
+ <filename role="package">ports-mgmt/portupgrade</filename>
+ για να αυτοματοποιήσετε αυτή τη διαδικασία. Για να ξεκινήσετε, δώστε
+ τις παρακάτω εντολές:</para>
+
+ <screen>&prompt.root; <userinput>portupgrade -f ruby</userinput>
+&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db</userinput>
+&prompt.root; <userinput>portupgrade -f ruby18-bdb</userinput>
+&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db</userinput>
+&prompt.root; <userinput>portupgrade -af</userinput></screen>
+
+ <para>Μόλις ολοκληρωθεί το παραπάνω, ολοκληρώστε τη διαδικασία
+ αναβάθμισης με μια τελευταία κλήση της εντολής
+ <command>freebsd-update</command>. Δώστε την παρακάτω εντολή για να
+ ολοκληρώσετε οτιδήποτε έχει απομείνει στη διαδικασία
+ αναβάθμισης:</para>
+
+ <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
+
+ <para>Επανεκκινήστε το μηχάνημα σας στην νέα έκδοση του &os;.
+ Η διαδικασία έχει ολοκληρωθεί.</para>
+ </sect2>
+
+ <sect2>
+ <title>Σύγκριση Κατάστασης του Συστήματος</title>
+
+ <para>Το βοηθητικό πρόγραμμα <command>freebsd-update</command> μπορεί να
+ χρησιμοποιηθεί για να ελέγξετε την κατάσταση της εγκατεστημένης
+ έκδοσης του &os; σε σχέση με μια γνωστή και σωστή εγκατάσταση.
+ Η επιλογή αυτή συγκρίνει και αξιολογεί την τρέχουσα έκδοση των
+ προγραμμάτων συστήματος, των βιβλιοθηκών και των αρχείων ρύθμισης.
+ Για να ξεκινήσετε τη σύγκριση, δώστε την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>freebsd-update IDS &gt;&gt; outfile.ids</userinput></screen>
+
+ <warning>
+ <para>Αν και το όνομα της εντολής είναι <acronym>IDS</acronym>, δεν
+ θα πρέπει σε καμιά περίπτωση να θεωρηθεί υποκατάστατο ενός
+ συστήματος ανίχνευσης εισβολέα (intrusion detection system) όπως
+ είναι για παράδειγμα το
+ <filename role="package">security/snort</filename>.
+ Καθώς το <command>freebsd-update</command> αποθηκεύει τα δεδομένα
+ του στο δίσκο, υπάρχει πάντα η πιθανότητα να έχει γίνει αλλοίωση
+ τους. Αν και η πιθανότητα αυτή μπορεί να μειωθεί χρησιμοποιώντας
+ τη ρύθμιση <varname>kern.securelevel</varname> και αποθηκεύοντας
+ τα δεδομένα της εντολής <command>freebsd-update</command> σε ένα
+ σύστημα αρχείων μόνο για ανάγνωση, μια ακόμα καλύτερη λύση θα ήταν
+ να συγκρίνετε το σύστημα με κάποιο δίσκο που θεωρείτε σίγουρα
+ ασφαλή. Για παράδειγμα, με ένα δίσκο <acronym>DVD</acronym> ή με
+ ένα εξωτερικό δίσκο <acronym>USB</acronym> που φυλάσσετε σε ασφαλή
+ τοποθεσία.</para>
+ </warning>
+
+ <para>Θα γίνει τώρα μια επιθεώρηση του συστήματος και θα δημιουργηθεί
+ μια λίστα από αρχεία και τιμές hash του τύπου &man.sha256.1;,
+ τόσο για το εγκατεστημένο όσο και για το γνωστό σύστημα. Επειδή
+ πρόκειται για μεγάλη λίστα, την ανακατευθύνουμε στο αρχείο
+ <filename>outfile.ids</filename>. Στην οθόνη το κείμενο θα κυλούσε
+ πολύ γρήγορα, και σύντομα θα γέμιζε την προσωρινή μνήμη απεικόνισης
+ της κονσόλας.</para>
+
+ <para>Οι γραμμές αυτές έχουν γενικά μεγάλο μήκος, αλλά είναι εύκολο
+ να επεξεργαστούμε την έξοδο. Για παράδειγμα, για να δείτε μια λίστα
+ όλων των αρχείων που διαφέρουν από αυτά της επίσημης έκδοσης, δώστε
+ την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>cat update.ids | awk '{ print $1 }' | more</userinput>
+/etc/master.passwd
+/etc/motd
+/etc/passwd
+/etc/pf.conf</screen>
+
+ <para>Τα παραπάνω είναι μόνο ένα μέρος της εξόδου, υπάρχουν ακόμα
+ πολλά διαφορετικά αρχεία. Κάποια από αυτά τα αρχεία είναι φυσιολογικό
+ να έχουν τροποποιηθεί. Για παράδειγμα, το
+ <filename>/etc/passwd</filename> έχει τροποποιηθεί, καθώς έχουν
+ προστεθεί χρήστες στο σύστημα. Σε μερικές περιπτώσεις, μπορεί να
+ υπάρχουν και άλλα αρχεία, όπως π.χ. αρθρώματα πυρήνα τα οποία
+ διαφέρουν αφού έχουν ενημερωθεί μέσω της
+ <command>freebsd-update</command>. Για να εξαιρέσετε συγκεκριμένα
+ αρχεία ή καταλόγους, προσθέστε τα στην επιλογή
+ <literal>IDSIgnorePaths</literal> στο αρχείο ρυθμίσεων
+ <filename>/etc/freebsd-update.conf</filename>.</para>
+
+ <para>Εκτός από την χρήση που αναφέραμε προηγουμένως, το σύστημα αυτό
+ μπορεί να χρησιμοποιηθεί και ως τμήμα μιας λεπτομερούς διαδικασίας
+ αναβάθμισης.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="updating-portsnap">
+ <title>Portsnap: Ένα Εργαλείο Ενημέρωσης της Συλλογής των Ports</title>
+
+ <para>Το βασικό σύστημα του &os; περιλαμβάνει επίσης ένα βοηθητικό
+ πρόγραμμα για την ενημέρωση της Συλλογής των Ports. Πρόκειται για το
+ &man.portsnap.8;. Όταν το εκτελέσετε, θα συνδεθεί σε ένα απομακρυσμένο
+ διακομιστή, θα επαληθεύσει το κλειδί του πηγαίου κώδικα, και θα
+ κατεβάσει ένα νέο αντίγραφο της Συλλογής των Ports. Το κλειδί
+ χρησιμοποιείται για να επαληθεύσει την ακεραιότητα όλων των αρχείων
+ που μεταφορτώνονται, εξασφαλίζοντας ότι δεν έχουν αλλοιωθεί κατά
+ την μεταφορά. Για να κατεβάσετε τα τελευταία αρχεία της Συλλογής των
+ Ports, εκτελέστε την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>portsnap fetch</userinput>
+Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
+Fetching snapshot tag from portsnap1.FreeBSD.org... done.
+Fetching snapshot metadata... done.
+Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
+Fetching 3 metadata patches.. done.
+Applying metadata patches... done.
+Fetching 3 metadata files... done.
+Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
+Applying patches... done.
+Fetching 133 new ports or files... done.</screen>
+
+ <para>Το παραπάνω παράδειγμα δείχνει ότι το &man.portsnap.8;
+ βρήκε και επαλήθευσε αρκετά patches τα οποία πρέπει να εφαρμοστούν
+ στο υπάρχον δέντρο των ports. Αυτό δείχνει επίσης ότι το πρόγραμμα
+ έχει εκτελεστεί κατά το παρελθόν. Αν αυτή ήταν η πρώτη φορά που
+ εκτελούνταν, θα γίνονταν απλώς κατέβασμα της συλλογής.</para>
+
+ <para>Όταν το &man.portsnap.8; εκτελέσει επιτυχώς της λειτουργία
+ <command>fetch</command>, η Συλλογή των Ports και τα
+ αντίστοιχα patches έχουν αποθηκευθεί στο τοπικό σύστημα και έχει γίνει
+ η επαλήθευση τους. Τα ενημερωμένα αρχεία μπορούν να εγκατασταθούν
+ γράφοντας:</para>
+
+ <screen>&prompt.root; <userinput>portsnap extract</userinput>
+/usr/ports/.cvsignore
+/usr/ports/CHANGES
+/usr/ports/COPYRIGHT
+/usr/ports/GIDs
+/usr/ports/KNOBS
+/usr/ports/LEGAL
+/usr/ports/MOVED
+/usr/ports/Makefile
+/usr/ports/Mk/bsd.apache.mk
+/usr/ports/Mk/bsd.autotools.mk
+/usr/ports/Mk/bsd.cmake.mk
+<replaceable>...</replaceable></screen>
+
+ <para>Η διαδικασία έχει πλέον ολοκληρωθεί, και μπορείτε να εγκαταστήσετε
+ ή να αναβαθμίσετε εφαρμογές χρησιμοποιώντας την ενημερωμένη Συλλογή των
+ Ports.</para>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->