Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fsdb_s5(1M) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fsck(1M)

fsdb(1M)

dir(4)

fs(4)



fsdb(1M)                       UNIX System V(s5)                       fsdb(1M)


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




10/89                                                                    Page 1







fsdb(1M)                       UNIX System V(s5)                       fsdb(1M)


            =-           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




Page 2                                                                    10/89







fsdb(1M)                       UNIX System V(s5)                       fsdb(1M)


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











10/89                                                                    Page 3





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