Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fsdb_s5(1m) — Atari System V 1.1-06

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fsck(1M)

fsdb(1M)

dir(4)

fs(4)





   fsdb(1M)                           (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.
         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




   8/91                                                                 Page 1









   fsdb(1M)                           (s5)                            fsdb(1M)


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




   Page 2                                                                 8/91









   fsdb(1M)                           (s5)                            fsdb(1M)


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




   8/91                                                                 Page 3





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