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