Amiga Unix — 68040 · 68060

Manual pages › System administration commands (1M)

fsdb_s5(1M)

s5 file system debugger

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

Also by this name: fsdb(1M), System administration commands

NAME

fsdb (s5) - s5 file system debugger

SYNOPSIS

fsdb [-F s5] [generic_options] [-z i-number]  special [-]

DESCRIPTION

generic_options are options supported by the generic fsdb command.

fsdb can be used to patch up a damaged s5 file system after a crash. It has conversions to translate block and i-numbers into their corresponding disk addresses. Also included are mnemonic offsets to access different parts of an i-node. These greatly simplify the process of correcting control block entries or descending the file system tree.

fsdb contains several error-checking routines to verify inode and block addresses. These can be disabled if necessary by invoking fsdb with the optional - argument or by the use of the O symbol. (fsdb reads the i-size and f-size entries from the superblock of the file system as the basis for these checks.) The options are:

-F s5 Specifies the s5-FSType.

-z i-number Clear the i-node identified by i-number. Non-interactive.

Numbers are considered decimal by default. Octal numbers must be prefixed with a zero. During any assignment operation, numbers are checked for a possible truncation error due to a size mismatch between source and destination.

fsdb reads a block at a time and will therefore work with raw as well as block I/O. A buffer management routine is used to retain commonly used blocks of data in order to reduce the number of read system calls. All assignment operations result in an immediate write-through of the corresponding block.

The symbols recognized by fsdb are:
     #            absolute address
     i            convert from i-number to i-node address
     b            convert to block address
     d            directory slot offset
     + , -        address arithmetic
     q            quit
     > , <        save, restore an address
     =            numerical assignment
     =+           incremental assignment
     =-           decremental assignment

     ="           character string assignment
     O            error checking flip flop
     p            general print facilities
     f            file print facility
     B            byte mode
     W            word mode
     D            double word mode
     !            escape to shell

The print facilities generate a formatted output in  various
styles.  The current address is normalized to an appropriate
boundary before  printing  begins.   It  advances  with  the
printing  and  is  left  at  the  address  of  the last item
printed.  The output can be terminated at any time by typing
the  delete  character.   If  a number follows the p symbol,
that many entries are printed.  A check is  made  to  detect
block  boundary  overflows since logically sequential blocks
are generally not physically sequential.  If a count of zero
is  used,  all  entries  to the end of the current block are
printed.  The print options available are:
     i            print as i-nodes
     d            print as directories
     o            print as octal words
     e            print as decimal words
     c            print as characters
     b            print as octal bytes

The f symbol is used to print data blocks associated with the current i-node. If followed by a number, that block of the file is printed. (Blocks are numbered from zero.) The desired print option letter follows the block number, if present, or the f symbol. This print facility works for small as well as large files. It checks for special devices and that the block pointers used to find the data are not zero.

Dots, tabs, and spaces may be used as function delimiters but are not necessary. A line with just a new-line character will increment the current address by the size of the data type last printed. That is, the address is set to the next byte, word, double word, directory entry or i-node, allowing the user to step through a region of a file system. Information is printed in a format appropriate to the data type. Bytes, words and double words are displayed with the octal address followed by the value in octal and decimal. A .B or .D is appended to the address for byte and double word values, respectively. Directories are printed as a directory slot offset followed by the decimal i-number and the character representation of the entry name. I-nodes are printed with labeled fields describing each element.

The following mnemonics are used for i-node examination  and
refer to the current working i-node:
     md           mode
     ln           link count
     uid          user ID number
     gid          group ID number
     sz           file size
     a #          data block numbers (0 - 12)
     at           access time
     mt           modification time
     maj          major device number
     min          minor device number

EXAMPLES

386i prints i-number 386 in an i-node format. This now becomes the current working i-node.

ln=4 changes the link count for the working inode to 4.

ln=+1 increments the link count by 1.

fc prints, in ASCII, block zero of the file associated with the working i-node.

2i.fd prints the first 32 directory entries for the root i-node of this file system.

d5i.fc changes the current i-node to that associated with the 5th directory entry (numbered from zero) found from the above command. The first logical block of the file is then printed in ASCII.

512B.p0o prints the superblock of this file system in octal.

2i.a0b.d7=3 changes the i-number for the seventh directory slot in the root directory to 3. This example also shows how several operations can be combined on one command line.

d7.nm="name" changes the name field in the directory slot to the given string. Quotes are optional when used with nm if the first character is alphabetic.

a2b.p0d prints the third block of the current i-node as directory entries.

SEE ALSO

fsck(1M), generic fsdb(1M).

dir(4), fs(4) in the Programmers Reference Manual