DE.9
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:14k
源码类别:

操作系统开发

开发平台:

C/C++

  1. Command:   de - disk editor
  2. Syntax:    de [-w] block_device
  3.            de -r file
  4. Flags:     -r  Recover a file that has been removed
  5.            -w  Enable writing, so device can be modified
  6. Examples:  de -r /usr/ast/prog.c    #   Undo   the   effects   of:    rm
  7.                                       /usr/ast/prog.c
  8.            de -w /dev/fd0           # Edit /dev/fd0 for writing
  9.      The de program allows a system administrator to examine and  modify
  10. a  MINIX  file  system  device.  Commands  are  available to move to any
  11. address  on  the  disk  and  display  the  disk  block  contents.   This
  12. information  may  be presented in one of three visual modes: as two-byte
  13. words, as ASCII characters or as a bit map. The disk may be searched for
  14. a  string  of  characters.  If  the -w option is given, de will open the
  15. device for writing and  words  may  be  modified.   Without  this  flag,
  16. writing  is  prohibited.  Lost blocks and files can be recovered using a
  17. variety of commands. The -r option supports automated recovery of  files
  18. removed by unlink.
  19. Positioning
  20.      Disks are divided into blocks (also called 'zones') of 1024  bytes.
  21. De  keeps  a  current  address  on the disk as a block number and a byte
  22. offset within the block. In some visual modes the offset is rounded off,
  23. for example, in 'word' mode the offset must be even.
  24.      There are different types  of  blocks  on  a  file  system  device,
  25. including  a  super  block, bit maps, i-nodes and data blocks.  De knows
  26. the type of the current block, but will allow most positioning  commands
  27. and visual modes to function anywhere on the disk.
  28.      The f command (or PGDN on the keypad) moves  forward  to  the  next
  29. block,  similarly  b (PGUP) moves backwards one block.  F (END) moves to
  30. the last block and B (HOME) moves to the first block.
  31.      The arrow keys (or u, d, l, and r) change the  current  address  by
  32. small  increments.  The  size  of  the  increment depends on the current
  33. display mode, as shown below. The various sizes suit  each  display  and
  34. pointers move on the screen to follow each press of an arrow key.
  35.          Mode     Up       Down     Left     Right
  36.          Word     -2       +2       -32      +32
  37.          Block    -64      +64      -1       +1
  38.          Map      -256     +256     -4       +4
  39. The g command allows movement to any specified block.  Like all commands
  40. that  take  arguments,  a prompt and subsequent input are written to the
  41. bottom line of the screen. Numerical entry  may  be  decimal,  octal  or
  42. hexadecimal, for example 234, -1, 070, 0xf3, -X3C.
  43.                                                                         
  44.                                                                         
  45.      While checking an i-node one may want to move to a block listed  as
  46. a  zone  of  the  file.  The G command takes the contents at the current
  47. address in the device as a block number and  indirectly  jumps  to  that
  48. block.
  49.      The address may be set  to  the  start  of  any  i-node  using  the
  50. command  and supplying an i-node number. The I command maps a given file
  51. name into an i-node address.  The file must exist on the current  device
  52. and this device must be mounted.
  53. The Display
  54.      The first line of the display contains the device name, the name of
  55. the  current output file (if one is open) and the current search string.
  56. If de is being run with the -w option then the device  name  is  flagged
  57. with '(w).' If a string is too long to fit on the line it is marked with
  58. '...'.
  59.      The second line contains the current block number, the total number
  60. of  blocks,  and  the  type  of the current block.  The types are: boot,
  61. super, i-node bit map, zone bit map, i-nodes and  data  block.   If  the
  62. current  address  is  within  a  data  block then the string 'in use' is
  63. displayed if the block corresponds to a set in the zone bit map.
  64.      The third line shows the  offset  in  the  current  block.  If  the
  65. current address is within either the i-node or zone bit maps then the i-
  66. node or block number corresponding to the current bit is shown.  If  the
  67. current  address is within an i-node then the i-node number and 'in use'
  68. status is displayed.  If the address is  within  a  bit  map  or  i-node
  69. block,  but  past  the  last  usable entry, then the string 'padding' is
  70. shown.
  71.      The rest of the screen is used to display  data  from  the  current
  72. block.  There  are  three  visual  display  modes:  'word,' 'block,' and
  73. 'map.' The v command followed by w, b, or m  sets  the  current  display
  74. mode.
  75.      In 'word' mode 16 words, of two bytes each,  are  shown  in  either
  76. base  2,  8, 10 or 16. The current base is displayed to the far right of
  77. the screen. It can be changed using the o command followed by either  an
  78. h (hexadecimal), d (decimal), o (octal) or b (binary).
  79.      De knows where i-nodes are, and will  display  the  contents  in  a
  80. readable  format,  including  the  rwx  bits, the user name and the time
  81. field. If the current page is at the beginning of the super block, or an
  82. executable  file or an ar archive, then de will also inform the user. In
  83. all other cases the contents of the 16 words are shown to the  right  as
  84. equivalent ASCII characters.
  85.                                                                         
  86.                                                                         
  87.      In 'block' mode a whole block of 1024 bytes is displayed  as  ASCII
  88. characters,  64  columns  by  16  lines.  Control  codes  are  shown  as
  89. highlighted characters. If the high order bit is set in any of the  1024
  90. bytes  then  an  'MSB' flag is shown on the far right of the screen, but
  91. these bytes are not individually marked.
  92.      In 'map' mode 2048 bits (256 bytes) are displayed from the  top  to
  93. the  bottom  (32 bits) and from the left to the right of the screen. Bit
  94. zero of a byte is towards the top of the screen.  This  visual  mode  is
  95. generally  used  to  observe  the bit map blocks. The number of set bits
  96. displayed is written on the far right of the screen.
  97. Searching
  98.      A search for an  ASCII  string  is  initiated  by  the  /  command.
  99. Control  characters  not  used  for other purposes may be entered in the
  100. search string, for example  CTRL-J  is  an  end-of-line  character.  The
  101. search is from the current position to the end of the current device.
  102.      Once a search string has been defined by  a  use  of  /,  the  next
  103. search may be initiated with the n command, (a / followed immediately by
  104. an ENTER is equivalent to an n).
  105.      Whenever a search is in progress de will append one . to the prompt
  106. line  for  every 500 blocks searched. If the string is found between the
  107. end of the file system and the  actual  end  of  the  device,  then  the
  108. current address is set to the end of the file system.
  109.      Some of the positioning  commands  push  the  current  address  and
  110. visual  mode  in  a stack before going to a new address.  These commands
  111. are B, F, g, G, i, I, n, x and /. The p (previous) command pops the last
  112. address  and  visual  mode  from  the stack. This stack is eight entries
  113. deep.
  114. Modifying the File System
  115.      The s command will prompt for a data  word  and  store  it  at  the
  116. current address on the disk. This is used to change information that can
  117. not be easily changed by any other means.
  118.      The data word is 16 bits wide, it may be entered in decimal,  octal
  119. or  hexadecimal. Remember that the -w option must be specified for the s
  120. command to operate. Be careful when modifying a mounted file system.
  121. Recovering Files
  122.      Any block on the disk may be written to an output  file.   This  is
  123. used  to recover blocks marked as free on the disk. A write command will
  124. request a file name the first time it is used, on subsequent writes  the
  125. data is appended to the current output file.
  126.                                                                         
  127.                                                                         
  128.      The name of the current output file is changed using the c command.
  129. This  file should be on a different file system, to avoid overwriting an
  130. i-node or block before it is recovered.
  131.      An ASCII block is usually recovered using the w command.  All bytes
  132. will have their most significant bit cleared before being written to the
  133. output file. Bytes containing '' or  '177'  are  not  copied.  The  W
  134. command  writes  the  current  block  (1024 bytes exactly) to the output
  135. file.
  136.      When a file is deleted  using  unlink  the  i-node  number  in  the
  137. directory  is  zeroed, but before its removal, it is copied into the end
  138. of the file name field. This allows the i-node of a deleted file  to  be
  139. found  by searching through a directory. The x command asks for the path
  140. name of a lost file, extracts the old  i-node  number  and  changes  the
  141. current disk address to the start of the i-node.
  142.      Once an i-node is found, all of the freed blocks may  be  recovered
  143. by  checking the i-node zone fields, using 'G' to go to a block, writing
  144. it back out using 'w', going back to the i-node with p and advancing  to
  145. the next block. This file extraction process is automated by using the X
  146. command, which goes through the i-node,  indirect  and  double  indirect
  147. blocks  finding  all the block pointers and recovering all the blocks of
  148. the file.
  149.      The X command closes the current output file and asks for the  name
  150. of  a new output file. All of the disk blocks must be marked as free, if
  151. they are not the command stops and the file must be recovered manually.
  152.      When extracting lost blocks de will maintain 'holes' in  the  file.
  153. Thus,  a  recovered sparse file does not allocate unused blocks and will
  154. keep its efficient storage scheme.  This property of the X  command  may
  155. be used to move a sparse file from one device to another.
  156.      Automatic recovery may be initiated by the -r option on the command
  157. line.  Also specified is the path name of a file just removed by unlink.
  158. De determines which mounted file system device held the file  and  opens
  159. it  for  reading.  The  lost  i-node  is found and the file extracted by
  160. automatically performing an x and an X command.
  161.      The recovered file will be written  to  /tmp.  De  will  refuse  to
  162. automatically  recover  a file on the same file system as /tmp. The lost
  163. file must have belonged to the user.  If  automatic  recovery  will  not
  164. complete, then manual recovery may be performed.
  165. Miscellaneous
  166.      The user can terminate a session with de by typing  q,  CTRL-D,  or
  167. the key associated with SIGQUIT.
  168.                                                                         
  169.                                                                         
  170.      The m command invokes the MINIX sh shell as a subprocess.
  171.      For help while using de use h.
  172. Command Summary
  173.    PGUP     b     Back one block
  174.    PGDN     f     Forward one block
  175.    HOME     B     Goto first block
  176.    END      F     Goto last block
  177.    UP       u     Move back 2/64/256 bytes
  178.    DOWN     d     Move forward 2/64/256 bytes
  179.    LEFT     l     Move back 32/1/4 bytes
  180.    RIGHT    r     Move forward 32/1/4 bytes
  181.             g     Goto specified block
  182.             G     Goto block indirectly
  183.             i     Goto specified i-node
  184.             I     Filename to i-node
  185.             /     Search
  186.             n     Next occurrence
  187.             p     Previous address
  188.             h     Help
  189.    EOF      q     Quit
  190.             m     MINIX shell
  191.             v     Visual mode (w b m)
  192.             o     Output base (h d o b)
  193.             c     Change file name
  194.             w     Write ASCII block
  195.             W     Write block exactly
  196.             x     Extract lost directory entry
  197.             X     Extract lost file blocks
  198.             s     Store word
  199. NOTES:  When entering a line in response to a prompt from de there are a
  200. couple  of  editing  characters available. The previous character may be
  201. erased by typing CTRL-H and the whole line may be erased by typing CTRL-
  202. U.  ENTER  terminates  the  input. If DELETE or a non-ASCII character is
  203. typed then the command requesting the input is aborted.
  204.      The commands G, s and X will only function if  the  current  visual
  205. display  mode  is  'word.'  The  commands  i, I and x change the mode to
  206. 'word' on completion. The commands G and / change the mode  to  'block'.
  207. These  restrictions  and  automatic mode conversions are intended to aid
  208. the user.
  209.      The 'map' mode uses special graphic characters, and only  functions
  210. if the user is at the console.
  211.                                                                         
  212.                                                                         
  213.      De generates warnings for illegal user input or if  erroneous  data
  214. is  found  on  the  disk, for example a corrupted magic number. Warnings
  215. appear in the middle of the screen for two  seconds,  then  the  current
  216. page  is  redrawn.  Some  minor  errors, for example, setting an unknown
  217. visual mode, simply  ring  the  bell.  Major  errors,  for  example  I/O
  218. problems on the file system device cause an immediate exit from de.
  219.      The i-node and zone bit maps are  read  from  the  device  when  de
  220. starts up. These determine whether 'in use' or 'not in use' is displayed
  221. in the status field at the top of the screen. The bit maps are  not  re-
  222. read  while  using de and will become out-of-date if observing a mounted
  223. file system.
  224.      De requires termcap definitions for 'cm'  and  'cl'.   Furthermore,
  225. 'so' and 'se' will also be used if available. The ANSI strings generated
  226. by the keypad arrows are recognized, as well  as  any  single  character
  227. codes defined by 'ku', 'kd', 'kl' and 'kr'.
  228. Author
  229.      The de program was written by Terrence Holm.
  230.