Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fsdb(1M_S5) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

dir(4S5)

fs(4S5)

fsck(1M_S5)

fsck(1M)

fsdb(1M)






       fsdb(1M_S5)                     (S5)                     fsdb(1M_S5)


       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.  special is a special device used to indicate the file
             system to be debugged.  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 i-node
             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:




                           Copyright 1994 Novell, Inc.               Page 1













      fsdb(1M_S5)                     (S5)                     fsdb(1M_S5)


                  #            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.




                          Copyright 1994 Novell, Inc.               Page 2













       fsdb(1M_S5)                     (S5)                     fsdb(1M_S5)


             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 i-node
                             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


                           Copyright 1994 Novell, Inc.               Page 3













      fsdb(1M_S5)                     (S5)                     fsdb(1M_S5)


                            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.

      REFERENCES
            s5-specific dir(4S5), s5-specific fs(4S5), s5-specific
            fsck(1M_S5), generic fsck(1M), generic fsdb(1M)


























                          Copyright 1994 Novell, Inc.               Page 4








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026