~ [ source navigation ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Minix Cross Reference
Minix/commands/de/


Name Size Last modified (GMT) Description
Back Parent directory 1996-09-12 21:18:55
File Makefile 240 bytes 1996-04-10 02:28:26
File README 6269 bytes 1996-04-10 02:28:25
C file de.c 24376 bytes 1996-04-10 02:28:25
C file de.h 10912 bytes 1996-07-22 04:44:13
C file de_diskio.c 8236 bytes 1996-04-10 02:28:26
C file de_recover.c 13077 bytes 1996-04-10 02:28:26
C file de_stdin.c 5089 bytes 1996-07-22 04:44:34
C file de_stdout.c 25794 bytes 1996-04-10 02:28:26

  1                 de - A Minix Disk Editor
  2 
  3               Terrence W. Holm, Jan. 1989
  4 
  5 
  6 INTRODUCTION
  7 
  8     The de(1) disk editor allows a system administrator to
  9     look at and modify a Minix file system device. Commands
 10     allow movement throughout a file system device, displaying
 11     information in a couple of formats, writing blocks from
 12     the device onto another file, and rewriting words on the
 13     disk.
 14 
 15     A few changes to the Minix file system aid recovering files.
 16     I-node numbers are retained in directory entries now (they
 17     get moved to the end). And all the i-node information is not
 18     zeroed-out when a file is unlinked. So, after a file is
 19     accidently rm(1)'ed, you can find the old i-node, and then
 20     manually (or automatically) go to each of the freed blocks
 21     and write them to a new file.
 22 
 23 
 24 USES FOR THE DISK EDITOR
 25 
 26     1)  EDUCATION. Students can look at a file system in
 27         a painless manner. For example you don't have to
 28         use od(1) to look at the zone numbers in i-nodes.
 29 
 30         A simple assignment is to change the size of an un-mounted
 31         floppy disk file system from 360 to 300 blocks. (A more
 32         difficult assignment is to explain why this works, even
 33         though fsck(1) and df(1) do not report the correct number
 34         of free blocks. :-)
 35 
 36     2)  ADMINISTRATION. You can visually check inconsistencies
 37         reported by fsck(1) before letting fsck(1) fix them.
 38         You can change any word on the disk, this greatly simplifies
 39         editing file system information. For example, changing the
 40         size of a block special device is actually fun, no more
 41         "blind" writing to your partitions.
 42 
 43         Bit maps can be displayed with 2048 "bits" per screen,
 44         (on the IBM/PC console), see how your zones are allocated!
 45 
 46     3)  RECOVERING LOST FILES. You can search a disk for an ASCII
 47         string, once found, the block can be written out to a file.
 48 
 49         A one line change to fs/path.c allows users to get the i-node
 50         number for a file after it has been removed from a directory.
 51 
 52         Another couple lines changed in the file system keep the
 53         i-node information available until the i-node is reused
 54         (normally this information is zeroed out when an i-node is
 55         released.) This allows a de(1) user to go to a released
 56         i-node, get all the block numbers, go to these blocks and
 57         write them back to a new file.
 58 
 59         The whole recovery process is automated by running "de -r file".
 60         So, IF a file is unlink(2)'ed (eg. "rm file"), AND IF no one
 61         allocates a new i-node or block in the mean-time, THEN you
 62         can recover the file.
 63 
 64 
 65 RECOVERY SECURITY
 66 
 67     Normally Minix hard disk partitions are r/w only by the super-user,
 68     and floppy disks are r/w by anyone. This means that only "root"
 69     can look at hard disk partitions, but others can use de(1) to play
 70     with their floppy disks.
 71 
 72     When recovering files ("de -r file"), a user requires access to
 73     the major file system partitions. This can be done by:
 74 
 75         (a) Give everyone access to the hard disks. DON'T DO THIS, it
 76             defeats all the file system protection we already have.
 77 
 78         (b) Make de(1) set-uid "root". This is the way to go, IF you
 79             are running a Minix system that has NO ACCESS from the
 80             outside. This allows anyone to execute "de -r file", but only
 81             root to use "de /dev/hd3". De(1) does some checking when
 82             retrieving lost blocks, eg. making sure they really are
 83             free blocks and making sure the user owned the i-node.
 84             BUT, file system information has been lost when the file
 85             was unlink(2)'ed, so de(1) can not be 100% sure that a
 86             recovered block really belonged to the user. THIS IS A
 87             SECURITY HOLE. [Since the only access to my machine is from
 88             observable terminals and their associated humans, I run
 89             de(1) as set-uid root.]
 90 
 91         (c) Keep the disks rw-------, and don't set-uid de(1). This
 92             means that only the super-user can recover lost files.
 93             So, if you accidently "rm", you must tell the system
 94             administrator to "su" and recover your file, (be sure to
 95             inform the other users to stop whatever they are doing
 96             until the file is restored).
 97 
 98 
 99 INSTALLATION
100 
101         - Install de.1 in /usr/man/cat1.
102 
103         - Install the files: Makefile, README, de.h, de.c, de_stdin.c,
104           de_stdout.c, de_diskio.c and de_recover.c in commands/de.
105           Add -F and -T. to the Makefile, if necessary.
106 
107         - "make" de(1). If a header file is not found, don't worry:
108           You probably have it somewhere, just link it to what de(1)
109           is looking for. This program also requires the subroutine
110           tolower(3), see EFTH MINIX report #50, if you don't have it.
111 
112         - Do you really want set-uid root on de?
113 
114         - Patch the files fs/path.c, fs/link.c and fs/open.c. If
115           you don't patch the file system then the recover option
116           "-r" and associated commands ('x' and 'X') will not work,
117           but de(1) is still functional and useful.
118 
119         - "make" a new fs, using -DRECOVER. Rebuild a boot diskette.
120 
121 
122 USING DE(1) FOR THE FIRST TIME
123 
124     De(1) starts up in "word" mode at block 0 of the specified
125     device. Hit the PGDN (or space bar) a few times, observing
126     all the information on the screen. Each PGUP/PGDN moves to
127     the next 1024 byte block, (de(1) only knows about 1 block per
128     zone file systems). Note that "word" mode only displays 32
129     bytes at a time, so you are only observing the first 32 bytes
130     in the first few blocks when you skip using PGDN.
131 
132     Now go back to block 3, (zone bit map), using "g 3 ENTER".
133     Change to "map" mode "v m", and then use the down arrow key
134     to check each 2 Megs in the zone bit map.
135 
136     Now change to "block" mode using "v b". And go to some data
137     block, eg. "g 1000 ENTER". Use PGUP/PGDN to see what data
138     is in each nearby block.
139 
140     Remember 'h' gives you a help page.
141 
142     Try some more commands, for example: 'END', 'I', '/'.
143     (Note: searching through a whole disk under Minix takes a
144     long time: 30-60 seconds per megabyte, depending on your
145     machine, drive and controller, [Minix is embarrassingly slow].)
146 
147     Don't worry about looking at a mounted device, you must specify
148     the "-w" option before the 's' command is operational, and
149     this command is the only one which will try to modify the
150     contents of the device.
151 
152 
153 MINIX-ST
154 
155     Please contact me if you are interesting in attempting a port
156     to MINIX-ST.

~ [ source navigation ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.