home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / diskmanager / fsck_1 / hard_help < prev    next >
Text File  |  1996-12-22  |  13KB  |  331 lines

  1. hardfix (1.11) - heavily damaged disc fixer
  2.  
  3. NOTE: this program is SHAREWARE. Read the !SHAREWARE file for more info.
  4.  
  5. hardfix is a disc utility that fixes the errors that can affect the boot
  6. block, the 2 copies of the map and the root directory without having to scan
  7. the whole directory tree. These sort of errors generally make the disc
  8. un-readable or un-writable!
  9. hardfix can also be used to write the bootblock, map and root directory to a
  10. file, so that you can always try to restore them in case they are totally
  11. damaged (ie. absolutely unfixable).
  12.  
  13.  
  14. Index
  15. -----
  16.  
  17. - Usage
  18. - When you need to use it
  19. - The fixable errors
  20. - The logfile
  21. - Notes
  22. - Extra features
  23. - Saved file format
  24. - Disclaimer
  25. - Limitations
  26. - Bugs
  27. - Results achieved up to now
  28. - History
  29. - Credits
  30. - Conditions of use
  31. - Contacting the Author
  32.  
  33.  
  34. Usage
  35. -----
  36.  
  37. hardfix [-options] [-[s|r] savefile] [-l logfile] pathname
  38.   -l   print the results in "logfile"
  39.   -s   save bootblock/map/root sectors to "savefile"
  40.   -r   restore bootblock/map/root sectors from "savefile"
  41.   -Q   ask before fixing
  42.  -1/-2 force to fix the first/second copy of the map
  43.  
  44. If the disc is readable, pathname can contain the disc name (eg.
  45. IDEFS::IDEDisc4.$), otherwise it must contain the disc number (eg.
  46. IDEFS::4.$).
  47.  
  48.  
  49. When you need to use it
  50. -----------------------
  51.  
  52. hardfix should not be used regularly like fsck, since the errors it fixes are
  53. usually really uncommon. Moreover fsck recognises most of the errors hardfix
  54. cures and tells you when it is needed.
  55. Anyway, you can use it regularly to save the important disc data (ie.
  56. bootblock, map and root) to a file, so that you will be able to restore them
  57. if they are completely destroyed for some mysterious reason. Moreover, you
  58. are adviced to save them before trying to fix the map with fsck or with
  59. hardfix itself: if the fix is wrong (especially if it aggravates the
  60. situation!), you can always restore your old data.
  61. Remember that restoring old maps generally causes many file corruptions! In
  62. fact, the map is costantly updated while files are saved/deleted, and even
  63. files that are not updated can be automatically moved around by RISC OS.
  64. If your map is broken, try to fix it with fsck and hardfix and eventually
  65. restore an old one only if you are sure there is nothing better to do!
  66.  
  67.  
  68. The fixable errors
  69. ------------------
  70.  
  71. hardfix is able to fix the following errors:
  72. - bootblock checksum wrong
  73. - bootblock defect list end marker missing
  74. - bootblock defect list checksum wrong
  75. - map cross check wrong
  76. - map copies different
  77. - zone checksum wrong (this is the typical cause of unreadable discs)
  78. - zone free chunk offset wrong
  79. - zone free linked list wrong (this is the typical cause of unwritable discs)
  80. - zone not correctly terminated
  81. - ID too high for the disc shape
  82. - not sector-aligned object
  83. - last object in zone too long
  84. - illegal system files
  85. - root directory identifiers wrong
  86. - root checksum wrong
  87. - root master sequence numbers different
  88. - root endmarker wrong
  89. - root reserved bytes not cleared
  90. - root address wrong
  91.  
  92. The bootblock errors should never appear, unless your disc is *really*
  93. damanged or badly formatted, and will probably be useless to try to fix it.
  94. Moreover it seems that some some disc have been made completely unreadable
  95. after hardfix 'cured' the bootblock checksum (anyway, reformatting and
  96. restoring the map and the root directory using hardfix fixed everything!).
  97. Considering this bad experience I removed the possibility to save the
  98. bootblock from the unregistered version. If you really need it (for example
  99. because the disc is unreadable due to bootblock corrupton) you *must* contact
  100. me (sending the saved disc data) and I will try to investigate. In old
  101. versions of this file I said "you *should* contact the author" but someone
  102. didn't and...
  103.  
  104. The map errors are the most common, especially the ones about free lists, but
  105. can usually be successfully cured.
  106.  
  107. The root directory errors are generally serious since they usually imply that
  108. the directory has been completely overwritten. In this case the only choice
  109. is to restore it from a previously saved file (only the root should be
  110. restored, not the bootblock and map, too!).
  111.  
  112. Using the -Q option you will be asked to choose if the error(s) has to be
  113. fixed or left intact. So you can choose to fix only the map and not the
  114. bootblock, for example.
  115. You will always be asked if the fixes has to be applied to the disc (ie. if
  116. you really want to save the fixed bootblock, map and root directory).
  117.  
  118.  
  119. The logfile
  120. -----------
  121.  
  122. Using the logfile (-l) option is generally really useful: if something
  123. strange happens, the author will be more helpful if he can see exactly what
  124. happened and you don't even have to try to explain what happened when you run
  125. hardfix, the logfile and the saved disc data is usually enough!
  126. The logfile contains exactly what it is printed to the screen, so it should
  127. be really small (nearly 1K on a good disc or nearly 5K on a quite corrupted
  128. one).
  129. You cannot save the logfile to the disc to fix!
  130. If a file with the same name of the logfile already exists, the new data will
  131. be attached at the end of it: in this way, you can attach together two or
  132. more logfiles.
  133.  
  134.  
  135. Notes
  136. -----
  137.  
  138. If the two copies of the map are different, hardfix tries to fix the less
  139. damaged. If they are apparently damaged at the same level, hardfix will ask
  140. you which map to fix. In normal cases, you are adviced to fix the map that
  141. hardfix suggests or, by default, choose the first one.
  142. The -1 and -2 options can be used to force hardfix to try to fix the first or
  143. the second copy, regardless of their state.
  144. Gordian Installer (a commercial protection system) modifies the map creating
  145. some unofficial system file (strictly speaking, the only system files allowed
  146. on E-Format discs are the bootblock, the map and the root directory). hardfix
  147. detects this corruption but always asks you if you want to fix it: if you
  148. have a Gordian protected program installed on the disc you must not fix this
  149. problem, otherwise it will no longer run and you will need a new installation
  150. floppy.
  151.  
  152.  
  153. Extra features
  154. --------------
  155.  
  156. Registered versions fully support 'big' discs (ie discs larger than 512Mb
  157. supported by the new FileCore module for RISC OS 3.60 or later) while the
  158. unregistered version will only show if there are problems but will not save
  159. the fixed data back to the disc.
  160.  
  161. A special features code is available to allow hardfix to write to the
  162. bootblock. Since this may be dangerous I'll not usually allow people to use
  163. this code (unless they need it in order to fix their disc).
  164.  
  165.  
  166. Saved file format
  167. -----------------
  168.  
  169. This is only of interest to people who wants to access to the saved file in
  170. their own programs (probably nobody!).
  171. The saved file has a header that contains the filesystem informations
  172. followed by a series of tagged object.
  173. The header consists of the filesystem name followed by a newline and then the
  174. disc number followed by another newline.
  175. Each tagged object consists of a textual tag of 4 bytes followed by the
  176. object itself. The currently recognised tags are:
  177. "BOOT" - bootblock (512 bytes)
  178. "MAP1" - the first copy of the map (the length can be calculated from the
  179.          bootblock data)
  180. "MAP2" - the second copy of the map (the same length as the first copy)
  181. "ROOT" - the root directory (2048 bytes)
  182. "RSiX" - the RISCiX partition table (only if RISCiX partitioned!) (256 bytes)
  183.  
  184. The bootblock must always come before the map, otherwise the length of the
  185. map cannot be calculated. Only 800K floppies have no bootblock: in this case
  186. the length of the map is 1024 bytes.
  187. The second copy of the map must always follow the first one.
  188. Any other tag is ignored and the file is scanned until a recognised tag is
  189. found. The tags should be word aligned (the alignement refers to the first
  190. tag even if it isn't actually word aligned inside the file because of the
  191. filesystem name).
  192.  
  193.  
  194. Disclaimer
  195. ----------
  196.  
  197. hardfix can be considered a really dangerous program since it can directly
  198. write to the bootblock, map and root directory: these are the key sectors of
  199. a disc, damaging them can result in the complete or partial loss of the data
  200. on the disc.
  201.  
  202. I tried most of the features of hardfix on my disc and on some floppies but I
  203. cannot be completely sure it will work on your disc, too. Always save the
  204. data using the -s option before trying to fix the disc and remember that it's
  205. generally better not to fix the bootblock (actually it isn't possible with
  206. the unregistered version...).
  207. Anyway, if something goes wrong, I am sorry for you but I AM NOT RESPONSIBLE
  208. for any loss of data on your discs, so use hardfix at your own risk.
  209.  
  210.  
  211. Limitations
  212. -----------
  213.  
  214. I think that hardfix is able to cure almost every 'fixable' error I
  215. experienced: this means that it cannot fix a completely damaged disc (ie. if
  216. both copies of the map are overwritten by some random data it can't do
  217. nothing apart from restoring a saved file). Maybe other types of possible
  218. errors exist, I'll try to add a fix for them as soon as someone will
  219. encounter them.
  220.  
  221. hardfix cannot join two adjacent free chunks but I don't think this is a
  222. problem. This limitation could be fixed in future versions.
  223.  
  224. Sometimes, if the map is very corrupted, you will need to run hardfix more
  225. than once for a complete fix.
  226.  
  227.  
  228. Bugs
  229. ----
  230.  
  231. hardfix may have problems with RISCiX partitioned drives: if you have such a
  232. drive and if hardfix wants to fix a map that seems to be good (try CheckMap
  233. and fsck on it) don't let it write the map back to disc!
  234.  
  235.  
  236. Results achieved up to now
  237. --------------------------
  238.  
  239. If you run hardfix on your corrupted HD, please let me know! If it wasn't
  240. able to fix it, I'll try to modify it to cope with your problem. If you want
  241. to stay anonymous tell me not to include your name.
  242.  
  243. Positive results:
  244.  1) some 800K ADFS floppy (used during development).
  245.  2) my 16Mb IDE that I damaged just to see if hardfix worked on it!
  246.  3) 203Mb IDE. Owner: L. Domisse
  247.  4) 87Mb SCSI (Lingenuity interface). Owner: S. Kock
  248.  5) 327Mb SCSI (Acorn interface). Owner: C. Ghezzi
  249.  6) 80Mb SCSI (Lingenuity interface). Owner: N. Bannon
  250.  7) many experiments on my 545Mb IDE (Risc PC), so that now RISC OS
  251.     recognises it as a 545Mb drive even if only 400Mb are formatted...
  252.  
  253. I don't think that hardfix will ever have a long list of fixed disc...
  254.  
  255. Negative results:
  256.  1) 116Mb IDE (Desktop Projects interface). Owner: A.D. Hodgkinson
  257.     Trying to fix the bootblock (the checksum was wrong, apparently it has
  258.     always been wrong...), the disc was made completely unreadable. The
  259.     disc was then formatted and hardfix was able to restore the map and the
  260.     root directory (so that all the disc content was restored!).
  261.  2) 210Mb IDE (Risc PC). Owner: P.B. 
  262.     Trying to fix the bootblock, the defect list was corrupted and the disc
  263.     became completely unreadable/unwritable. This problem no more occurs in
  264.     version > 1.00.
  265.  
  266. I hope that hardfix will never have a long list of failures too!
  267.  
  268.  
  269. History
  270. -------
  271.  
  272. 1.00  -- 11 Oct 94
  273. First released version.
  274.  
  275. 1.01  -- 05 Feb 95
  276. Cured a bug that in some case prevented to fix some strange case of lost free
  277. space in some zone. When restoring the map it tries not to read the disc
  278. shape from the disc itself (because it may be corrupted) but uses the saved
  279. one. Removed the possibility to write the bootblock to disc since it could be
  280. dangerous. Added fix of too high ID and not sector-aligned objects. Fixed
  281. some problem with RISCiX partitioned bootblocks and with bad defect list (not
  282. really useful since the ability to fix bootblocks has been removed!). Added
  283. fix of root address and root reserved bytes.
  284.  
  285. 1.02  -- 12 Jun 95
  286. Fixed defect list checksum calculation that was broken if there was only one
  287. defect. Improved handling of non-ADFS partitioned discs.
  288.  
  289. 1.10  -- 03 Jan 96
  290. Added code-based user registration. Added check for last object in zone too
  291. long. Added support for 'big' discs (registered version only).
  292.  
  293. 1.11  -- 22 Dec 96
  294. Fixed a problem that prevented hardfix from running properly with Panasonic
  295. PD drives. Added check and fix for unofficial system files (including a
  296. warning for Gordian Installed programs). The unregistered version now checks
  297. 'big' discs but will not eventually fix them.
  298.  
  299.  
  300. Credits
  301. -------
  302.  
  303. I'd like to thank the following people who contibuted in some way to the
  304. development of hardfix (in alphabetical order):
  305. - Laurent Domisse who pushed me to write this program to fix his unreadable
  306.   disc (and then unwritable, too!)
  307. - Hans Ole Rafaelsen who tried hardfix on 1.6Mb floppies.
  308.  
  309.  
  310. Conditions of use
  311. -----------------
  312.  
  313. hardfix can only be distributed with the complete fsck suite.
  314. Read the !SHAREWARE file for the conditions of use and distribution of the
  315. whole package.
  316.  
  317.  
  318. Contacting the Author
  319. ---------------------
  320.  
  321. Post:  Sergio Monesi
  322.        Via Trento e Trieste 30
  323.        20046 Biassono (MI)
  324.        Italy
  325.  
  326. EMail: msergio@mbox.vol.it
  327.        pel0015@cdc8g5.cdc.polimi.it
  328.        sergio@freebsd.first.gmd.de
  329.  
  330. WWW:   http://cdc8g5.cdc.polimi.it/~pel0015/
  331.