home *** CD-ROM | disk | FTP | other *** search
/ db.tidbits.com / db.tidbits.com.tar / db.tidbits.com / getbits.acgi?tbser=1255.orig < prev    next >
Text File  |  2010-09-23  |  81KB  |  809 lines

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2.         "http://www.w3.org/TR/html4/loose.dtd">
  3.  
  4. <html lang="en">
  5. <head>
  6.     <meta http-equiv="content-type" content="text/html;charset=utf-8">
  7.     <meta http-equiv="Content-Language" content="en">
  8.     <title>TidBITS: Slipped a Disk?</title>
  9.  
  10.     <meta name="title" content="TidBITS: Slipped a Disk?">
  11.     <meta name="description" content="TidBITS is a free email and Web publication covering the Macintosh Internet community.">
  12.     <link rel="image_src" href="/images/tblogo9.gif" />
  13.     <meta name="keywords" content="Apple, Mac, Macintosh, Mac OS, Mac OS X, newsletter, Internet, analysis, reviews, technology, news, TidBITS, TidBITS Talk, Engst">
  14.     <link rel="Help" href="http://www.tidbits.com/about/about-tidbits.html" title="About TidBITS">
  15.     <link rel="Search" href="http://www.tidbits.com/search/" title="Search All TidBITS Content">
  16.     <link rel="Author" href="http://www.tidbits.com/about/contact-info.html" title="Contact Information">
  17.     <link rel="Contents" href="tb-issues/" title="TidBITS Issue Archive">
  18.     <link rel="alternate" type="application/rss+xml" href="http://db.tidbits.com/feeds/tidbits.rss" title="TidBITS Full Text Feed">
  19.     <link rel="alternate" type="application/rss+xml" href="http://db.tidbits.com/commentfeeds/firehose.xml" title="TidBITS Full Comments Feed">
  20.  
  21.     <link rel="stylesheet" href="/tidbits_2010_001.css" type="text/css">
  22.     <LINK rel="stylesheet" type="text/css" media="print" href="/tb-new-print.css">
  23.     <script src="/javascript/tb.js" type="text/javascript"></script>
  24.     <meta name="viewport" content="width:940">
  25.     <script type='text/javascript' src='http://db.tidbits.com/ads/delivery/spcjs.php?id=2'></script>
  26.     <script src="/javascript/prototype.js" type="text/javascript"></script>
  27. <script src="/javascript/scriptaculous.js" type="text/javascript"></script>
  28. <script src="/js-global/FancyZoom.js" type="text/javascript"></script>
  29. <script src="/js-global/FancyZoomHTML.js" type="text/javascript"></script>
  30. <script type="text/javascript"  src="http://api.recaptcha.net/js/recaptcha_ajax.js"></script>
  31.  
  32. </head>
  33. <body onLoad="setupZoom()">
  34. <!-- popup query -->
  35. <div id="big_ole_background" style="display:none"> </div>
  36. <div id="tipbits_enclosure_preview" style="display:none">
  37. <div class="tearoffbox_wide_container">
  38. <div class="tearoffbox_wide_tips">
  39.  
  40. <div class="tip_display">
  41. <div class="preview">
  42. <h6><span id="p_tips_title"></span></h6>
  43. <p id="p_tips_text"></p>
  44. <p>Visit <a href="javascript:void(0)" id="p_url"><span id="p_label"></span></a></p>
  45. <p class="credit">Submitted by <span id="p_reader"></span></p>
  46. <p><input type="submit" value="Back" name="preview_tip" onClick="preview_box('ts','tipbits_enclosure_preview'); return false;"></p>
  47. </div>
  48. </div>
  49. <div class="tearoffbox_wide_bottom_tips">
  50. </div>
  51.  
  52. </div><!-- end tearoffbox_wide_tips -->
  53. </div><!-- end tearoffbox_wide_container for tips-->
  54. <!-- end tearoff box wide -->
  55. </div><!-- end enclosure -->
  56.  
  57. <div class="popup_box_with_captcha" id="ts" style="display:none">
  58.     <div id="popup_box_thanks" style="display:none" onClick="close_popup_thanks('popup_box_thanks', 'ts')"><br>Thanks for submitting your tip! All submissions are moderated by an editor before appearing online. We've reset the form so you can enter another tip. Or you can close the tip submission box.    <div class="x_close" id="thanks_upper_right"><a href="javascript:void(0)" onmousedown="close_popup_thanks('popup_box_thanks', 'ts'); return true;">Close</a></div></div>
  59.     <div class="tip_box_format">
  60.     <div id="ts_innards" onClick="close_popup_thanks('popup_box_thanks', 'ts')">
  61.         <div class="tip_box_head">TipBITS Submission</div>
  62.         <div class="tip_box_form">        
  63.                 
  64.             <div class="tbf_row" id="ts_message_box" style="display:none">
  65.                 <div class="tbf_wide"><div class="tbf_alert" id="ts_top_message"></div></div>
  66.             </div>
  67.             <div class="spacer"></div>
  68.  
  69.             <form action="foobar.cgi" method="get" name="submit_tip">
  70.  
  71.             <div class="tbf_row"><div class="tbf_wide_extra_top not_bold">Please submit only technical tips that will help other TidBITS readers better use their Macs, iPhones, and related software and hardware. All product announcements should be sent to <a href="mailto:releases@tidbits.com">releases@tidbits.com</a>.</div></div>
  72.             <div class="spacer"></div>
  73.             <div class="tbf_row">
  74.                 <div class="tbf_left">Tip title<span class="required_field">*</span></div><div class="tbf_right"><input type="text" value="" id="tip_title_id" name="tip_title" tabindex="1"></div>
  75.             </div>
  76.             <div class="spacer"></div>
  77.             <div class="tbf_row">
  78.                 <div class="tbf_left">Your tip<span class="required_field">*</span></div><div class="tbf_right"><textarea name="tip_text" rows="3" cols="40" tabindex="2"></textarea></div>
  79.             </div>
  80.             <div class="spacer"></div>
  81.             <div class="tbf_row">
  82.                 <div class="tbf_left">URL</div><div class="tbf_right"><input type="text" value="" name="tip_link_url" tabindex="3"><span class="tip_description"><br>Enter the URL to a Web page that supports your tip.</span></div>
  83.             </div>
  84.             <div class="spacer"></div>
  85.             <div class="tbf_row">
  86.                 <div class="tbf_left">Linked text</div><div class="tbf_right"><input type="text" value="" name="tip_link_label" tabindex="4"><span class="tip_description"><br>Enter the name of the page linked above.</span></div>
  87.             </div>
  88.             <div class="spacer"></div>
  89.             <div class="tbf_row">
  90.                 <div class="tbf_left">Your name<span class="required_field">*</span></div><div class="tbf_right"><input type="text" value="" name="tip_reader_name" tabindex="5"></div>
  91.             </div>
  92.             <div class="spacer"></div>
  93.             <div class="tbf_row">
  94.                 <div class="tbf_left">Your email<span class="required_field">*</span></div><div class="tbf_right"><input type="text" value="" name="tip_reader_email" tabindex="6"></div>
  95.             </div>
  96.             <div class="spacer"></div>
  97.             <div class="spacer"></div>
  98.                 <div class="tbf_wide"><span class="fine_print"><span class="required_field">* indicates required fields</span></span></div>
  99.             <div class="spacer"></div>
  100.             <div class="tbf_row">
  101.                 <div class="tbf_wide_extra_top"><span class="fine_print">To help us avoid automated posts and spam, please enter the words below.</span></div>
  102.             </div>
  103.             <div class="spacer"></div>
  104.             <div class="tbf_row">
  105.                 <div class="tbf_wide"><div id="ts_recaptcha"></div></div>
  106.             </div>
  107.             <div class="spacer"></div>
  108.             <div class="tbf_row">
  109.                 <div class="tbf_wide"><input type="submit" value="Preview Your Tip" name="preview_tip" onClick="fill_preview('tipbits_enclosure_preview', 'ts', this.form); return false;" tabindex="7"> <input type="submit" value="Send Us Your Tip!" name="submit_this_tip" onClick="handle_tip_submission('ts', '', this.form, 'tip'); return false;" tabindex="8"></div>
  110.             </div>
  111.             <div class="spacer"></div>
  112.             <div class="tbf_row">
  113.                 <div class="tbf_wide"><span class="fine_print">When you submit a tip, you give us permission to use it. Read <a href="javascript:void(0)" onClick="generic_show_hide('tip_terms')">our terms</a> for more details. All submissions are reviewed before publication.</span></div>
  114.             </div>
  115.             
  116.             <div class="tbf_row" id="tip_terms" style="display: none">
  117.                 <div class="tbf_wide"><span class="fine_print">Our terms: By submitting a tip, you agree to assign TidBITS Publishing Inc., a non-exclusive, worldwide, perpetual license to reproduce, publish, and distribute your tip in connection with the TidBITS Web site and associated products in any media. You agree that you created the content you submitted, and that you have the right to assign us this license. You give us permission to use your name, but your email address won't be publicly displayed or shared. We review all submissions before publication, and reserve the right to select which submissions we feel are appropriate for our readers and to edit those we publish.</span></div>
  118.             </div>
  119.             <div class="spacer"></div>
  120.             </form>
  121.         </div><!-- end tip_box_form -->
  122.     </div><!-- end tip box innards -->
  123.     </div><!-- end tip box format -->
  124.     
  125.     <div class="x_close" id="ts_upper_right"><a href="javascript:void(0)" onmousedown="HidePopupContent('ts', 'ts', ''); return true;">Close</a></div>
  126.     
  127. </div><!-- end tip_submit box-->
  128.  
  129. <div class="popup_box_with_captcha" id="article_reference" style="display:none"><div class="article_ref_format"><textarea style="width:350px; height:100px;" name="article_ref" id="article_ref_box"></textarea></div>    <div class="x_close" id="article_reference_upper_right"><a href="javascript:void(0)" onmousedown="HidePopupContent('article_reference', 'article_reference', ''); return true;">Close</a></div>
  130. </div>
  131.  
  132. <div class="popup_box_with_captcha" id="comm" style="display:none">
  133.     <div class="tip_box_format">
  134.     <div id="comment_thanks" style="display:none" onClick="close_popup_thanks('comment_thanks', 'comm')"><br>Thanks for submitting a comment! Please check your email for a link that, when clicked, will verify that you're a real person and cause your comment to appear immediately. <div class="x_close" id="comment_upper_right"><a href="javascript:void(0)" onmousedown="close_popup_thanks('comment_thanks', 'comm'); return true;">Close</a></div></div>
  135.     <div id="comm_innards" onClick="close_popup_thanks('comment_thanks', 'comm')">
  136.         <div class="tip_box_head" id="comm_headline">Post a Comment</div>
  137.         <div class="tip_box_form">        
  138.                 
  139.             <div class="tbf_row" id="comm_message_box" style="display:none">
  140.                 <div class="tbf_wide"><div class="tbf_alert" id="comm_top_message"></div></div>
  141.             </div>
  142.             <div class="spacer"></div>
  143.  
  144.             <form action="foobar.cgi" method="get" name="post_comment" id="post_comment">
  145.             <input type="hidden" name="comment_nest" value=''>
  146.             <input type="hidden" name="comment_id" value=''>
  147.             <input type="hidden" name="article_id" value=''>
  148.             <input type="hidden" name="edit" value=''>
  149.             <div class="tbf_row">
  150.                 <div class="tbf_left">In reply to</div>
  151.                 <div class="tbf_right">
  152.                     <div id="cb_quoted_row">
  153.                         <div class='cb_open_quote'>“</div>
  154.                         <div id="cb_quoted"></div>
  155.                         <div class='cb_close_quote'>”</div>
  156.                     </div>
  157.                     <div class="spacer"></div>
  158.                 </div>
  159.             </div>
  160.             <div class="spacer"></div>
  161.  
  162.             <div class="tbf_row">
  163.                 <div class="tbf_left" style="padding-top:0">Your comment</div>
  164.                 <div class="tbf_right"><textarea tabindex="1" name="cb_item_add" id="cb_item_add" rows="4" cols="50" onKeyDown="count_insert('cb_item_add','cb_char_count')"></textarea><br><div class="cb_char_count" id="cb_add_count">Remaining characters: <span id="cb_char_count">0</span></div></div>
  165.             </div>
  166.             <div class="spacer"></div>            
  167.  
  168.             <div class="tbf_row">
  169.                 <div class="tbf_left">Your name</div><div class="tbf_right" style="margin-top:8px"><input tabindex="2" type="text" value="" name="cb_add_name" id="cb_add_name" style="margin-top: -4px"></div>
  170.             </div>
  171.             <div class="spacer"></div>
  172.             
  173.             <div class="tbf_row">
  174.                 <div class="tbf_left">Your email</div><div class="tbf_right"><input tabindex="3" type="text" name="cb_add_email" id="cb_add_email"></div>
  175.             </div>
  176.             <div class="spacer"></div>
  177.             
  178.             <div class="tbf_row">
  179.                 <div class="tbf_left"> </div><div class="tbf_right"><input id="comm_post_comment" tabindex="4" type="submit" value="Post Comment" name="submit_this_comment" style="width:100px; float:right" onClick="cb_post_submit(); return false;"></div>
  180.             </div>
  181.             <div class="spacer"></div>
  182.             
  183.             <div class="tbf_row" id="comment_terms">
  184.                 <div class="tbf_wide"><span class="fine_print">Our terms: We reserve the right to edit or delete any comment, so please post thoughtfully. We use your email address <i>only</i> to send you a one-time verification message confirming that you posted this comment. We also store your address to allow you to verify using other Web browsers in the future. For more info, see our <a href="http://db.tidbits.com/privacy.html">privacy policy</a>.</span></div>
  185.             </div>
  186.             <div class="spacer"></div>
  187.  
  188.             </form>
  189.         </div><!-- end comm_form -->
  190.     </div><!-- end comm box innards -->
  191.     </div><!-- end comm box format -->
  192.     
  193.     <div class="x_close" id="comm_upper_right"><a href="javascript:void(0)" onmousedown="HidePopupContent('comm', 'comm', ''); return true;">Close</a></div>
  194.     
  195. </div><!-- end comm_submit box-->
  196.  
  197.  
  198. <!-- start mainbody -->
  199. <div id="mainbody">
  200.  
  201. <!-- start header -->
  202. <div id="header">
  203.  
  204.  
  205.  
  206.     <div id="tblogo">
  207.     <a href="/"><img src="/images/tblogo20_01.gif" alt="TidBITS: Apple News for the Rest of Us" width="177" height="84" border="0"></a>
  208.  
  209.     </div><!-- end tblogo -->
  210.  
  211.  
  212. <!-- leaderboard ad -->
  213. <div id="top_banner">
  214. <script type='text/javascript'><!--// <![CDATA[
  215.     OA_show(3);
  216. // ]]> --></script><noscript><a target='_blank' href='http://db.tidbits.com/ads/delivery/ck.php?n=TBe5f7021'><img border='0' alt='' src='http://db.tidbits.com/ads/delivery/avw.php?zoneid=3&n=TBe5f7021'></a></noscript>
  217. </div><!-- end top_banner style -->
  218. <!-- end leaderboard ad -->
  219.  
  220.  
  221. </div><!-- end header  -->
  222.  
  223.  
  224. <!-- start content_container -->
  225. <div id="content_container">
  226.  
  227.  
  228. <!-- begin leftcolumn -->
  229. <div id="leftcolumn">
  230.  
  231. <!-- begin leftnav /left navigation -->
  232. <div>
  233.     <ul class="leftnav">
  234.         <!-- start search -->
  235.         <li class="topcorner">
  236.             <form action="http://db.tidbits.com" method="POST" name="search_form"><input type="hidden" name="advanced_search" value=''><input type="text" name="search_text" size="8" maxlength="70" value="Search" onFocus="this.value=''" onBlur="if (this.value == '') { this.value = 'Search'; }"> <span style="margin: 0 5px 0 5px; vertical-align: -2px"><span style="vertical-align: -2px"><input type="image" name="submit_search" src="/images/go_search_button.gif"></span>  <img src="/images/adv_search_button.gif" title="Click for Advanced Search" onClick="var f = document.search_form; f.search_text.value =''; f.advanced_search.value = '1'; f.submit();"></span></form>
  237.         </li>
  238.     </ul>
  239. </div>
  240. <!-- end search -->
  241.  
  242. <!-- Get TidBITS box (temp) -->
  243. <div>
  244.     <ul class="leftnav">
  245.         <li class="gettb"><strong>Get TidBITS via...</strong></li>
  246.     
  247.         <li><a href="http://www.tidbits.com/list" title="Subscribe via email" class="gettb">Email <img src="/images/gettb_button_email.gif" width="12" height="12" border="0" class="nav_img" alt="Email subscription options"></a></li>
  248.         <li><a href="/feeds/tidbits.rss" title="Subscribe via RSS" class="gettb">RSS <img src="/images/feed-icon-12x12.gif" width="12" height="12" border="0" class="nav_img" alt="Subscribe via RSS"></a></li>
  249.         <li><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=276986548" title="Subscribe to the podcast" class="gettb">Podcast <img src="/images/feed-icon-12x12_podcast.gif" width="12" height="12" border="0" class="nav_img" alt="Subscribe to the postcast"></a></li>
  250.         <li><a href="http://www.twitter.com/TidBITS" title="Get Article Updates via Twitter" class="gettb">Twitter <img src="/images/feed_icon_12x12_twitter.png" width="12" height="12" border="0" class="nav_img" alt="Get Article Updates via Twitter"></a></li>
  251.         <li><a href="http://www.facebook.com/pages/TidBITS/195314925519" title="Go to the TidBITS Page at Facebook" class="gettb">Facebook <img src="/images/feed_icon_12x12_facebook.gif" width="12" height="12" border="0" class="nav_img" alt="Go to the TidBITS Page at Facebook"></a></li>
  252.     </ul>
  253. </div>
  254. <!-- end Get TidBITS box -->
  255.     
  256.     <ul class="leftnav">
  257.         <li><a href="/" class="tabhead">TidBITS Home</a></li>
  258.  
  259.         <li><a href="javascript:void(0)" title="Sections" class="tabhead" onClick="return showhide('articleslist')">Sections <span id="articleslist_triangle"><img src="/images/nav_triangle_open.gif" width="9" height="9" border="0" class="navtriangle" id="articleslist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  260.     
  261.     
  262.     </ul>
  263.  
  264. <div id="articleslist" style="display: none"><ul class="leftnav"><li><a href="/section/business" >Business Apps</a></li>
  265. <li><a href="/section/entertainment" >Entertainment</a></li>
  266. <li><a href="/section/links" >External Links</a></li>
  267. <li><a href="/section/home" >Home Macs</a></li>
  268. <li><a href="/section/inside" >Inside TidBITS</a></li>
  269. <li><a href="/section/iphone-ipad-ipod" >iPhone iPad iPod</a></li>
  270. <li><a href="/section/fun" >Just for Fun</a></li>
  271. <li><a href="/section/macs" >Macs & Mac OS X</a></li>
  272. <li><a href="/section/creative" >Media Creation</a></li>
  273. <li><a href="/section/net" >Networking</a></li>
  274. <li><a href="/section/opinion" >Opinion</a></li>
  275. <li><a href="/section/support" >Problem Solving</a></li>
  276. <li><a href="/section/security" >Safe Computing</a></li>
  277. <li><a href="/section/tech" >Tech News</a></li>
  278. <li><a href="/section/watchlist" >Watchlist</a></li>
  279. </ul></div>
  280.  
  281. <div>
  282. <ul class="leftnav">
  283.     <li><a href="javascript:void(0)" onClick="return showhide('stafflist')" title="Staff" class="tabhead">Staff <span id="stafflist_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="stafflist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  284. </ul>
  285. </div>
  286.  
  287. <div id="stafflist" style="display:block"><ul class="leftnav"><li><a href="/author/Adam+C+Engst" title="Adam Engst, Publisher">Adam Engst</a></li>
  288.     <li><a href="/author/Tonya+Engst" title="Tonya Engst, Editor in Chief">Tonya Engst</a></li>
  289.     <li><a href="/author/Jeff+Carlson" title="Jeff Carlson, Managing Editor">Jeff Carlson</a></li>
  290.     <li><a href="/author/Joe+Kissell" title="Joe Kissell, Senior Editor">Joe Kissell</a></li>
  291.     <li><a href="/author/Glenn+Fleishman" title="Glenn Fleishman, Contributing Editor">Glenn Fleishman</a></li>
  292.     <li><a href="/author/Mark+Anbinder" title="Mark Anbinder, Contributing Editor">Mark H. Anbinder</a></li>
  293.     <li><a href="/author/Matt+Neuburg" title="Matt Neuburg, Contributing Editor">Matt Neuburg</a></li>
  294.     <li><a href="/author/Rich+Mogull" title="Rich Mogull, Contributing Editor">Rich Mogull</a></li>
  295.     <li><a href="/author/Lex+Friedman" title="Lex Friedman, Staff Writer">Lex Friedman</a></li>
  296.     </ul>
  297.     </div>
  298.  
  299. <div>
  300. <ul class="leftnav">
  301.  
  302.     <li><a href="javascript:void(0)" title="Issues" class="tabhead" onClick="return showhide('issuelist')">Weekly Issues <span id="issuelist_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="issuelist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  303. </ul>
  304. </div>
  305.  
  306. <div id="issuelist" style="display:none"><ul class="leftnav"><li><div class="special"><form method="post" action="noaction.cgi" onsubmit="return false" id="issue_search_form" name="issue_search_form">Issue # <input type="text" onkeydown="if (event.keyCode == 13) { redirect_issue(this.form); }" id="issue_searchvalue" name="issue_number" style="width:35px; height: 10px"> <input onclick="redirect_issue(this.form)" type="image" name="submit_search" src="/images/go_search_button_blk.gif"></form></div></li><li><A HREF="/issue/1045" >#1045, 20 Sep 10</A></li>
  307. <li><A HREF="/issue/1044" >#1044, 13 Sep 10</A></li>
  308. <li><A HREF="/issue/1043" >#1043, 06 Sep 10</A></li>
  309. <li><A HREF="/issue/1042" >#1042, 30 Aug 10</A></li>
  310. <li><A HREF="/issue/1041" >#1041, 23 Aug 10</A></li>
  311. <li><A HREF="/issue/1040" >#1040, 16 Aug 10</A></li>
  312. <li><A HREF="/issue/1039" >#1039, 09 Aug 10</A></li>
  313. <li><A HREF="/issue/1038" >#1038, 02 Aug 10</A></li>
  314. <li><A HREF="/issue/1037" >#1037, 26 Jul 10</A></li>
  315.  
  316.  
  317. <li><a href="/backissues">Back Issues</a></li></ul></div>
  318.  
  319.  
  320. <div>
  321. <ul class="leftnav">
  322.  
  323.     <li><a href="/tidbitstalk" title="TidBITS Talk" class="tabhead">TidBITS Talk</a></li>
  324. </ul>
  325. </div>
  326.  
  327.  
  328.  
  329. <div>    
  330. <ul class="leftnav">
  331.     <li><a href="javascript:void(0)" onClick="return showhide('abouttidbits')" title="About TidBITS" class="tabhead">About TidBITS <span id="abouttidbits_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="abouttidbits_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  332. </ul>
  333. </div>
  334.  
  335. <div id="abouttidbits" style="display:none">
  336. <ul class="leftnav"><li><a href="/about.html" title="About TidBITS">About Us</a></li><li><a href="/account.html" title="Account Help">Account Help</a></li><li><a href="/advertising.html" title="Advertise with TidBITS!">Advertise</a></li><li><a href="/contact.html" title="Contact Info">Contact</a></li><li><a href="/copyright.html" title="Copyright Terms">Copyright</a></li>
  337. </ul>
  338. </div>
  339.  
  340. <div>
  341. <ul class="leftnav">
  342. <li class="bottom"> </li>
  343. </ul>
  344. </div>
  345. <!-- end leftnav/left navigation -->
  346.  
  347. <!-- making sure nav elements hide/show before page loads --><script type="text/javascript"><!--
  348.     showhide('articleslist','show'); 
  349. // --></script>
  350.  
  351. <!-- begin sponsor_sidebox -->
  352.  
  353. <div class="sponsor_sidebox">
  354.  
  355. <ul>
  356.  
  357. <li><a href="http://www.smithmicro.com/tidbits">Smith Micro</a></li>
  358.  
  359. <li><a href="http://www.thedatarescuecenter.com/">The Data Rescue Center</a></li>
  360.  
  361. <li><a href="http://markspace.com/bits?source=tidbits">Mark/Space</a></li>
  362.  
  363. <li><a href="http://www.tidbits.com/about/support/contributors.html">Readers Like You!</a></li>
  364.  
  365. <li><a href="http://www.econtechnologies.com/tb">Econ Technologies</a></li>
  366.  
  367. <li><a href="http://www.webcrossing.com/">Web Crossing</a></li>
  368.  
  369. <li><a href="http://macte.ch/conf_tidbits">MacTech Conference</a></li>
  370.  
  371. <li><a href="http://nuance.com/dragon/mac">Nuance</a></li>
  372.  
  373. <li><a href="http://www.smilesoftware.com/">Smile</a></li>
  374.  
  375. <li><a href="http://crashplan.com/ref/tidbits.html">CrashPlan</a></li>
  376.  
  377. <li><a href="http://www.usefulfruit.com/tb">Useful Fruit</a></li>
  378.  
  379. </ul><div class='sponsor_sidebox_bottom'> </div>
  380. </div>
  381.  
  382.  
  383. <!-- end sponsor_sidebox -->
  384.  
  385.  
  386. </div> <!-- end leftcolumn div -->
  387.  
  388. <!-- end left column -->
  389.  
  390.  
  391. <!-- begin centercolumn_border -->
  392.  
  393. <div id="centercolumn_border">
  394.  
  395. <div class="center_top">Thoughtful, detailed coverage of the Mac, iPhone, and iPad, plus the best-selling <a href="http://www.takecontrolbooks.com/?pt=TB-TAGLINE" style="color:yellow">Take Control</a> ebooks.</div>
  396.  
  397. <!-- begin centercolumn -->
  398. <div id="centercolumn">
  399.  
  400.  
  401.  
  402. <!-- begin rightcolumn_container -->
  403. <div id="rightcolumn_container">
  404.  
  405. <!-- begin rightcolumn -->
  406.     <!-- rightcolumn is embedded within centercolumn so featured text wraps around it -->
  407.     <div id="rightcolumn">
  408.  
  409. <p class="top"> </p>
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420. <!-- Watchlist items -->
  421. <div class="tearoffbox_wide_container">
  422. <div class="tearoffbox_wide_watchlist">
  423. <p class="tearoffbox_wide_top_watchlist"> </p>
  424.  
  425. <h6><a href="/section/watchlist">TidBITS Watchlist</a></h6>
  426. <ul>
  427.  
  428. <LI><a href="/article/11622">DEVONthink and DEVONnote 2.0.4</a></LI>
  429.  
  430. <LI><a href="/article/11620">Security Update 2010-006</a></LI>
  431.  
  432. <LI><a href="/article/11619">TinkerTool 4.2</a></LI>
  433.  
  434. <LI><a href="/article/11618">Mailplane 2.2</a></LI>
  435.  
  436. <LI><a href="/article/11617">Pro Applications Update 2010-02</a></LI>
  437.  
  438. <LI><a href="/article/11611">Dialectic 1.7</a></LI>
  439.  
  440. <LI><a href="/article/11604">Transmit 4.1.1</a></LI>
  441.  
  442. <LI><a href="/article/11603">MarsEdit 3.1.1</a></LI>
  443.  
  444. <LI><a href="/article/11600">Savescreenie 2.0</a></LI>
  445.  
  446. <LI><a href="/article/11598">1Password 3.4.1</a></LI>
  447.  
  448. </ul>
  449.  
  450. <div class="tearoffbox_wide_bottom_watchlist"> </div>
  451.  
  452. </div><!-- end tearoffbox_wide -->
  453.  
  454. </div><!-- end tearoffbox_wide_container for watchlist items -->
  455.  
  456. <!-- begin tearoff box wide -->
  457.  
  458. <div class="tearoffbox_wide_container">
  459. <div class="tearoffbox_wide_tips">
  460.  
  461. <div class="tip_display">
  462. <div class="tips_sponsor_logo">
  463.  
  464. </div>
  465. <h6>Find Graphics in TextEdit .rtfd Files</h6>
  466. <p><p>Want to find the graphics in a TextEdit document in the .rtfd format? The document is actually a package - a special kind of folder that looks like a file. To see and extract just the graphics, Control-click the document and choose Show Package Contents. A new window opens showing you just the embedded images, along with a TXT.RTF file that contains the text of the file.</p></p>
  467.  
  468. </div>
  469.  
  470. <div class="tearoffbox_wide_bottom_tips">
  471. <div style="padding-bottom:35px"><div class="tip_display" style="float:left"><p><br><a href="/tipbits/243">Link to this tip</a></p></div><div class="tip_display" style="float:right; width:150px">
  472.  
  473. <p class="credit">Written by<br><a href="/author/Adam%20C.%20Engst">Adam C. Engst</a></p></div></div>
  474.  
  475. </div>
  476.  
  477. <div class="tearoffbox_wide_tips_submit">
  478. <form method="post" onsubmit="return false" id="tipbits_form" name="tipbits_form" action="noaction.cgi"><p><a href="javascript:void(0)" onmousedown="ShowTipBox('ts','ts_recaptcha', 50, 'tip_title_id'); return true;">Share your own tip!</a> | <a href="javascript:void(0)" onClick="generic_show_hide('search_tipbits'); document.tipbits_form.tipbits_searchvalue.focus()">Search TipBITS</a></p>
  479. <p style="display:none" id="search_tipbits"><input type="text" onkeydown="if (event.keyCode == 13) { search_tipbits('tipbits_searchvalue'); }" id="tipbits_searchvalue" name="tipbits_searchvalue"> <a href="javascript:void(0)" onClick="search_tipbits('tipbits_searchvalue')">Search</a></p></form>
  480. </div>
  481. <div class="tearoffbox_wide_bottom_tips_submit">
  482.  
  483. </div>
  484.  
  485. </div><!-- end tearoffbox_wide_tips -->
  486. </div><!-- end tearoffbox_wide_container for tips-->
  487. <!-- end tearoff box wide -->
  488.  
  489.  
  490.  
  491. <!-- begin 300 x 250 ad -->
  492.  
  493. <div id="content_ad_square">
  494. <script type='text/javascript'><!--// <![CDATA[
  495.     OA_show(5);
  496. // ]]> --></script><noscript><a target='_blank' href='http://db.tidbits.com/ads/delivery/ck.php?n=TB7671f69'><img border='0' alt='' src='http://db.tidbits.com/ads/delivery/avw.php?zoneid=5&n=TB7671f69'></a></noscript>
  497. </div><!-- end 300 x 250 ad -->
  498.  
  499. <!-- TBTalk items -->
  500. <div class="tearoffbox_wide_container">
  501.  
  502. <div class="tearoffbox_wide_p">
  503. <p class="tearoffbox_wide_top_p"> </p>
  504.  
  505. <h5>Recent TidBITS Talk Discussions</h5>
  506. <ul>
  507.  
  508. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf95241">Alternatives to MobileMe for syncing calendars between iPad/Mac</a> (1 message)</LI>
  509.  
  510. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf94dbb">Free anti-virus for the Mac</a> (20 messages)</LI>
  511.  
  512. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf934e6">iTunes 10 syncing iPod Touch 4.1</a> (2 messages)</LI>
  513.  
  514. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf92a22">Thoughts about Ping</a> (16 messages)</LI>
  515.  
  516. </ul>
  517.  
  518. <div class="tearoffbox_wide_bottom_p"> </div>
  519.  
  520. </div><!-- end tearoffbox_wide -->
  521.  
  522. </div><!-- end tearoffbox_wide_container for TBtalk items -->
  523.  
  524. <!-- start takecontrol_ad -->
  525. <script type='text/javascript'><!--// <![CDATA[
  526.     OA_show(7);
  527. // ]]> --></script><noscript><a target='_blank' href='http://db.tidbits.com/ads/delivery/ck.php?n=TBe46d56f'><img border='0' alt='' src='http://db.tidbits.com/ads/delivery/avw.php?zoneid=7&n=TBe46d56f'></a></noscript><!-- end takecontrol_ad -->
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543. <div id="rightcolumn_bottom">
  544.  
  545. </div>
  546.  
  547.     </div><!-- end rightcolumn -->
  548.  
  549.  
  550. </div><!-- end rightcolumn_container -->
  551.  
  552.  
  553.  
  554. <!-- featured articles -->
  555.  
  556. <div id="center_ajax_sub" class="instapaper_body">
  557.  
  558. <!-- google_ad_section_start -->
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579. <!-- issue, article, or series -->
  580.  
  581.     
  582.     
  583.     
  584.         <!-- start pagehead -->
  585.         <div id="pagehead">
  586.         <h2>Series: Slipped a Disk?</h2>
  587.         <p class="pagesubtitle">Industry expert David Shayer compares all major disk repair utilities for Mac OS X! </p>
  588.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_all_articles('6062,6307')"><span id="showhide_arts_top">Show the full text of all articles</span></a>
  589.         </div><!-- end pagehead -->
  590.     
  591.     
  592.     
  593.         
  594.     <!-- show article(s) -->
  595.     <div class="article"><a name="6062"></a>
  596.     
  597. <!-- comment initialization routine as needed -->
  598. <div class="popup_box_with_captcha" id="hc_6062" style="display: none">
  599.     <div class="tip_box_format">
  600.     <div id="hc_innards_alt_6062" style="display: none">
  601.             <div class="tbf_row">
  602.                 <div class="tbf_wide_80" id="hc_small_response_6062"></div><div class="x_close_row" id="hc_upper_right1_6062"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_6062', 'hc', '6062'); return true;">Close</a></div>
  603.  
  604.             </div>
  605.     </div>
  606.     <div id="hc_innards_6062">
  607.         <div class="tip_box_form">        
  608.             <form action="foobar.cgi" method="get" name="check_human_6062">
  609.             <div class="tbf_row">
  610.                 <div class="tbf_wide_80" id="hc_rc_6062">To help us avoid automated posts and misuse of our site, please enter the words below.</div><div class="x_close_row" id="hc_upper_right2_6062"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_6062', 'hc', '6062'); return true;">Close</a></div>
  611.  
  612.             </div>
  613.             <div class="spacer"></div>
  614.             <div class="tbf_row" id="hc_message_box_6062" style="display:none">
  615.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_6062"></div></div>
  616.             </div>
  617.             <div class="spacer"></div>
  618.             <div class="tbf_row">
  619.                 <div class="tbf_wide"><div id="hc_recaptcha_6062"></div></div>
  620.             </div>
  621.             <div class="spacer"></div>
  622.             <div class="tbf_row">
  623.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '6062', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="7451"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  624.             </div>
  625.             <div class="spacer"></div>
  626.             </form>
  627.         </div><!-- end tip_box_form -->
  628.     </div><!-- end hum box innards -->
  629.     </div><!-- end tip box format -->
  630. </div><!-- end tip_submit box-->
  631.  
  632.  
  633.  
  634.         
  635.         
  636.         <!-- specific article details here -->
  637.         
  638.         
  639.             <p class="series_number">Article 1 of 2 in series</p>
  640.         
  641.     
  642.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  643.         
  644.         <div class="featured_meta"><div class="meta_article">24 Nov 2003 | <a href="/article/7451?print_version=1">Print <span class="shift_up"><img src="/images/printer_icon.gif" alt="Printer-Friendly Version of This Article" border="0" width="9" height="10"></span></a></div></div>
  645.  
  646.         <H2><a href="/article/7451">Shootout at the Disk Repair Corral</a></H2>
  647.  
  648.         <p class="byline">by <a href="/author/David%20Shayer">David Shayer</a> <a href="javascript:void(0)" onClick="document.check_human_6062.submit_type.value='email'; document.check_human_6062.author_id.value='302'; ShowTipBox('hc_6062', 'hc_recaptcha_6062')"><span class="shift_down"><img src="/images/gettb_button_email.gif" height="12" width="12" border="0" alt="Send Email to Author"></span></a></P>
  649.  
  650.         <!-- article text -->
  651.         <div id="article_blurb_6062"><p>Some things are inevitable. Death, taxes, and disk crashes. One day you will try to open an important file, only to receive a dire error message. Or perhaps you'll discover that an entire folder has vanished<span class="readmore_series"><a href="javascript:void(0)" onClick="return showhide_article('6062')">Show full article</a></span></p></div>
  652.         <div id="article_text_6062" style="display:none"><p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('6062')">Hide full article</a></p><P>Some things are inevitable. Death, taxes, and disk crashes. One day you will try to open an important file, only to receive a dire error message. Or perhaps you'll discover that an entire folder has vanished. Worse yet, maybe your Mac won't even boot, thanks to some sort of disk corruption.</P><P>Fortunately, you have a full backup of all your data, so you just restore the missing data from your backup, and you're back in business. What's that you say? The last time you backed up was during the Reagan administration?</P><P>If an ounce of prevention is worth a pound of cure, then surely the most effective disk repair program is actually a reliable backup utility. My favorite is Dantz's Retrospect. But whatever backup program you choose, you must use it regularly, so you have a current backup when your hard disk is called to that great clean room in the sky. (See the TidBITS article series, "Have You Backed Up Today?" for more details on setting up a good backup strategy.)</P><P><<A HREF="http://www.dantz.com/">http://www.dantz.com/</A>><BR><<A HREF="http://db.tidbits.com/series/1041">http://db.tidbits.com/series/1041</A>></P><P>Yet just as so many of us would prefer to lose weight by taking a magic pill rather than through diet and exercise, we'd rather fix a corrupted disk with a disk utility, rather than restoring from a backup, even when a recent backup is available. It can take many hours to do a full restore from a backup, whereas a good disk utility can often fix minor disk errors in minutes.</P><P>Some of the Macintosh world's favorite disk repair programs have recent upgrades, and here I'll compare the Norton Disk Doctor tool in Symantec's Norton Utilities 8.0 ($100), Alsoft's DiskWarrior 3.0 ($80), Micromat's Drive 10 1.1.4 ($70), SubRosaSoft's DiskGuardian 2.2 ($70), and Apple's Disk Utility (free). Although these programs contain a wide variety of disparate features, I concentrate on their disk repair functions in Mac OS X. I chose not to include Prosoft Engineering's Data Rescue X, because it recovers files onto another disk and does not repair the damaged disk itself.</P><P><<A HREF="http://www.symantec.com/nu/nu_mac/">http://www.symantec.com/nu/nu_mac/</A>><BR><<A HREF="http://www.alsoft.com/DiskWarrior/">http://www.alsoft.com/DiskWarrior/</A>><BR><<A HREF="http://www.micromat.com/drive_10/drive_10_introduction.html">http://www.micromat.com/drive_10/drive_10_ introduction.html</A>><BR><<A HREF="http://www.subrosasoft.com/">http://www.subrosasoft.com/</A>><BR><<A HREF="http://www.prosoftengineering.com/products/data_rescue.php">http://www.prosoftengineering.com/products/data _rescue.php</A>></P><P>The user interface and ancillary features of a disk repair program are secondary, because in the event of disaster you care about only one thing: will it get my data back? So let's concentrate on the heart of the issue: what are the most common disk errors you may experience, and which disk repair programs can save your bacon when you're unfortunate enough to suffer disk corruption?</P><P>In my experience, most people run into three general categories of disk problems: hardware failure, bad sectors, and damaged directories. After a brief examination of how you get started with these programs, given that you can't repair an active startup disk in Mac OS X, I look at the worst type of problem - hardware failures, after which I examine the soft errors and compare the performance of the disk repair programs.</P><P><STRONG>Booty Call</STRONG> -- One disadvantage of Mac OS X is that a disk repair program can't safely check the startup disk. Despite this, and the fact that Apple's official line is that checking startup disks is not supported, Norton Disk Doctor and DiskGuardian both allow checking of the startup disk, although they warn against doing so. I consider messing about with startup disks under Mac OS X dangerous, and I advise you not to do it.</P><P>Fortunately, there is a simple solution. Restart in "single user mode" by holding down Command-S while the Mac is starting up. In single user mode, you're dropped into a command line version of Mac OS X, without windows or a mouse pointer. Type "fsck -y" to check (and repair, if necessary) the boot disk, after which you restart the Mac by typing "reboot" (sans quotes for both commands). Disk Utility and fsck rely on the same engine, so running fsck in single user mode is exactly the same as running Disk Utility.</P><P>If you're uncomfortable with the command line for even two commands, you have an alternative. If you boot your Mac using the Mac OS X Installer CD, you can run Disk Utility from there. At the first screen in the Installer, choose Open Disk Utility from the Installer menu.</P><P>What about the other disk repair programs? All except DiskGuardian (for now, but a new version is expected soon) come on bootable CDs. Insert the CD, turn on your Mac, and hold down the C key to force the computer to boot from the CD. Bootable CDs are essential in the event that your hard disk is so badly damaged that your computer won't even start up.</P><P><STRONG>It's Dead, Jim</STRONG> -- Let's look at what can go wrong now. Hardware failure can result from the electronics on the drive's controller board burning out, or the heads or the arm developing mechanical problems. Sometimes a problem with the lubricating grease prevents the disk from spinning or the read arm from moving, causing a problem known as "sticktion."</P><P>These problems are caused by dropping the disk, by defective components, by static discharge, or even by sheer age. Usually the disk won't even show up on the Desktop. As far as the disk utilities go, Drive 10 can detect hardware errors with a "Unit Ready" test, which is just what it sounds like. Drive 10 asks the drive "Are you ready?" and the drive replies "No." This test is mostly helpful for confirming hardware errors you probably already suspect.</P><P>Hopefully there's no vital data locked in the dead drive. No software program can repair a disk with hardware problems. If you desperately need to retrieve the data, your only option is a data recovery company such as DriveSavers, who I've found to be professional, competent, and expensive. (Also see Jeff Carlson's report in "DriveSavers to the Rescue" in <A HREF="http://www.tidbits.com/tb-issues/TidBITS-495.html">TidBITS-495</A>.)</P><P><<A HREF="http://www.drivesavers.com/">http://www.drivesavers.com/</A>><BR><<A HREF="http://db.tidbits.com/article/05530">http://db.tidbits.com/article/05530</A>></P><P><STRONG>Extended Warranties</STRONG> -- If your drive has just suffered a hardware failure, you're probably checking the warranty and hunting for your receipt. Don't despair, even if your computer or external hard drive is out of warranty from the manufacturer. Many hard drives, even those installed in computers, are also covered by longer warranties provided by the OEM (original equipment manufacturer), the company that actually made the drive. If you're willing and able to open a case and remove the drive mechanism, you can take advantage of this warranty.</P><P>Here's the trick. Although you may have bought the computer from Apple, or the drive from VST, those companies don't make drive mechanisms. Instead, your drive was probably made by IBM, Seagate, Maxtor, HP, Western Digital, or another hard drive manufacturer. These companies often offer an independent warranty on their drives, and it's often longer than the warranty on your Mac or external hard drive. Drive mechanism warranties may be two years, and some run as long as five years. Better yet, if you've lost the receipt, the company can sometimes look up a drive's serial number to verify that it's still under warranty.</P><P>Both HP and IBM have replaced dead drives for me, without a receipt, simply by checking my serial numbers. Even better, IBM didn't make 14 GB drives anymore, so they replaced my dead one with a 20 GB unit.</P><P><STRONG>SMART Stuff</STRONG> -- Some modern hard drives have a feature called SMART, which stands for Self-Monitoring, Analysis, and Reporting Technology. Originally developed by IBM, SMART-compliant drives constantly perform diagnostics to monitor variables like drive temperature, spin up time, and how well the heads stay on track. By noting when these physical parameters slip out of spec, SMART can predict some types of drive failure before they happen, giving you time to back up your data and buy a new drive.</P><P>Unfortunately, most hard drives have no way to tell you about an impending disaster; you need a program to query the drive's SMART statistics. Both DiskWarrior and DiskGuardian can check the drive at regular intervals and alert you if they find trouble.</P><P>Using SMART works well if your disk has a factory defect that's slowly getting worse, because it gives you time to move your data to a new disk. But SMART doesn't help you deal with the occasional bad sector or corrupted directory, much less catastrophic hardware failures. Since I don't have a drive with impending hardware failure, I was unable to test the SMART capabilities of DiskWarrior and DiskGuardian.</P><P><STRONG>Unsavory Sectors</STRONG> -- Now it's time to move from pure hardware problems to problems that could be either physical (hardware) or logical (software). Disks are broken up into sectors. Each sector usually holds 512 bytes of data. There are two types of problems that lead to bad sectors: hard errors and soft errors.</P><P>Hard errors are caused by physical damage to the disk surface. Dropping the disk and manufacturing defects are the most common causes of hard errors. Although there's no way to repair hard errors, they can be "fixed" by "sparing" the bad sector. Disks maintain a small number of spare sectors in reserve; when a hard error occurs, the drive controller maps out the bad sector and uses one of the spare sectors in its place.</P><P>How are these bad sectors spared? SCSI hard disks provide a SCSI command - "reassign" - to spare a bad sector. A low-level format also spares any bad sectors. On pre-SCSI disks, a low-level format was the only way to fix bad sectors.</P><P>Many modern disks, including many internal ATA, FireWire, and USB drives, automatically spare sectors with hard errors the next time the sector is written. That's helpful, but if data is stored on that sector, programs may be unable to read it successfully, causing problems and making it difficult to spare. Erasing the disk with Apple's Disk Utility spares any bad sectors if you select the "Zero all data" option.</P><P>What about soft errors? In addition to the 512 bytes of data stored in each sector, a few additional bytes hold an error correction code (ECC). When the sector is written, the drive's controller computes and records the ECC. When the file system later reads that sector, it checks the ECC to make sure the data hasn't been corrupted. If the ECC doesn't match the data, it's called a soft error. The disk surface is fine, but the data on that sector has become scrambled.</P><P>Soft errors can be caused if the disk is jarred while it's writing or if power is lost while writing, either of which can leave a sector half written. Large magnets (such as can be found in electric motors) next to hard disks also tend to have bad effects on the data. As with hard errors, most modern disks repair soft errors automatically the next time the sector is written.</P><P><STRONG>Bad Sector Detector</STRONG> - Norton Disk Doctor, DiskGuardian and Drive 10 (but not DiskWarrior or Disk Utility) claim to detect bad sectors using a test called either a "defective media check" or a "surface scan." Using a proprietary tool that creates soft errors on disks, I tested each program.</P><P>Although Norton Disk Doctor claims to be able to find and repair bad sectors, its defective media check didn't detect the bad sectors on my test disk, erroneously giving it gave a clean bill of health.</P><P>DiskGuardian detected the bad sectors, although it took several hours to run a full check. Unfortunately, it didn't tell me which files used the bad sectors, so I had no way of finding out which files were damaged and would thus need to be restored from backup. DiskGuardian lacks the capability to repair bad sectors.</P><P>Like DiskGuardian, Drive 10 detected the bad sectors, but didn't identify which files were damaged. Confusingly, Drive 10's report describing the damage claimed it could fix the bad sectors, but I couldn't find a command to fix them. Micromat tech support confirmed the report was wrong; Drive 10 can't fix the bad sectors it finds. It's too bad, since Drive 10 could fix the bad sectors merely by writing zeros to them.</P><P>Although Disk Utility cannot scan for bad sectors, it can fix bad sectors on modern disks if you erase the disk with the "Zero all data" option selected.</P><P>I must rate all these products unacceptable in dealing with bad sectors. Even though two could detect bad sectors, none of them could tell you which files contain bad sectors, making it impossible to learn which files you should restore from your backup. Only Disk Utility successfully fixed the bad sectors, but at the price of erasing the entire disk.</P><P><STRONG>Ripping the Yellow Pages</STRONG> -- We've now looked at pure hardware failures, and bad sectors, which can be either hard errors or soft errors, and so far, our disk repair utilities don't help much at all. Now it's time to move on to problems that exist entirely in software, the most common type of which are errors in the directory, which tracks the files and folders on the disk. In the case of directory errors, there is nothing wrong with the drive mechanism or the disk surface; instead, the directory information that's necessary to locate your data on the disk has simply become scrambled. Often your data is intact, if it could just be located.</P><P>As an aside, people with important data sometimes use mirrored disks or RAID arrays, which faithfully duplicate each byte on the main disk to a backup disk. If the main disk suffers a hardware failure or develops a bad sector, the backup disk can save the day. However, it's worth noting that this strategy provides absolutely no protection against directory damage. That's because the RAID faithfully records all data to the backup disk, whether or not that data is good, which results in both the main disk and the backup disk containing corrupt data. I may sound like your mother telling you to eat your vegetables, but the best protection really is regular backups.</P><P>The most common cause of directory damage is crashing. If the computer crashes while a file is being created or saved, causing only part of the change to be written to disk, the directory will contain inconsistent information. Mac OS X crashes far less often than Mac OS 9, but directory-corrupting crashes can and do still occur. Both Mac OS 9 and Mac OS X automatically check and repair the startup disk after a crash, which reduces the incidence of disk damage dramatically.</P><P>A new feature in Mac OS X 10.3 Panther that should reduce directory errors even more is the journalled file system. You can enable it in Disk Utility, and it's usually turned on for disks onto which you install Panther. Here's how journalling works. Before the file system changes the directory, it leaves a note on the disk saying, "I'm going to make this change in the directory." Then the file system makes the change, and once it finishes, it clears the note. If the file system ever sees an incomplete change note on the disk during startup, it knows something bad happened and "rolls back" the directory to its previous state. You will lose your last change, but the directory won't suffer any damage.</P><P>Other causes of damaged directories include buggy programs that write bad data to disk, buggy programs that overwrite cached data waiting to be written to disk, and even bugs in the file system itself. The first two are much less likely in Mac OS X than in Mac OS 9 because of its file privileges and memory protection, respectively. Bugs in the file system are extremely rare but have occurred at times in the past.</P><P>It's worth noting that directory damage is not always readily apparent. A damaged disk may appear to operate perfectly, but regular use can cause minor errors to grow into serious problems. Most directory problems are easy to fix if they're caught early but can be difficult, if not impossible, to fix later. That's why checking and repairing startup disks automatically after a crash is so important, and why it's essential to leave the Check Disk option turned on in Mac OS 9's General Controls control panel (the disk check isn't optional in Mac OS X).</P><P>To test how the disk repair utilities perform with different types of directory errors, I created an HFS+ disk image, copied an assortment of files and folders to it, and then used a low-level disk editor to damage various directory data structures. I then duplicated the damaged disk image, and let each utility try to repair its own copy. Each utility repaired an identical disk image, with identical damage.</P><P><STRONG>Errors Speak Volumes</STRONG> -- For my first test, I started with relatively simple damage in the volume bit map, which is also known as the allocation file. The volume bit map tracks which blocks on the disk contain files, and which are unused. All five utilities fixed my damaged volume bit map easily.</P><P>Next up was damage to the volume header, which tracks vital information about the disk, such as the amount of used and free space, and the locations of the catalog and allocation file. The volume header is stored at the beginning of the HFS+ partition. I erased the volume header's signature, which makes the file system assume the volume header is corrupt and refuse to use the disk. Fortunately, the file system keeps a backup copy of the volume header at the end of the disk; it's imaginatively called the alternate volume header. All five of our utilities successfully repaired the disk, although Drive 10 and DiskGuardian couldn't figure out the name of the damaged disk.</P><P><STRONG>Catalog Catastrophe</STRONG> -- The catalog b-tree tracks all the files and folders on the disk. It's a vitally important part of the directory, and many of my tests focus on it. The catalog is divided into nodes, and each node is divided into records. Most records track a file or folder on the disk, although some contain threads or indexes, which are used internally by the file system to look up files and folders.</P><P>The first node in the catalog is called the header node, which points to other key nodes. I erased the header node. Norton Disk Doctor, DiskWarrior, and Drive 10 recreated the header node properly; Disk Utility and DiskGuardian failed to fix it. Once again, Drive 10 couldn't figure out the name of the damaged disk.</P><P>The header node also contains a map which tracks which nodes are used and which are free. I corrupted this map, but my corruption didn't faze any of the utilities, all of which successfully fixed the header node map.</P><P>The nodes in the catalog are linked together in a precise pattern of connections. Horizontal links connect nodes on the same level, and downward links connect the levels. The file system relies on these links to look up files and folders. I damaged these links. As happened when I erased the catalog header node, Norton Disk Doctor, DiskWarrior, and Drive 10 fixed these links, but Disk Utility and DiskGuardian weren't able to put the links back together.</P><P>File and folder records are stored in alphabetical order in the catalog. I rearranged these records, putting them in random order. All the utilities restored the alphabetical order.</P><P>Certain characters, such as a colon, are illegal in file and folder names. Normally, the operating system prevents you from typing an illegal character when saving a file or creating a folder, but it's not inconceivable that unusual circumstances could cause one to appear. I renamed a folder with a colon by inserting the colon directly into the folder record in the catalog. With this test, the results start to become more interesting. Disk Utility and DiskGuardian didn't detect any problem. Drive 10 noticed the illegal character, but didn't fix it. Norton Disk Doctor and DiskWarrior both fixed it properly by replacing the colon with a legal character.</P><P><STRONG>More Catalog Corruption</STRONG> -- Each catalog node ends with a map that points back to the records in that node. I damaged the map for one of the nodes, which sounds bad, but it's still possible to find the records by calculating the size of each record to find the next record. Disk Utility and Norton Disk Doctor realized there was a problem, but they couldn't fix it. Drive 10 and DiskGuardian both identified and fixed the problem, but in the process lost five and six files, respectively. Partial repair isn't always better than complete failure, since you may believe the disk was repaired successfully and only later - potentially much later - realize that some files have been lost. DiskWarrior fixed the catalog node map properly.</P><P>Next, I changed a thread record to be an unknown type of record, which creates two problems. A thread record that the file system relied upon was missing, and it was confronted by a record with an illegal type. Disk Utility and DiskGuardian detected the corruption, but couldn't fix it. DiskWarrior fixed the problem but lost some of the data in one file. Only Drive 10 and Norton Disk Doctor managed to repair my damage properly.</P><P>Note that DiskWarrior moves any files it suspects may have problems into a folder called Rescued Items. In my tests, most of these files turned out to be fine. This approach has the advantage that it's clear which files may be damaged. But if the Rescued Items folder contains many files, checking them and putting them away can be tedious. Norton Disk Doctor can optionally put aliases to damaged files in a folder, a potentially more helpful feature. But in my tests it didn't work. Norton Disk Doctor also lists the names of damaged files in its report.</P><P>The most important aspect of a file record is the location of the file's data on the disk. One of the worst sorts of directory damage that you may see happens when two files try to occupy the same physical space at the same time. Different utilities refer to this problem as "overlapping extents" or "cross-linked files." In the best case, one file has entirely overwritten the other, since then one file has valid data, while the other's data is completely gone. In the worst case, the two files somehow manage to interleave their data, which results in both being damaged beyond repair. I cross-linked two files, thus damaging the files' catalog records, as well as the volume header and volume bit map. Disk Utility and DiskGuardian repaired the catalog records, the volume header, and the volume bit map, but they didn't actually separate the two files. In contrast, Drive 10, DiskWarrior and Norton Disk Doctor fixed the damage and separated the files. It's important to realize that the data in the overwritten file couldn't be recovered, but not through any failing of these repair programs. When one file overwrites another, the unlucky file has no chance of surviving the encounter.</P><P><STRONG>I See Fragged People</STRONG> -- Some months ago, I wrote an article for TidBITS explaining why defragmenting disks generally isn't worthwhile (see "Optimizing Disks Is a Waste of Time" in <A HREF="http://www.tidbits.com/tb-issues/TidBITS-686.html">TidBITS-686</A>). Although fragmentation is totally normal and acceptable, serious fragmentation requires additional directory structures, and they too can become corrupted and require repair.</P><P><<A HREF="http://db.tidbits.com/article/07254">http://db.tidbits.com/article/07254</A>></P><P>Using another proprietary tool, I fragmented a disk very badly, which breaks files into so many pieces that the file record in the catalog b-tree can't track them all. The file system responds by creating new records in the extents b-tree to help track all the pieces. The extents b-tree is like the catalog b-tree, but exists solely to help track highly fragmented files. Again, severe fragmentation is not inherently a problem, but I had put the disk into a precarious, if legal, state. I then damaged two extent records so the file system couldn't find all the pieces to two files, but I damaged each in a different way. Disk Utility, DiskGuardian, and Drive 10 all detected my damaged extent records, but weren't able to repair the damage. DiskWarrior and Norton Disk Doctor performed better, fixing the problem but losing part of the data in one file. Considering the type of damage I inflicted, they did as well as could be expected.</P><P>HFS+ volumes are enclosed in a "wrapper," which is actually a plain old HFS volume. The reason for the wrapper is historical. Apple first released HFS+ with Mac OS 8.1. If you connected an HFS+-formatted disk to a Mac running Mac OS 8.0 or earlier - in other words, one that understood only the older HFS format, the wrapper kept the older system from deciding the HFS+ disk was damaged and offering to initialize it. For my next test, I damaged the catalog b-tree header node in the wrapper. Disk Utility and DiskGuardian didn't notice anything wrong. Drive 10 and DiskWarrior detected the corrupt wrapper, but didn't fix it. Norton Disk Doctor identified the damage and fixed it properly.</P><P>Disks can contain multiple partitions, which are listed in a partition map at the beginning of the disk. Since disk images don't have partition maps, I used an external FireWire hard disk for this test, in which I damaged the partition map, making the disk driver's partition overlap the HFS partition. Of all these disk repair utilities, only Norton Disk Doctor claims to check partition maps, and indeed it was the only one to detect the problem, although even it proved incapable of fixing the overlapping partition map. Luckily, damaged partition maps are extremely rare, which may be why none of the other utilities bother to check them.</P><P><STRONG>The Grand Finale</STRONG> -- Finally, I decided to recreate the worst damage I've ever seen on a Macintosh hard disk. Starting with the badly fragmented disk above, I corrupted and overwrote various parts of the catalog and extent b-trees. In some nodes I corrupted the node header (not to be confused with the header node), in some I munged the data records, and in others I zapped the record offset map. A few lucky nodes suffered all three types of damage at the hands of my disk editor. Only DiskWarrior was able to bring the disk back to a usable state, although 35 files were either lost or partly damaged. That 35 files were lost or damaged is not an indictment of DiskWarrior; the program couldn't have done any better, considering how much vital information had been destroyed. None of the other utilities managed to repair the disk successfully.</P><P><STRONG>And the Winner Is...</STRONG> Of my 15 tests, DiskWarrior fixed 12 successfully, Norton Disk Doctor fixed 11, Drive 10 fixed 9, DiskGuardian fixed 5, and Disk Utility fixed 4. "Fixed" includes cases where recovery may not have been perfect, but was good enough.</P><P>So what, in my professional opinion, should you do if your disk starts acting up? First, try Apple's free Disk Utility. It may fix only a limited set of problems, but when Disk Utility finds a problem, it's invariably correct, and it applies fixes only when it's absolutely certain it knows the correct fix. I've never seen Disk Utility accidentally make a problem worse, something the other utilities can do, even if only very occasionally.</P><P>If Disk Utility doesn't succeed, let DiskWarrior do battle with your damaged directory. It was our overall winner, and it deserves its excellent reputation. DiskWarrior can also show you a preview of the repairs before you accept them, which lets you check that a damaged file or folder really was fixed before DiskWarrior makes the fix permanent.</P><P>If DiskWarrior fails, give Norton Disk Doctor a try, since it can address some problems that DiskWarrior misses. After that, try sacrificing chickens. Seriously, if the combination of Disk Utility, DiskWarrior, and Norton Disk Doctor can't repair your disk, you can either restore your data from backup, or, if that's not possible, decide if the data is sufficiently important to pay DriveSavers for recovery.</P><P>I still think the most important data protection utility you should own is a backup program. But sometimes a good disk repair program can save the day by repairing minor damage quickly so you don't have to run through the time-consuming process of reinitializing your hard disk and restoring from backup.</P><P>[David Shayer was a senior engineer on Norton Utilities for Macintosh 3.0, 4.0, and 5.0. Before that he worked on Public Utilities, a disk repair program that won the MacUser Magazine Editor's Choice Award, and on Sedit, a low-level disk editor.]</P><P class="paybits">PayBITS: If David's detailed and expert testing told you which<BR>   disk utility you should rely on, reward his efforts via PayBITS!<BR>   <<A HREF="http://www.amazon.com/paypage/P12NE4WQ7K8ODD">http://www.amazon.com/paypage/P12NE4WQ7K8ODD</A>><BR>   Read more about PayBITS: <<A HREF="http://www.tidbits.com/paybits/">http://www.tidbits.com/paybits/</A>></P><!-- Shootout at the Disk Repair Corral David Shayer --></div>
  653.         <div id="article_text_bottom_6062" style="display:none">
  654.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('6062')">Hide full article</a></p><div class="sponsorbox">
  655. <div class="sponsortext"><A HREF="http://www.tidbits.com/about/support/contributors.html"><IMG SRC="http://db.tidbits.com/images/badges/tb-house-ad.gif" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>READERS LIKE YOU! Support TidBITS with a contribution today!<BR /><<a href="http://www.tidbits.com/about/support/contributors.html">http://www.tidbits.com/about/support/contributors.html</a>><BR />Special thanks this week to John & Nichola Collins, Chris Williams,<BR />John K. Lilley, and Honeymoons By Sunset for their generous support!
  656. </div>
  657. </div>
  658. <div class="sponsorbox_bottom"> </div>
  659. </div>
  660.  
  661.         <!-- end article text -->
  662.     
  663.         
  664.  
  665.         
  666.     </div><div class="article"><a name="6307"></a>
  667.     
  668. <!-- comment initialization routine as needed -->
  669. <div class="popup_box_with_captcha" id="hc_6307" style="display: none">
  670.     <div class="tip_box_format">
  671.     <div id="hc_innards_alt_6307" style="display: none">
  672.             <div class="tbf_row">
  673.                 <div class="tbf_wide_80" id="hc_small_response_6307"></div><div class="x_close_row" id="hc_upper_right1_6307"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_6307', 'hc', '6307'); return true;">Close</a></div>
  674.  
  675.             </div>
  676.     </div>
  677.     <div id="hc_innards_6307">
  678.         <div class="tip_box_form">        
  679.             <form action="foobar.cgi" method="get" name="check_human_6307">
  680.             <div class="tbf_row">
  681.                 <div class="tbf_wide_80" id="hc_rc_6307">To help us avoid automated posts and misuse of our site, please enter the words below.</div><div class="x_close_row" id="hc_upper_right2_6307"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_6307', 'hc', '6307'); return true;">Close</a></div>
  682.  
  683.             </div>
  684.             <div class="spacer"></div>
  685.             <div class="tbf_row" id="hc_message_box_6307" style="display:none">
  686.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_6307"></div></div>
  687.             </div>
  688.             <div class="spacer"></div>
  689.             <div class="tbf_row">
  690.                 <div class="tbf_wide"><div id="hc_recaptcha_6307"></div></div>
  691.             </div>
  692.             <div class="spacer"></div>
  693.             <div class="tbf_row">
  694.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '6307', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="7696"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  695.             </div>
  696.             <div class="spacer"></div>
  697.             </form>
  698.         </div><!-- end tip_box_form -->
  699.     </div><!-- end hum box innards -->
  700.     </div><!-- end tip box format -->
  701. </div><!-- end tip_submit box-->
  702.  
  703.  
  704.  
  705.         
  706.         
  707.         <!-- specific article details here -->
  708.         
  709.         
  710.             <p class="series_number">Article 2 of 2 in series</p>
  711.         
  712.     
  713.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  714.         
  715.         <div class="featured_meta"><div class="meta_article">07 Jun 2004 | <a href="/article/7696?print_version=1">Print <span class="shift_up"><img src="/images/printer_icon.gif" alt="Printer-Friendly Version of This Article" border="0" width="9" height="10"></span></a></div></div>
  716.  
  717.         <H2><a href="/article/7696">Tech Tool Pro 4 Joins Our Disk Repair Comparison</a></H2>
  718.  
  719.         <p class="byline">by <a href="/author/David%20Shayer">David Shayer</a> <a href="javascript:void(0)" onClick="document.check_human_6307.submit_type.value='email'; document.check_human_6307.author_id.value='302'; ShowTipBox('hc_6307', 'hc_recaptcha_6307')"><span class="shift_down"><img src="/images/gettb_button_email.gif" height="12" width="12" border="0" alt="Send Email to Author"></span></a></P>
  720.  
  721.         <!-- article text -->
  722.         <div id="article_blurb_6307"><p>A few months ago in TidBITS I compared the various disk repair programs then available for Mac OS X: Norton Utilities 8.0 ($100), DiskWarrior 3.0 ($80), Drive 10 1.1.4 ($70), Disk Guardian 2.2 ($70), and Apple's Disk Utility (free)<span class="readmore_series"><a href="javascript:void(0)" onClick="return showhide_article('6307')">Show full article</a></span></p></div>
  723.         <div id="article_text_6307" style="display:none"><p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('6307')">Hide full article</a></p><P>A few months ago in TidBITS I compared the various disk repair programs then available for Mac OS X: Norton Utilities 8.0 ($100), DiskWarrior 3.0 ($80), Drive 10 1.1.4 ($70), Disk Guardian 2.2 ($70), and Apple's Disk Utility (free). See "Shootout at the Disk Repair Corral" in <A HREF="http://www.tidbits.com/tb-issues/TidBITS-707.html">TidBITS-707</A> for the full details.</P><P><<A HREF="http://db.tidbits.com/article/07451">http://db.tidbits.com/article/07451</A>><BR><<A HREF="http://www.symantec.com/nu/nu_mac/">http://www.symantec.com/nu/nu_mac/</A>><BR><<A HREF="http://www.alsoft.com/DiskWarrior/">http://www.alsoft.com/DiskWarrior/</A>><BR><<A HREF="http://www.micromat.com/drive_10/drive_10_introduction.html">http://www.micromat.com/drive_10/drive_10_ introduction.html</A>><BR><<A HREF="http://www.subrosasoft.com/">http://www.subrosasoft.com/</A>></P><P>But I missed Tech Tool Pro. Micromat had announced TechTool 4 at Macworld Expo San Francisco in January 2003 for $100, but had not yet shipped it nine months later when I wrote the comparison. I didn't want to review TechTool 3, knowing it would soon be out of date. As luck would have it, version 4 finally shipped just as TidBITS published the article.</P><P><<A HREF="http://www.micromat.com/tt_pro_4/tt_pro_4.html">http://www.micromat.com/tt_pro_4/tt_pro_4.html</A>></P><P>In my previous comparison of disk repair utilities, I created 13 different HFS+ disk images, and damaged a different part of the disk on each one. I then duplicated each damaged disk image for each disk utility. I repaired one set of damaged disk images with each disk utility, and recorded how many images were repaired correctly, and how many still had errors, or had lost data. I did not test any of the other features of the disk repair programs. The descriptions of each error are abbreviated here; for more detail see the original article.</P><P>I used the same methodology here as in the original comparison. Using Tech Tool Pro 4.0.2, I attempted to repair the exact same disk errors that were used in the original review. Do note that I'm not reviewing any of the other features of Tech Tool Pro beyond its capability to repair damaged disks.</P><P><STRONG>Free Advice</STRONG> -- A disk repair program can fix many things, but when you drop your Mac in a swimming pool, leave it in the back of a taxi, or lose it to a light-fingered burglar, the only thing that helps is having a current backup copy of your data. If you don't have a current backup, make one today.</P><P>Also, if you are using Mac OS X 10.3 Panther, use Disk Utility to turn on journaling. Journaling enables Mac OS X to fix certain kinds of damage automatically, before you even notice a problem exists.</P><P><STRONG>Bad Sector!</STRONG> Bad sectors are a common problem and can occur when a sector on the disk becomes unreadable, either due to damage to the disk surface, or because the data on the sector becomes scrambled. Although the data will be toast either way, it's relatively easy to repair the disk. In the first case, the bad sector is replaced from a set of spare sectors the disk maintains. In the latter case, new data is written to the sector, replacing the scrambled data. In either case, the original contents of the sector are lost.</P><P>Using a special tool, I created bad sectors with scrambled data. (I had to perform this test on a real disk.) Tech Tool Pro detected the bad sectors, but couldn't fix them. It also didn't say which unlucky files contained the bad sectors, so it doesn't give you any hints as to which files are damaged. This result puts it on par with Drive 10 and Disk Guardian. Disk Utility, Norton Disk Doctor and DiskWarrior didn't even detect the bad sectors.</P><P>It's fairly easy to fix bad sectors on modern disks, and its not that hard to find out which file contains a bad sector. I'm surprised no disk utility has mastered this trick yet, since it would give them a distinct advantage.</P><P><STRONG>Directory Destruction</STRONG> -- All the remaining tests involve damage to the various data structures that Mac OS X uses to track where your files are located on the disk.</P><P>The allocation file tracks which blocks on the disk contain files, and which are empty. Errors in the allocation file are not uncommon. Tech Tool Pro repaired a damaged allocation file easily on my test disk image, as did all the other disk utilities.</P><P>The volume header is a guide to all the other important structures on the disk. Without it, you can't find the allocation file, the catalog file, or any of your files. Erasing the signature in the volume header makes Mac OS X declare the disk corrupt, and refuse to mount it. Tech Tool Pro fixed this problem quickly, as did the other disk utilities.</P><P>The catalog is the single most important data structure on an HFS+ disk. It tracks all your files and folders. I erased the first node of the catalog, a devastating error. Tech Tool Pro repaired it properly, joining Norton Disk Doctor, Drive 10, and DiskWarrior and leaving Disk Guardian and Disk Utility behind.</P><P>The catalog file (and the extents file as well - more on the extents file later) contains a map that records which nodes are in use, and which are free. After I damaged this map, Tech Tool Pro repaired it, just as all the other utilities did.</P><P>The catalog file is set up in a tree structure: branches link together the various file and folder records in a strict order. If the links are damaged, you won't be able to find certain files or folders. Damaged links are one of the more common forms of catalog corruption. Tech Tool Pro repaired this damage perfectly. DiskWarrior, Norton Disk Doctor and Drive 10 also fixed this, although Disk Utility and Disk Guardian couldn't.</P><P>The file and folder records in the catalog are maintained in a specific order. Just as with a library card catalog, if the records lose their order, finding the file or folder you want becomes impossible. Tech Tool Pro fixed this problem, and although it mangled one file name, the data inside the file was fine. All the other disk utilities also handled this error.</P><P>Certain characters are illegal in file names, including colons and composed Unicode characters (don't ask). Although Tech Tool Pro found the illegal colon in a file name, it didn't manage to fix it. Only DiskWarrior and Norton Disk Doctor fixed this error.</P><P>The catalog file is divided into nodes, and the nodes are divided into records. A record stores information about a particular file or folder. At the end of the node is a map which points to each record. If the map becomes corrupt, you can't find the files and folders in that node. Tech Tool Pro managed to fix the mangled map, but in the process it lost five files. Drive 10 and Disk Guardian also lost five and six files respectively fixing this error. Norton Disk Doctor and Disk Utility didn't manage to fix it. Only DiskWarrior fixed the damaged node map properly.</P><P>Threads are special records in the catalog, used to look up folders and resolve aliases quickly. By damaging a thread, I created two problems: the damaged thread record itself, and a broken alias that no longer had a corresponding thread. Tech Tool Pro fixed both problems. Norton Disk Doctor, DiskWarrior, and Drive 10 also succeeded, while Disk Guardian and Disk Utility failed.</P><P>A dangerous situation - called either "overlapping extents" or "cross-linked files" - occurs when the file system thinks two files occupy the same space on the disk. One file (at least) will be overwritten. I extended the length of one file to overlap the beginning of the next file. Tech Tool Pro managed to separate the files without losing any additional data. DiskWarrior, Norton Disk Doctor and Drive 10 fixed my cross-linked files as well, although Disk Utility and Disk Guardian didn't.</P><P><STRONG>No One Expects the Spanish Inquisition</STRONG> -- So far, Tech Tool Pro had done well. The time had come to bring out the comfy chair.</P><P>When a file is badly fragmented, it breaks into too many pieces (called extents) for the catalog to keep track of them all. The additional pieces are tracked in a special file called the extents file. Using a custom tool, I fragmented all the files on the test disk. Then I damaged two of the extent records. Tech Tool Pro detected the problem, but couldn't fix it. Disk Utility, Drive 10 and Disk Guardian couldn't fix them either. DiskWarrior and Norton Disk Doctor put everything right.</P><P>HFS+ volumes are enclosed in a wrapper, which is a relic from the old days when HFS+ was new. For Macs that didn't know about HFS+ in their ROMs, the wrapper provided a bootstrap that let them boot from an HFS+ disk anyway. The wrapper has its own small but complete HFS (not HFS+) file system. So, I damaged the wrapper's catalog file. Tech Tool Pro didn't notice that anything was wrong. It's not alone; only Norton Disk Doctor fixed this obscure problem.</P><P>Some people put several partitions on a hard disk. The partition map tracks the various partitions. I damaged the partition map. As with the bad sectors, I performed this test on a real hard disk, since disk images don't have partition maps. Tech Tool Pro didn't detect the problem. Of the other utilities, only Norton Disk Doctor even noticed this problem, although it couldn't fix it.</P><P>Finally, instead of testing errors individually, I created a disk image with a slew of problems. I messed with the headers in some nodes, the records in various nodes, and the maps in some nodes. Some nodes got hit with all three bits of nasty corruption. I did this in both the catalog and extent files. It took Tech Tool Pro three tries, and on the third try it hung, but it finally did put the disk back together. However, about 50 files were missing. Considering the level of damage, Tech Tool Pro acquitted itself well enough. Only DiskWarrior handled this serious situation better, fixing the disk and losing fewer files. The other utilities tried hard, but as with the king's horses and the king's men, they simply couldn't put Humpty Dumpty together again.</P><P>Of the 15 damaged disk images, Tech Tool Pro repaired 9 of them perfectly or well enough, and did pretty well on the last disk. That stacks up against DiskWarrior with 12 fixes, Norton Utilities with 11, Drive 10 with 9, Disk Guardian with 5 and Disk Utility with 4.</P><P>Micromat says that Tech Tool Pro and Drive 10 (also from Micromat) share the same repair engine, so it's not surprising that the two programs scored nearly identically.</P><P>Although TechTool Pro acquitted itself fairly well, joining Drive 10 in the middle of the pack, I stick with my earlier recommendation for dealing with damaged disks. Try Apple's Disk Utility first (since it's free and isn't likely to create any additional problems), and if Disk Utility fails, hand the damage over to DiskWarrior, which has the best chance of fixing whatever ails your hard disk. And please, keep good backups!</P><P>[David Shayer was a senior engineer on Norton Utilities for Macintosh 3.0, 4.0, and 5.0. Before that he worked on Public Utilities, a disk repair program that won the MacUser Magazine Editor's Choice Award, and on Sedit, a low-level disk editor.]</P><P class="paybits">PayBITS: If David's detailed and expert testing told you which<BR>   disk utility you should rely on, reward his efforts via PayBITS!<BR>   <<A HREF="http://www.amazon.com/paypage/P12NE4WQ7K8ODD">http://www.amazon.com/paypage/P12NE4WQ7K8ODD</A>><BR>   Read more about PayBITS: <<A HREF="http://www.tidbits.com/paybits/">http://www.tidbits.com/paybits/</A>></P><!-- Tech Tool Pro 4 Joins Our Disk Repair Comparison David Shayer --></div>
  724.         <div id="article_text_bottom_6307" style="display:none">
  725.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('6307')">Hide full article</a></p><div class="sponsorbox">
  726. <div class="sponsortext"><A HREF="http://markspace.com/bits?source=tidbits"><IMG SRC="http://db.tidbits.com/images/badges/mark-space.gif" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>SYNC YOUR PHONE with The Missing Sync: Sync your calendar,<br />address book, music, photos and much more between your phone<br />and Mac. Supports ANDROID, BLACKBERRY, PALM PRE and many<br />other phones. <<a href="http://markspace.com/bits?source=tidbits">http://www.markspace.com/bits</a>></div>
  727. </div>
  728. <div class="sponsorbox_bottom"> </div>
  729. </div>
  730.  
  731.         <!-- end article text -->
  732.     
  733.         
  734.  
  735.         
  736.     </div><!-- end show article -->
  737.     
  738.     
  739.     <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_all_articles('6062,6307')"><span id="showhide_arts_bottom">Show the full text of all articles</span></a>
  740.  
  741.  
  742. <!-- article_plus end -->
  743. <!--
  744. </DIV>
  745. --><!-- end main_column DIV -->
  746.  
  747.  
  748. <!-- google_ad_section_end -->
  749.  
  750. </div><!-- end center AJAX insert -->
  751.  
  752. <!-- TipBITS Search Results Lozenge -->
  753. <div id="tipbits_results_loz" style="display:none">
  754. <form method="post" onsubmit="return false" id="tipbits_form_loz" name="tipbits_form_loz" action="noaction.cgi">
  755. <div class="tip_footer">
  756. <p id="search_tipbits_loz"><input type="text" onkeydown="if (event.keyCode == 13) { search_tipbits('tipbits_searchvalue_loz', 'tipbits_results_loz'); }" id="tipbits_searchvalue_loz" name="tipbits_searchvalue_loz"> <a href="javascript:void(0)" onClick="search_tipbits('tipbits_searchvalue_loz', 'tipbits_results_loz')">Search</a></p>
  757. </div>
  758. <div class="tip_footer_bottom">
  759.  </div>
  760. </form>
  761. </div><!-- end TipBITS Search Results lozenge -->
  762.  
  763.  
  764.  
  765.  
  766. <!-- begin footer -->
  767. <div id="footer">
  768.  
  769.  
  770. <p>Special thanks to <a href="http://www.forest.net/">digital.forest</a>, our
  771. Web and mailing list host.</p>
  772.  
  773. <p>TidBITS is copyright © 2010 TidBITS Publishing Inc.</p>
  774. <p>Reuse governed by <a href="http://www.tidbits.com/terms/">Creative Commons License</a>.</p>
  775.  
  776. <p><a href="/about.html" title="About TidBITS">About TidBITS</a> | <a href="/account.html" title="Account Help">Account Help</a> | <a href="/advertising.html" title="Advertise with TidBITS!">Advertise with TidBITS!</a> | <a href="/contact.html" title="Contact Info">Contact Info</a> | <a href="/copyright.html" title="Copyright Terms">Copyright Terms</a></p>
  777.  
  778. </div><!-- end footer -->
  779.  
  780.  
  781. </div> <!-- end centercolumn -->
  782.  
  783. <div class="center_bottom"> </div>
  784.  
  785. </div> <!-- end centercolumn_border -->
  786.  
  787.  
  788. </div> <!-- end content_container -->
  789.  
  790. </div> <!-- end mainbody -->
  791.  
  792.  
  793. <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
  794. </script>
  795. <script type="text/javascript">
  796. _uacct = "UA-276924-3";
  797. urchinTracker();
  798. </script>
  799. <script type="text/javascript"
  800. src="http://tidbitscom.skimlinks.com/api/skimlinks.js"></script>
  801. <script type="text/javascript">
  802. var skimlinks_pub_id = '2559X585851';
  803. var skimlinks_domain = 'go.tidbits.com';
  804. skimlinks();
  805. </script>
  806. </body>
  807. </html>
  808.  
  809.