/[clonezilla-sysresccd]/trunk/www/2doc/doc/recover.html
ViewVC logotype

Annotation of /trunk/www/2doc/doc/recover.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 180 - (hide annotations)
Mon Jun 6 18:57:10 2011 UTC (12 years, 9 months ago) by sng
File MIME type: text/html
File size: 21634 byte(s)
- updating email addresses (bottom of page and "Contact me" in index.html
- updating site
  Please do not commit anything in trunk/www
  This folder is updated by script 2site and any manual changes are
  overwritten. Escpecially, doc.html is an index file which exists
  only in trunk/www (its contents are the H1,H2,H3 headers existing
  in html files under trunk/www/working

1 sng 49 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2     <html>
3     <head>
4     <link rel="alternate" type="application/rss+xml" title="RSS" href="http://clonezilla-sysresccd.hellug.gr/clonezilla-sysresccd.rss">
5     <link rel="shortcut icon" href="favicon.ico">
6 sng 52 <title>Clonezilla-SysRescCD - Offline Documentation: Data Recovery</title>
7 sng 49 <style type="text/css">
8 sng 149 body { font-family: Arial, 'sans serif'; color: black; font-size: 12pt; background : fixed no-repeat; background-color: #333333; padding: 0; margin: 0; margin-top: 5px; margin-bottom: 5px; }
9 sng 49
10    
11    
12     #header {position:relative; display: block; width: 980px; height: 121px;margin: auto; padding: auto; background-color: #D37624; background-image: url('images/header.png');clear:both;}
13     #header h2{ color: #FFE6BC; font-weight: bold; font-size: 2.2em; margin:0; padding:0; padding-left: 10px; padding-top: 7px; text-shadow: #333333 2px 2px 4px;}
14     #header h3{ color: #FFE6BC; font-weight: bold; font-size: 1.8em; margin:0; padding: 0; padding-left: 10px; text-shadow: #333333 2px 2px 4px;}
15     #header h4{ color: #FFE6BC; font-weight: bold; font-size: 1.2em; margin:0; padding: 0; padding-left: 10px; padding-right: 10px; text-shadow: #333333 2px 2px 4px;}
16     #header a {text-decoration:none;}
17    
18     #contarea {display: block; width: 980px; margin: auto; padding: auto; background-color: #FFF2DD; clear:both;}
19    
20     #linkline { width: 980px; height: 29px;margin: auto; padding: auto; background-color: #D37624; background-image: url('images/linkline.png');clear:both; }
21     #linkline a{float: left; color: #FFE6BC; font-weight: bold; font-size: 0.8em; text-decoration: none; text-shadow: #333333 2px 2px 4px; padding-left: 10px; padding-right: 10px; padding-top: 5px;}
22     #linkline a:visited{color: #FFE6BC;}
23     #linkline a:hover{color: #333333;}
24     #linkline a.here {color: #333333; text-decoration: none;}
25    
26     #lastupdate {float: right; display: block; text-align: right; margin: 0; margin-top: -1.2em; padding: 0; padding-right: 15px;}
27    
28     #rss { float: right; text-align: right; padding-top: 3px;}
29    
30     #docline-top { float: right; padding-right: 40px; text-align: right; }
31     #docline-bottom { float: right; padding-right: 40px; text-align: right; font-size: 0.8em; padding-top: 15px; }
32     #docline-bottom a{ padding-left: 10px; padding-right: 10px; }
33    
34     #menu { float: right; display: block; width: 170px; margin: auto; padding: 15px; font-size: 0.8em; font-weight: bold; background-color: #FFE6BC;}
35     #menu h1 {color: #990000; font-size: 1.8em;text-shadow: gray 2px 2px 4px;}
36     #menu a,a:visited{ color: black; text-decoration: none; font-weight: normal;}
37     #menu a:hover{ text-decoration: underline;}
38     #menu p{ margin-bottom: 10px;}
39    
40     #content { float: left; display: block; width: 950px; margin: auto; padding: 15px;}
41    
42    
43     #footer {display: block; width: 980px; height: 100px;margin: auto; padding: auto; background-color: #D37624; background-image: url('images/footer.png');clear:both;text-shadow: #333333 2px 2px 4px;}
44     #footer p{color: #FFE6BC; font-weight: bold; padding:15px; padding-left: 10px;}
45     #footer a,a:visited{color: #FFE6BC; font-weight: bold; text-decoration:none;}
46     #footer a:hover{ color: #333333; text-decoration: none;}
47    
48    
49     #content H1,H2,H3,H4{color: #990000; text-align: left;}
50     #content H2{margin-top: 2em;}
51     #content H3{margin-top: 1.5em}
52     #content H4{margin-top: 1em}
53     #content li { margin-top: 1em;}
54     #content a,a:active,a:visited{text-decoration: none; color: #4075CA; font-weight: normal;}
55     #content a:hover{text-decoration: underline; font-weight: normal;}
56     #content .hidden{ display:none; }
57     #content p,td,table,tr,li { font-family: Arial, 'sans serif'; }
58     #content .nav{margin-left: 0pt;}
59     #content .newcode{font-family : "Courier New", Courier, monospace; font-weight: bold; background-color: #F2F2F2; border: solid 1px #DEDEDE;padding: 20pt;}
60     #content .note{margin-top: 30pt; margin-bottom: 30pt; text-align: left; background-color: #FFEFEF; border: double 3px; border-color: #FFD5D5;}
61     #content hr{color: Black; background-color: Black; height: 1px; border: none;}
62     #content .header-news{margin-top: 2em; margin-left: 25pt; font-weight: bold; color: #990000;}
63     #content .item-news{margin-left: 45pt; margin-right: 45pt;}
64     #content .otherpage{border: solid 1px darkgoldenrod; padding: 20pt; background-color: lemonchiffon;}
65     #content IMG {display: block; margin-left: auto; margin-right: auto; }
66     #content .red{color: white; background-color: Red; font-weight: bold;}
67     #lphp{text-align: right; padding-left: 10px; padding-right: 10px; padding-top: 50px; float: right;}
68     #lphp a{padding-left: 5px;}
69 sng 149 #warning { margin: 5px; padding: .4em; background-color: Red; color: White; align: center; font-weight: bold; border-width: 2px; border-color: white; border-style: solid; }
70     #warning a { color: white; font-weight: bold; text-decoration: underline; }
71     #warning { display: none; }
72 sng 49 </style>
73 sng 149 <link href="warning.css" rel="stylesheet" type="text/css" />
74     <!--
75     The file waring.css exists only in the root of the site
76     and it hides the UNSTABLE warnings. Its contents are
77     #warning { display: none; }
78     -->
79 sng 49 <META NAME="Keywords" CONTENT="multiboot Multi Boot bootable cd rescue clonezilla sysresccd backup restore samba">
80     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
81    
82     </head>
83    
84     <body>
85 sng 149 <div id="warning" align="center">
86     WARNING<br>
87     This is the UNSTABLE version of Clonezilla-SysRescCD<br>
88     To access our current stable version, please click <a href="../index.html">here</a>
89     </div>
90 sng 49 <div id="header">
91     <H2>Clonezilla-SysRescCD</H2>
92 sng 52 <H3>Offline Documentation: Data Recovery</H3>
93 sng 49 <div style="margin:0; padding: 3px; width: 980; position relative;">
94 sng 180 <div style="position: absolute; left: 0px;"><H4>30/06/2011 - v 3.2.0</H4></div>
95     <div style="position: absolute; right: 0px;"><H4>Last update: 06/06/2011</H4></div>
96 sng 49 </div>
97     </div>
98     <div id="linkline">
99    
100    
101     <!-- <a href="features.html">Features</a>-->
102 sng 52 <a class="here" href="../README.html">Offline Documentation</a>
103 sng 49
104    
105    
106    
107 sng 113
108 sng 49 <!-- docline-top-->
109     <div id="docline-top"> <a href="partitions.html">&lt; PREV</a> <a href="../README.html">UP</a> <a href="own-scripts.html">NEXT &gt;</a> </div>
110     </div>
111     <div id="contarea">
112     <div id="content">
113     <a name="recover-top"></a>
114    
115     <!-- On the CD -->
116    
117     <H2 style="margin-top: 0;"><a name="recover-intro"></a>Intro <span class="hideprint">[<a href="#help-top" title="go to top of the page">^</a>]</span></H2>
118    
119     <p>Deleted or "lost" files can be recovered from failed or formatted drives and partitions, cdroms and memory cards using the software available in <b>SystemRescueCD</b>.
120    
121     Unless you can rule out hardware failure, you must not write to the failed device. The following software will passively try to recover your data from failed or failing hardware. If your data is not replaceable, do not attempt to write to the failed device if the following applications do not work but seek professional advice instead.<br>
122     <br>
123     If your device is damaged, it is advisable to image the device and work on the image file for data recovery. If hardware failure is not the problem, you can recover data directly from the device.<br>
124     <br>
125     To recover data from a failed device, you will need another device of equal or greater storage capacity onto which to save your data. If you need to make an image of the failed device, you will need yet another quantity of space.<br>
126     <br>
127     I should state here, that I haven't used any of these tools recently (other than plain and simple <b>dd</b>, a long time ago, which I found to be very slow), so I couldn't recommend any of them. Any comments on a tool's usability found in this page, is just what I found on the Net.</p>
128    
129    
130     <!-- Partition recovery -->
131     <H2><a name="recover-dr"></a>Partition recovery <span class="hideprint">[<a href="#help-top" title="go to top of the page">^</a>]</span></H2>
132    
133     <p>If you made a mistake while partitioning and the partition no longer appears in the partition table, so long as you have not written data in that space, all your data is still there and can be restored.</p>
134    
135     <p>When changing the partition table on your hard drive, you must ensure that no partition on the disk is mounted. This includes swap space. In order to restore your partition, execute:</p>
136    
137     <p class="newcode">swapoff -a<br>
138     parted /dev/old_disk</p>
139    
140     <p>Then, use the rescue option:</p>
141    
142     <p class="newcode">rescue START END</p>
143    
144     <p>where <b>START</b> is the area of the disk where you believe the partition began and <b>END</b> is it's end. If parted finds a potential partition, it will ask you if you want to add it to the partition table.</p>
145    
146     <p><b>Note:</b> <a href="#recover-testdisk">TestDisk</a> can also be used to recover a "lost" partition.</p>
147    
148     <!-- Disk recovery -->
149     <H2><a name="recover-dr"></a>Disk / files recovery <span class="hideprint">[<a href="#help-top" title="go to top of the page">^</a>]</span></H2>
150    
151     <!-- dd -->
152     <H3><a name="recover-dd"></a>Using dd <span class="hideprint">[<a href="#help-top" title="go to top of the page">^</a>]</span></H3>
153    
154     <p>In order to duplicate a disk to another disk, execute</p>
155    
156     <p class="newcode">dd if=/dev/old_disk of=/dev/new_disk conv=noerror,sync</p>
157    
158     <p>or to create an image file</p>
159    
160     <p class="newcode">dd if=/dev/old_disk of=image_file conv=noerror</p>
161    
162     <p>Be careful, if you are copying a disk, the destination must also be a disk, not a partition. If you are copying a partition, the destination partition must be large enough. Copying the whole disk is recommended.<br>
163     <br>
164     To speed up the copy process, you can append <b>bs=8k</b>, it will read/write the disk by 16 sectors at a time.</p>
165    
166    
167     <!-- dd_rescue -->
168     <H3><a name="recover-dd-rescue"></a>Using dd_rescue <span class="hideprint">[<a href="#help-top" title="go to top of the page">^</a>]</span></H3>
169    
170     <p>Like dd, <a href="http://www.garloff.de/kurt/linux/ddrescue/" target="_blank">dd_rescue</a> does copy data from one file or block device to another. You can specify file positions (called seek and skip in dd). There are several differences:</p>
171    
172     <ul>
173     <li>dd_rescue does not provide character conversions.</li>
174     <li>The command syntax is different. Call <b>dd_rescue -h</b>.</li>
175     <li>dd_rescue does not abort on errors on the input file, unless you specify a maximum error number. Then dd_rescue will abort when this number is reached.</li>
176     <li>dd_rescue does not truncate the output file, unless asked to.</li>
177     <li>You can tell dd_rescue to start from the end of a file and move backwards.</li>
178     <li>It uses two block sizes, a large (soft) block size and a small (hard) block size. In case of errors, the size falls back to the small one and is promoted again after a while without errors.</li>
179     <li>It does not (yet) support non-seekable in- or output.</li>
180     </ul>
181    
182     <p>In order to duplicate a disk to another disk, execute</p>
183    
184     <p class="newcode">dd_rescue -A -v /dev/old_disk /dev/new_disk</b></p>
185    
186     <p>or to create an image file</p>
187    
188     <p class="newcode">dd_rescue -A -v /dev/old_disk image_file</b></p>
189    
190     <p>The copying should go very quickly until it hits a bad sector and then it will slow down to take smaller chunks of data. People have reported very good results with this technique.</p>
191    
192    
193     <!-- GNU ddrescue -->
194     <H3><a name="recover-gnu-ddrescue"></a>Using GNU ddrescue <span class="hideprint">[<a href="#help-top" title="go to top of the page">^</a>]</span></H3>
195    
196     <p>The GNU site describes GNU ddrescue as a data recovery tool, and lists these features:</p>
197    
198     <ul>
199     <li>It copies data from one file or block device (hard disc, CD-ROM, etc) to another, trying hard to rescue data in case of read errors.</li>
200     <li>It does not truncate the output file if not asked to, so every time you run it on the same output file, it tries to fill in the gaps.</li>
201     <li>It is designed to be fully automatic.</li>
202     <li>If you use the log file feature of GNU ddrescue, the data is rescued very efficiently (only the needed blocks are read). Also you can interrupt the rescue at any time and resume it later at the same point.</li>
203     <li>The log file is periodically saved to disc. So in case of a crash you can resume the rescue with little recopying.</li>
204     <li>If you have two or more damaged copies of a file, CD-ROM, etc, and run GNU ddrescue on all of them, one at a time, with the same output file, you will probably obtain a complete and error-free file. The probability of having damaged areas at the same places on different input files is very low. Using the log file, only the needed blocks are read from the second and successive copies.</li>
205     <li>The same log file can be used for multiple commands that copy different areas of the file, and for multiple recovery attempts over different subsets.</li>
206     </ul>
207    
208     <p>The algorithm of GNU ddrescue is as follows:</p>
209    
210     <ol>
211     <li>Optionally read a log file describing the status of a multi-part or previously interrupted rescue.</li>
212     <li>Read the non-damaged parts of the input file, skipping the damaged areas, until the requested size is reached, or until interrupted by the user.</li>
213     <li>Try to read the damaged areas, splitting them into smaller pieces and reading the non-damaged pieces, until the hardware block size is reached, or until interrupted by the user.</li>
214     <li>Try to read the damaged hardware blocks until the specified number of retries is reached, or until interrupted by the user.</li>
215     <li>Optionally write a log file for later use.</li>
216     </ol>
217    
218     <p><b>Note:</b> GNU ddrescue is considered to be the best recovery tool available.</p>
219    
220     <p>In order to duplicate a disk to another disk, execute</p>
221    
222     <p class="newcode">ddrescue -vr3 /dev/old_disk /dev/new_disk logfile</b></p>
223    
224     <p>or to create an image file</p>
225    
226     <p class="newcode">ddrescue -vr3 /dev/old_disk image_file logfile</b></p>
227    
228     <p>If the disk is failing fast and you want to get the most data out of it on the first try, you should probably use "<b>-n</b>" on the first run. This will avoid splitting error areas. Subsequent runs can use "<b>-r1</b>" or "<b>-r3</b>", without "<b>-n</b>", to retry those error areas.</p>
229    
230     <p>To summarise, we execute:</p>
231    
232     <p class="newcode">ddrescue -vn /dev/old_disk image_file logfile<br>
233     ddrescue -v -r3 -C /dev/old_disk image_file logfile</p>
234    
235     <p><b>Note:</b> When working with CD-ROMs you should probably specific "<b>-b 2048</b>"</p>
236    
237    
238     <!-- Foremost -->
239     <H3><a name="recover-foremost"></a>Using Foremost <span class="hideprint">[<a href="#help-top" title="go to top of the page">^</a>]</span></H3>
240    
241     <p><a href="http://foremost.sourceforge.net/" target="_blank">Foremost</a> is a console program to recover files based on their headers, footers, and internal data structures. This process is commonly referred to as data carving. Foremost can work on image files, such as those generated by dd, Safeback, Encase, etc, or directly on a drive. The headers and footers can be specified by a configuration file or you can use command line switches to specify built-in file types. These built-in types look at the data structures of a given file format allowing for a more reliable and faster recovery.</p>
242    
243     <p>It can be run on an image file created with any of the above tools, to extract files:</p>
244    
245     <p class="newcode">foremost -i image -o /recovery/foremost</p>
246    
247     <p>Foremost can be instructed to recover only specific file types, using the <b>-t</b> command line parameter. In the following example Foremost will extract only jpg files:</p>
248    
249     <p class="newcode">foremost -t jpg -i image -o /recovery/foremost</p>
250    
251     <p>Available types are: jpg, gif, png, bmp, avi, exe (Windows binaries and DLLs), wav, riff, wmv (will extract wma also), mov, pdf, ole (will extract any file using the OLE file structure; this includes PowerPoint, Word, Excel, Access, and StarWriter), doc, zip (will extract .jar files and Open Office docs as well; this includes SXW, SXC, SXI, and SX? for undetermined OpenOffice files), rar, html and cpp.</p>
252    
253     <!-- TestDisk -->
254     <H3><a name="recover-testdisk"></a>Using TestDisk <span class="hideprint">[<a href="#help-top" title="go to top of the page">^</a>]</span></H3>
255    
256     <p><a href="http://www.cgsecurity.org/wiki/TestDisk" target="_blank">TestDisk</a> was primarily designed to help <b>recover "lost" partitions</b> and/or <b>make non-booting disks bootable again</b> <i>when</i> these symptoms are caused by <i>faulty software</i>, certain types of <i>viruses</i> or <i>human error</i> (such as <i>accidentally</i> deleting a Partition Table). Partition table recovery using TestDisk is really easy.<br>
257     <br>
258     TestDisk can</p>
259    
260     <ul>
261     <li> Fix partition table, recover deleted partition</li>
262     <li> Recover FAT32 boot sector from its backup</li>
263     <li> Rebuild FAT12/FAT16/FAT32 boot sector</li>
264     <li> Fix FAT tables</li>
265     <li> Rebuild NTFS boot sector</li>
266     <li> Recover NTFS boot sector from its backup</li>
267     <li> Fix MFT using MFT mirror</li>
268     <li> Locate ext2/ext3 Backup SuperBlock</li>
269     </ul>
270    
271     <p>Some great tutorials are available at TestDisk's site: "<a href="http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step" target="_blank">TestDisk Step By Step</a>", "<a href="http://www.cgsecurity.org/wiki/Running_TestDisk" target="_blank">Running TestDisk</a>", "<a href="http://www.cgsecurity.org/wiki/Data_Recovery_Examples" target="_blank">Data Recovery Examples</a>" etc.
272     </p>
273    
274     <!-- PhotoRec -->
275     <H3><a name="recover-photorec"></a>Using PhotoRec <span class="hideprint">[<a href="#help-top" title="go to top of the page">^</a>]</span></H3>
276    
277     <p><a href="http://www.cgsecurity.org/wiki/PhotoRec" target ="_blank">PhotoRec</a> is file data recovery software designed to recover "lost" files including video, documents and archives from Hard Disks and CDRom and "lost" pictures (thus, its 'Photo Recovery' name) from digital camera memory. PhotoRec ignores the filesystem and goes after the underlying data, so it will still work even if your media's filesystem has been severely damaged or re-formatted.<br>
278     <br>
279     For more safety, PhotoRec uses read-only access to handle the drive or memory support you are about to recover "lost" data from.<br>
280     <br>
281     <b>Important</b>: As soon as a pic or file is accidentally deleted, or you discover any missing, do NOT save any more pics or files to that memory device or hard disk drive; otherwise you may overwrite your "lost" data. This means that even using PhotoRec, you must not choose to write the recovered files to the same partition they were stored on.<br>
282     <br>
283     A great tutorial titled "<a href="http://www.cgsecurity.org/wiki/PhotoRec_Step_By_Step" target="_blank">PhotoRec Step By Step</a>" can be found at PhotoRec's site.</p>
284    
285    
286    
287     <!-- Links -->
288     <H2><a name="recover-links"></a>Links &amp; resources <span class="hideprint">[<a href="#help-top" title="go to top of the page">^</a>]</span></H2>
289    
290     <p>This page is a compilation of the following pages:</p>
291    
292     <p>DataRecovery<br>
293     &nbsp;&nbsp;&nbsp;&nbsp;<a href="https://help.ubuntu.com/community/DataRecovery" target="_blank">https://help.ubuntu.com/community/DataRecovery</a></p>
294    
295     <p>Hard Drive Recovery, Ubuntu-Style<br>
296     &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://blogs.sun.com/superpat/tags/ddrescue" target="_blank">http://blogs.sun.com/superpat/tags/ddrescue</a></p>
297    
298     <p>Recover Data and (deleted) Partition with Linux from Hard Drives, CD-ROMs or DVDs<br>
299     &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://sysblogd.wordpress.com/2008/01/05/data-recovery-with-linux-from-hard-drives-cd-roms-or-dvds/" target="_blank">http://sysblogd.wordpress.com/2008/01/05/data-recovery-with-linux-from-hard-drives-cd-roms-or-dvds/</a></p>
300    
301     <p>dd_rescue<br>
302     &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.garloff.de/kurt/linux/ddrescue/" target="_blank">http://www.garloff.de/kurt/linux/ddrescue/</a></p>
303    
304     <p>gddrescue: a tool for recovering data from damaged media<br>
305     &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://debaday.debian.net/2007/12/12/gddrescue-a-tool-for-recovering-data-from-damaged-media/" target="_blank">http://debaday.debian.net/2007/12/12/gddrescue-a-tool-for-recovering-data-from-damaged-media/</a></p>
306    
307     <p>Foremost<br>
308     &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://foremost.sourceforge.net/" target="_blank">http://foremost.sourceforge.net/</a></p>
309    
310     <p>TestDisk<br>
311     &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.cgsecurity.org/wiki/TestDisk" target="_blank">http://www.cgsecurity.org/wiki/TestDisk</a></p>
312    
313     <p>PhotoRec<br>
314     &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.cgsecurity.org/wiki/PhotoRec" target="_blank">http://www.cgsecurity.org/wiki/PhotoRec</a></p>
315    
316    
317     </div>
318    
319    
320    
321     <!--<a name="template-top"></a>-->
322    
323     <div id="footer">
324     <div id="docline-bottom"> <a href="partitions.html">&lt; PREV</a> <a href="../README.html">UP</a> <a href="own-scripts.html">NEXT &gt;</a> </div>
325 sng 180 <p>Copyright: &#169; <a href="mailto:&#115;&#110;&#103;&#064;&#104;&#101;&#108;&#108;&#117;&#103;&#046;&#103;&#114;?subject=About Clonezilla-SysRescCD v 3.2.0" title="About Clonezilla-SysRescCD">Spiros Georgaras</a>, 2007-2011 &amp; <a href="mailto:&#115;&#097;&#110;&#100;&#103;&#116;&#120;&#064;&#103;&#109;&#097;&#105;&#108;&#046;&#099;&#111;&#109;?subject=About Clonezilla-SysRescCD v 3.2.0 documentation" title="About Clonezilla-SysRescCD Documentation">Jyrki Vesterinen</a>, 2010-2011<br /><br/>
326 sng 149 Hosted by <a href="http://hellug.gr/index.php/OSullogos/Tautothta?from=Main.HELLUG" target="_blank" title="Hellenic Linux User Group">HEL.L.U.G.</a></p>
327 sng 49 </div>
328     </div>
329 sng 149 <div id="warning" align="center">
330     WARNING<br>
331     This is the UNSTABLE version of Clonezilla-SysRescCD<br>
332     To access our current stable version, please click <a href="../index.html">here</a>
333     </div>
334 sng 49 </body>
335     </html>

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26