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

Annotation of /trunk/www/recover.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 145 - (hide annotations)
Thu Oct 7 09:19:52 2010 UTC (13 years, 5 months ago) by sng
File MIME type: text/html
File size: 21871 byte(s)
fixing BETA WARNING links
1 sng 28 <!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     <title>Clonezilla-SysRescCD - Documentation: Data Recovery</title>
7     <style type="text/css">
8 sng 125 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 28
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 145 #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 sng 144 #warning a { color: white; font-weight: bold; text-decoration: underline; }
71 sng 28 </style>
72 sng 144 <link href="warning.css" rel="stylesheet" type="text/css" />
73     <!--
74     The file waring.css exists only in the root of the site
75     and it hides the BETA warnings. Its contents are
76     #warning { display: none; }
77     -->
78 sng 28 <META NAME="Keywords" CONTENT="multiboot Multi Boot bootable cd rescue clonezilla sysresccd backup restore samba">
79     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
80    
81     </head>
82    
83     <body>
84 sng 144 <div id="warning" align="center">
85     WARNING<br>
86     This is the BETA version of Clonezilla-SysRescCD<br>
87 sng 145 To acces our current stable version, please click <a href="../index.html">here</a>
88 sng 144 </div>
89 sng 28 <div id="header">
90 sng 124 <div id="lphp" style=""><a target="_blank" title="Display all in one long page" href="onepage.html"><img src="images/chain.png" border="0" /></a><a target="_blank" title="Display printable page" href="printable.php"><img src="images/print_it.png" border="0" /></a></div>
91 sng 28 <H2>Clonezilla-SysRescCD</H2>
92     <H3>Documentation: Data Recovery</H3>
93     <div style="margin:0; padding: 3px; width: 980; position relative;">
94 sng 141 <div style="position: absolute; left: 0px;"><H4>30/09/2010 - v 3.2.0</H4></div>
95 sng 144 <div style="position: absolute; right: 0px;"><H4>Last update: 07/10/2010</H4></div>
96 sng 28 </div>
97     </div>
98     <div id="linkline">
99     <a href="index.html">Home</a>
100     <a href="news.php">News</a>
101     <!-- <a href="features.html">Features</a>-->
102     <a class="here" href="doc.html">Documentation</a>
103 sng 95 <a href="download.html">Download</a>
104 sng 28 <a href="screenshots.html">Screenshots</a>
105     <a href="index.html#credits">Credits</a>
106     <a href="help.html">Help</a>
107    
108     <div id="rss">
109     <a href="clonezilla-sysresccd.rss"><img src="images/rss-orange-11.png" width="30" height="14" border="0"/></a>
110     </div>
111     <!-- docline-top-->
112     <div id="docline-top"> <a href="partitions.html">&lt; PREV</a> <a href="doc.html">UP</a> <a href="own-scripts.html">NEXT &gt;</a> </div>
113     </div>
114     <div id="contarea">
115     <div id="content">
116     <a name="recover-top"></a>
117    
118     <!-- On the CD -->
119    
120     <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>
121    
122     <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>.
123    
124     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>
125     <br>
126     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>
127     <br>
128     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>
129     <br>
130     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>
131    
132    
133     <!-- Partition recovery -->
134     <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>
135    
136     <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>
137    
138     <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>
139    
140     <p class="newcode">swapoff -a<br>
141     parted /dev/old_disk</p>
142    
143     <p>Then, use the rescue option:</p>
144    
145     <p class="newcode">rescue START END</p>
146    
147     <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>
148    
149     <p><b>Note:</b> <a href="#recover-testdisk">TestDisk</a> can also be used to recover a "lost" partition.</p>
150    
151     <!-- Disk recovery -->
152     <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>
153    
154     <!-- dd -->
155     <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>
156    
157     <p>In order to duplicate a disk to another disk, execute</p>
158    
159     <p class="newcode">dd if=/dev/old_disk of=/dev/new_disk conv=noerror,sync</p>
160    
161     <p>or to create an image file</p>
162    
163     <p class="newcode">dd if=/dev/old_disk of=image_file conv=noerror</p>
164    
165     <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>
166     <br>
167     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>
168    
169    
170     <!-- dd_rescue -->
171     <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>
172    
173     <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>
174    
175     <ul>
176     <li>dd_rescue does not provide character conversions.</li>
177     <li>The command syntax is different. Call <b>dd_rescue -h</b>.</li>
178     <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>
179     <li>dd_rescue does not truncate the output file, unless asked to.</li>
180     <li>You can tell dd_rescue to start from the end of a file and move backwards.</li>
181     <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>
182     <li>It does not (yet) support non-seekable in- or output.</li>
183     </ul>
184    
185     <p>In order to duplicate a disk to another disk, execute</p>
186    
187     <p class="newcode">dd_rescue -A -v /dev/old_disk /dev/new_disk</b></p>
188    
189     <p>or to create an image file</p>
190    
191     <p class="newcode">dd_rescue -A -v /dev/old_disk image_file</b></p>
192    
193     <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>
194    
195    
196     <!-- GNU ddrescue -->
197     <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>
198    
199     <p>The GNU site describes GNU ddrescue as a data recovery tool, and lists these features:</p>
200    
201     <ul>
202     <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>
203     <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>
204     <li>It is designed to be fully automatic.</li>
205     <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>
206     <li>The log file is periodically saved to disc. So in case of a crash you can resume the rescue with little recopying.</li>
207     <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>
208     <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>
209     </ul>
210    
211     <p>The algorithm of GNU ddrescue is as follows:</p>
212    
213     <ol>
214     <li>Optionally read a log file describing the status of a multi-part or previously interrupted rescue.</li>
215     <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>
216     <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>
217     <li>Try to read the damaged hardware blocks until the specified number of retries is reached, or until interrupted by the user.</li>
218     <li>Optionally write a log file for later use.</li>
219     </ol>
220    
221     <p><b>Note:</b> GNU ddrescue is considered to be the best recovery tool available.</p>
222    
223     <p>In order to duplicate a disk to another disk, execute</p>
224    
225     <p class="newcode">ddrescue -vr3 /dev/old_disk /dev/new_disk logfile</b></p>
226    
227     <p>or to create an image file</p>
228    
229     <p class="newcode">ddrescue -vr3 /dev/old_disk image_file logfile</b></p>
230    
231     <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>
232    
233     <p>To summarise, we execute:</p>
234    
235     <p class="newcode">ddrescue -vn /dev/old_disk image_file logfile<br>
236     ddrescue -v -r3 -C /dev/old_disk image_file logfile</p>
237    
238     <p><b>Note:</b> When working with CD-ROMs you should probably specific "<b>-b 2048</b>"</p>
239    
240    
241     <!-- Foremost -->
242     <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>
243    
244     <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>
245    
246     <p>It can be run on an image file created with any of the above tools, to extract files:</p>
247    
248     <p class="newcode">foremost -i image -o /recovery/foremost</p>
249    
250     <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>
251    
252     <p class="newcode">foremost -t jpg -i image -o /recovery/foremost</p>
253    
254     <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>
255    
256     <!-- TestDisk -->
257     <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>
258    
259     <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>
260     <br>
261     TestDisk can</p>
262    
263     <ul>
264     <li> Fix partition table, recover deleted partition</li>
265     <li> Recover FAT32 boot sector from its backup</li>
266     <li> Rebuild FAT12/FAT16/FAT32 boot sector</li>
267     <li> Fix FAT tables</li>
268     <li> Rebuild NTFS boot sector</li>
269     <li> Recover NTFS boot sector from its backup</li>
270     <li> Fix MFT using MFT mirror</li>
271     <li> Locate ext2/ext3 Backup SuperBlock</li>
272     </ul>
273    
274     <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.
275     </p>
276    
277     <!-- PhotoRec -->
278     <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>
279    
280     <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>
281     <br>
282     For more safety, PhotoRec uses read-only access to handle the drive or memory support you are about to recover "lost" data from.<br>
283     <br>
284     <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>
285     <br>
286     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>
287    
288    
289    
290     <!-- Links -->
291     <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>
292    
293     <p>This page is a compilation of the following pages:</p>
294    
295     <p>DataRecovery<br>
296     &nbsp;&nbsp;&nbsp;&nbsp;<a href="https://help.ubuntu.com/community/DataRecovery" target="_blank">https://help.ubuntu.com/community/DataRecovery</a></p>
297    
298     <p>Hard Drive Recovery, Ubuntu-Style<br>
299     &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://blogs.sun.com/superpat/tags/ddrescue" target="_blank">http://blogs.sun.com/superpat/tags/ddrescue</a></p>
300    
301     <p>Recover Data and (deleted) Partition with Linux from Hard Drives, CD-ROMs or DVDs<br>
302     &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>
303    
304     <p>dd_rescue<br>
305     &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.garloff.de/kurt/linux/ddrescue/" target="_blank">http://www.garloff.de/kurt/linux/ddrescue/</a></p>
306    
307     <p>gddrescue: a tool for recovering data from damaged media<br>
308     &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>
309    
310     <p>Foremost<br>
311     &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://foremost.sourceforge.net/" target="_blank">http://foremost.sourceforge.net/</a></p>
312    
313     <p>TestDisk<br>
314     &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.cgsecurity.org/wiki/TestDisk" target="_blank">http://www.cgsecurity.org/wiki/TestDisk</a></p>
315    
316     <p>PhotoRec<br>
317     &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.cgsecurity.org/wiki/PhotoRec" target="_blank">http://www.cgsecurity.org/wiki/PhotoRec</a></p>
318    
319    
320     </div>
321    
322    
323    
324     <!--<a name="template-top"></a>-->
325    
326     <div id="footer">
327     <div id="docline-bottom"> <a href="partitions.html">&lt; PREV</a> <a href="doc.html">UP</a> <a href="own-scripts.html">NEXT &gt;</a> </div>
328 sng 141 <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">Spiros Georgaras</a>, 2007-2010<br /><br/>
329 sng 129 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>
330 sng 28 </div>
331     </div>
332 sng 144 <div id="warning" align="center">
333     WARNING<br>
334     This is the BETA version of Clonezilla-SysRescCD<br>
335 sng 145 To acces our current stable version, please click <a href="../index.html">here</a>
336 sng 144 </div>
337 sng 28 </body>
338     </html>

Properties

Name Value
svn:executable *

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26