Annotation of 43BSDReno/sbin/fsdb/fsdb.8, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1988 Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" This code is derived from software contributed to Berkeley by
                      5: .\" Computer Consoles Inc.
                      6: .\"
                      7: .\" Redistribution and use in source and binary forms are permitted provided
                      8: .\" that: (1) source distributions retain this entire copyright notice and
                      9: .\" comment, and (2) distributions including binaries display the following
                     10: .\" acknowledgement:  ``This product includes software developed by the
                     11: .\" University of California, Berkeley and its contributors'' in the
                     12: .\" documentation or other materials provided with the distribution and in
                     13: .\" all advertising materials mentioning features or use of this software.
                     14: .\" Neither the name of the University nor the names of its contributors may
                     15: .\" be used to endorse or promote products derived from this software without
                     16: .\" specific prior written permission.
                     17: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
                     18: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
                     19: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     20: .\"
                     21: .\"    @(#)fsdb.8      6.3 (Berkeley) 6/24/90
                     22: .\"
                     23: .TH FSDB 8 "June 24, 1990"
                     24: .UC 7
                     25: .SH NAME
                     26: fsdb \- file system debugger
                     27: .SH SYNOPSIS
                     28: .B fsdb
                     29: .RB [ options ]
                     30: special
                     31: .SH OPTIONS
                     32: The options available to
                     33: .I fsdb\^
                     34: are:
                     35: .RS
                     36: .PD 0
                     37: .TP 13
                     38: .B -?
                     39: display usage
                     40: .TP 13
                     41: .B -o
                     42: override some error conditions
                     43: .TP 13
                     44: .B "-p'string'\^"
                     45: set prompt to string
                     46: .TP 13
                     47: .B -w
                     48: open for write
                     49: .PD
                     50: .RE
                     51: .SH DESCRIPTION
                     52: Since
                     53: .I fsdb
                     54: reads the disk raw,
                     55: it is able to circumvent normal
                     56: file system security.
                     57: Extreme caution is advised
                     58: in determining its availability
                     59: on the system.
                     60: Suggested permissions are 600
                     61: and owned by bin.
                     62: .PP
                     63: .I Fsdb\^
                     64: can be used
                     65: to patch up 
                     66: a damaged file system
                     67: after a crash.
                     68: It has conversions
                     69: to translate block and i-numbers
                     70: into their corresponding disk addresses.
                     71: Also included are mnemonic offsets
                     72: to access different parts
                     73: of an inode.
                     74: These greatly simplify the process
                     75: of correcting control block entries
                     76: or descending the file system tree.
                     77: .PP
                     78: .I Fsdb\^
                     79: contains several error-checking routines
                     80: to verify inode and block addresses.
                     81: These can be disabled if necessary 
                     82: by invoking 
                     83: .I fsdb\^
                     84: with the
                     85: .IR \-o
                     86: option
                     87: or by the use of the
                     88: .IR o
                     89: command.
                     90: .PP
                     91: .I Fsdb\^
                     92: reads a block at a time
                     93: and will therefore work with raw as well as block
                     94: I/O. 
                     95: A buffer management routine 
                     96: is used to retain commonly used
                     97: blocks of data
                     98: in order to reduce the number of read system calls.
                     99: All assignment operations result
                    100: in an immediate write-through
                    101: of the corresponding block.
                    102: Note that in order to modify
                    103: any portion of the disk,
                    104: .IR fsdb
                    105: must be invoked with the
                    106: .IR -w
                    107: option.
                    108: .PP
                    109: Wherever possible,
                    110: .IR adb- like
                    111: syntax was adopted
                    112: to promote the use
                    113: of
                    114: .IR fsdb
                    115: through familiarity.
                    116: .PP
                    117: Numbers are considered hexadecimal by default.
                    118: However, the user has control over how data is
                    119: to be displayed
                    120: or accepted.
                    121: The
                    122: .IR base
                    123: command will display
                    124: or set the input/output base.
                    125: Once set,
                    126: all input will default to this base
                    127: and all output will be shown in this base.
                    128: The base can be overriden temporarily for input by
                    129: preceding hexadecimal numbers with '0x', preceding
                    130: decimal numbers with '0t', or
                    131: octal numbers with '0'.
                    132: Hexadecimal numbers beginning with a-f or A-F must
                    133: be preceded with '0x'
                    134: to distinguish them from commands.
                    135: .PP
                    136: Disk addressing by
                    137: .IR fsdb
                    138: is at the byte level.
                    139: However,
                    140: .IR fsdb
                    141: offers many commands to convert
                    142: a desired inode, directory entry,
                    143: block, superblock etc. to a
                    144: byte address.
                    145: Once the address has been calculated,
                    146: .IR fsdb
                    147: will record the result in
                    148: .IR dot
                    149: (see next paragraph).
                    150: .PP
                    151: Several global values are maintained by
                    152: .IR fsdb :
                    153: the current base (referred to as
                    154: .IR base ),
                    155: the current address (referred to as
                    156: .IR dot ),
                    157: the current inode (referred to as
                    158: .IR inode ),
                    159: the current count (referred to as
                    160: .IR count ),
                    161: and the current type (referred to as
                    162: .IR type ).
                    163: Most commands use the preset value of
                    164: .IR dot
                    165: in
                    166: their execution.
                    167: For example,
                    168: .RS
                    169: .PD 0
                    170: .TP 7.2n
                    171: > 2:inode
                    172: .PD
                    173: .RE
                    174: will first set the value of
                    175: .IR dot
                    176: to 2, ':' will alert the start of a command,
                    177: and the
                    178: .IR inode
                    179: command will set
                    180: .IR inode
                    181: to 2.
                    182: A count is specified after a ','.
                    183: Once set,
                    184: .IR count
                    185: will remain at this value
                    186: until a new command is encountered
                    187: which will then reset the value back to 1 (the default).
                    188: So, if
                    189: .RS
                    190: .PD 0
                    191: .TP 7.2n
                    192: > 2000,400/X
                    193: .PD
                    194: .RE
                    195: is typed,
                    196: 400 hex longs are listed
                    197: from 2000,
                    198: and when completed,
                    199: the value of
                    200: .IR dot
                    201: will be 2000 + 400 * sizeof (long).
                    202: If a carriage-return is then typed,
                    203: the output routine will use the
                    204: current values of
                    205: .IR dot ,
                    206: .IR count ,
                    207: and
                    208: .IR type
                    209: and display 400 more hex longs.
                    210: A '*' will cause the entire block to
                    211: be displayed.
                    212: .PP
                    213: End of fragment, block and file are maintained by
                    214: .IR fsdb.
                    215: When displaying data as fragments or blocks,
                    216: an error message will be displayed when the end of fragment
                    217: or block is reached.
                    218: When displaying data using the
                    219: .IR db,
                    220: .IR ib,
                    221: .IR directory,
                    222: or
                    223: .IR file
                    224: commands an error message is displayed if the
                    225: end of file is reached.
                    226: This is mainly needed
                    227: to avoid passing the
                    228: end of a directory or file
                    229: and getting unknown and unwanted results.
                    230: .PP
                    231: An example showing several commands and
                    232: the use of carriage-return would be:
                    233: .RS
                    234: .PD 0
                    235: .TP 7.2n
                    236: > 2:ino; 0:dir?d
                    237: .br
                    238: or
                    239: .PD
                    240: .RE
                    241: .RS
                    242: .PD 0
                    243: .TP 7.2n
                    244: > 2:ino; 0:db:block?d
                    245: .PD
                    246: .RE
                    247: The two examples are synonymous for getting to the first
                    248: directory entry of the root of the file system.
                    249: Once there,
                    250: subsequent carriage-returns (or +, -) will advance to subsequent
                    251: entries.
                    252: Note that
                    253: .RS
                    254: .PD 0
                    255: .TP 7.2n
                    256: > 2:inode; :ls
                    257: .br
                    258: or
                    259: .PD
                    260: .RE
                    261: .RS
                    262: .PD 0
                    263: .TP 7.2n
                    264: > :ls /
                    265: .PD
                    266: .RE
                    267: is again synonymous.
                    268: .SH EXPRESSIONS
                    269: .PP
                    270: The symbols recognized by
                    271: .I fsdb\^
                    272: are:
                    273: .TP 7.2n
                    274: .B carriage-return
                    275: update the value of
                    276: .IR dot
                    277: by the current value of
                    278: .IR type
                    279: and display using the current value of
                    280: .IR count .
                    281: .TP 7.2n
                    282: .B #
                    283: numeric expressions may be composed of +, -, *, and % operators
                    284: (evaluated left to right) and may use parentheses.  Once evaluated,
                    285: the value of
                    286: .IR dot
                    287: is updated.
                    288: .TP 7.2n
                    289: .BI , " count"\^
                    290: count indicator.  The global value of
                    291: .IR count
                    292: will be updated to 
                    293: .IR count .
                    294: The value of
                    295: .IR count
                    296: will remain until a new command is run.
                    297: A count specifier of '*' will attempt to show a
                    298: .IR blocks's
                    299: worth of information.
                    300: The default for
                    301: .IR count
                    302: is 1.
                    303: .TP 7.2n
                    304: .BI ? " f\^"
                    305: display in structured style with format
                    306: specifier
                    307: .IR f
                    308: (see FORMATTED OUTPUT section).
                    309: .TP 7.2n
                    310: .BI / " f\^"
                    311: display in unstructured style with format
                    312: specifier
                    313: .IR f
                    314: (see FORMATTED OUTPUT section).
                    315: .TP 7.2n
                    316: .B .
                    317: the value of
                    318: .IR dot .
                    319: .TP 7.2n
                    320: .BI + "e\^"
                    321: increment the value of
                    322: .IR dot
                    323: by the expression
                    324: .IR e.
                    325: The amount actually incremented is dependent
                    326: on the size of
                    327: .IR type :
                    328: .br
                    329: .nf
                    330:      dot = dot + e * sizeof (type)
                    331: .fi
                    332: The default for
                    333: .IR e
                    334: is 1.
                    335: .TP 7.2n
                    336: .BI - "e\^"
                    337: decrement the value of
                    338: .IR dot
                    339: by the expression
                    340: .IR e
                    341: (see +).
                    342: .TP 7.2n
                    343: .BI * "e\^"
                    344: multiply the value of
                    345: .IR dot
                    346: by the expression
                    347: .IR e.
                    348: Multiplication and division don't
                    349: use
                    350: .IR type.
                    351: In the above calculation of
                    352: .IR dot ,
                    353: consider the
                    354: sizeof (
                    355: .IR type )
                    356: to be 1.
                    357: .TP 7.2n
                    358: .BI % "e\^"
                    359: divide the value of
                    360: .IR dot
                    361: by the expression
                    362: .IR e
                    363: (see *).
                    364: .TP 7.2n
                    365: .BI < " name\^"
                    366: restore an address saved in register
                    367: .IR name .
                    368: .IR name
                    369: must be a single letter or digit.
                    370: .TP 7.2n
                    371: .BI > " name\^"
                    372: save an address in register
                    373: .IR name .
                    374: .IR name
                    375: must be a single letter or digit.
                    376: .TP 7.2n
                    377: .BI = " f"
                    378: display indicator.
                    379: If
                    380: .IR f
                    381: is a legitimate format specifier
                    382: (see FORMATTED OUTPUT
                    383: section),
                    384: then the value of
                    385: .IR dot
                    386: is displayed using
                    387: format specifier
                    388: .IR f .
                    389: Otherwise,
                    390: assignment is assumed
                    391: (see next item).
                    392: .TP 7.2n
                    393: .BI = " [s] [e]\^"
                    394: assignment indicator.
                    395: The address pointed to by
                    396: .IR dot
                    397: has its contents changed to the value of the
                    398: expression
                    399: .IR e
                    400: or to the
                    401: .IR ASCII
                    402: representation of the
                    403: quoted (") string
                    404: .IR s.
                    405: This may be useful for changing
                    406: directory names or
                    407: .IR ASCII
                    408: file information.
                    409: .TP 7.2n
                    410: .BI =+ " e\^"
                    411: incremental assignment.
                    412: The address pointed to by
                    413: .IR dot
                    414: has its contents incremented by expression
                    415: .IR e .
                    416: .TP 7.2n
                    417: .BI =- " e\^"
                    418: decremental assignment.
                    419: The address pointed to by
                    420: .IR dot
                    421: has its contents decremented by expression
                    422: .IR e .
                    423: .SH COMMANDS
                    424: .PP
                    425: A command must be prefixed by a ':' character.
                    426: Only enough letters of the command
                    427: to uniquely
                    428: distinguish it are needed.
                    429: Multiple commands may be entered
                    430: on one line by separating
                    431: them by a space, tab or ';'.
                    432: .PP
                    433: In order to view a potentially
                    434: unmounted disk in a reasonable
                    435: manner,
                    436: .I fsdb\^
                    437: offers the
                    438: .IR cd ,
                    439: .IR pwd ,
                    440: .IR ls
                    441: and
                    442: .IR find
                    443: commands.
                    444: The functionality of these
                    445: commands substantially matches those of
                    446: its
                    447: .IR UNIX
                    448: counterparts
                    449: (see individual command for details).
                    450: The '*', '?', and '[-]' wild card
                    451: characters are available.
                    452: .TP 7.2n
                    453: .BI base=b
                    454: display or set base.  As stated above,
                    455: all input and output is governed by
                    456: the current
                    457: .IR base .
                    458: If the '=b' is left off,
                    459: the current
                    460: .IR base
                    461: is displayed.
                    462: Otherwise, the current
                    463: .IR base
                    464: is set
                    465: to
                    466: .IR b.
                    467: Note that this is interpreted
                    468: using the old value of
                    469: .IR base ,
                    470: so to ensure correctness use the '0', '0t', or '0x'
                    471: prefix when changing the
                    472: .IR base.
                    473: The default for
                    474: .IR base
                    475: is hexadecimal.
                    476: .TP 7.2n
                    477: .B block
                    478: convert the value of
                    479: .IR dot
                    480: to a block address.
                    481: .TP 7.2n
                    482: .B cd dir
                    483: change the current directory
                    484: to directory
                    485: .IR dir.
                    486: The current values of
                    487: .IR inode
                    488: and
                    489: .IR dot
                    490: are also updated.
                    491: If no
                    492: .IR dir
                    493: is specified,
                    494: then change directories to
                    495: inode 2 ("/").
                    496: .TP 7.2n
                    497: .B cg
                    498: convert the value of
                    499: .IR dot
                    500: to a cylinder group.
                    501: .TP 7.2n
                    502: .B directory
                    503: If the current
                    504: .IR inode
                    505: is a directory,
                    506: then the value of
                    507: .IR dot
                    508: is converted to a directory
                    509: slot offset in that directory
                    510: and
                    511: .IR dot
                    512: now points to
                    513: this entry.
                    514: .TP 7.2n
                    515: .B file
                    516: the value of
                    517: .IR dot
                    518: is taken as
                    519: a relative block count from the
                    520: beginning of the file.
                    521: The value of
                    522: .IR dot
                    523: is updated to the first byte
                    524: of this block.
                    525: .IR
                    526: .TP 7.2n
                    527: .BI find " dir [-name n] [-inum i]\^"
                    528: find files by name or i-number.
                    529: .IR find
                    530: recursively searches
                    531: directory
                    532: .IR dir
                    533: and below for filenames whose
                    534: i-number matches
                    535: .IR i
                    536: or whose name
                    537: matches pattern
                    538: .IR n .
                    539: Note that only one of the two options
                    540: (-name or -inum)
                    541: may be used at one time.
                    542: Also, the -print is not needed or
                    543: accepted.
                    544: .TP 7.2n
                    545: .BI fill "=p\^"
                    546: fill an area of disk with pattern
                    547: .IR p.
                    548: The area of disk
                    549: is delimited by
                    550: .IR dot
                    551: and
                    552: .IR count .
                    553: .TP 7.2n
                    554: .B fragment
                    555: convert the value of
                    556: .IR dot
                    557: to
                    558: a fragment address.
                    559: The only difference between the
                    560: .IR fragment
                    561: command and the
                    562: .IR block
                    563: command is the amount that
                    564: is able to be displayed.
                    565: .TP 7.2n
                    566: .B inode
                    567: convert the value of
                    568: .IR dot
                    569: to an inode address.
                    570: If successful,
                    571: the current value of
                    572: .IR inode
                    573: will be updated as well as
                    574: the value of
                    575: .IR dot.
                    576: As a convenient shorthand,
                    577: if ':inode' appears at the
                    578: beginning of the line,
                    579: the value of
                    580: .IR dot
                    581: is set to the current
                    582: .IR inode
                    583: and that inode is displayed
                    584: in inode format.
                    585: .TP 7.2n
                    586: .BI ls " [-R] [-l] pat1 pat2 ...\^"
                    587: list directories or files.
                    588: If no file is specified,
                    589: the current directory is assumed.
                    590: Either or both of the
                    591: options may be used (but, if used,
                    592: .IR must
                    593: be specified before the
                    594: filename specifiers).
                    595: Also, as stated above,
                    596: wild card characters are
                    597: available and multiple
                    598: arguments may be given.
                    599: The long listing shows only
                    600: the i-number and the name;
                    601: use the
                    602: .IR inode
                    603: command with '?i'
                    604: to get more information.
                    605: .TP 7.2n
                    606: .B override
                    607: toggle the value of override.
                    608: Some error conditions may be
                    609: overriden
                    610: if override is toggled on.
                    611: .TP 7.2n
                    612: .BI prompt " p\^"
                    613: change the fsdb prompt to
                    614: .IR p.
                    615: .IR p
                    616: must be surrounded by (")s.
                    617: .TP 7.2n
                    618: .B pwd
                    619: display the current working directory.
                    620: .TP 7.2n
                    621: .B quit
                    622: quit
                    623: .IR fsdb .
                    624: .TP 7.2n
                    625: .B sb
                    626: the value of
                    627: .IR dot
                    628: is taken as a cylinder group
                    629: number and then converted to
                    630: the address of the superblock
                    631: in that cylinder group.
                    632: As a shorthand, ':sb' at
                    633: the beginning of a line
                    634: will set the value of
                    635: .IR dot
                    636: to 
                    637: .IR the
                    638: superblock and display it
                    639: in superblock format.
                    640: .TP 7.2n
                    641: .B !
                    642: escape to shell
                    643: .SH INODE COMMANDS
                    644: In addition to the above commands,
                    645: there are several commands that deal with inode
                    646: fields and operate directly on the current
                    647: .IR inode
                    648: (they still require the ':').
                    649: They may be used to more easily display
                    650: or change the particular fields.
                    651: The value of
                    652: .IR dot
                    653: is only used by the ':db'
                    654: and ':ib' commands.
                    655: Upon completion of the command,
                    656: the value of
                    657: .IR dot
                    658: is changed to point to
                    659: that particular field.
                    660: For example,
                    661: .RS
                    662: .PD 0
                    663: .TP 7.2n
                    664: > :ln=+1
                    665: .PD
                    666: .RE
                    667: would
                    668: increment the link count of the current
                    669: .IR inode
                    670: and set the value of
                    671: .IR dot
                    672: to the address of the link
                    673: count field.
                    674: .TP 7.2n
                    675: .B at
                    676: access time.
                    677: .TP 7.2n
                    678: .B bs
                    679: block size.
                    680: .TP 7.2n
                    681: .B ct
                    682: creation time.
                    683: .TP 7.2n
                    684: .B db
                    685: use the current value of
                    686: .IR dot
                    687: as a direct block index,
                    688: where direct blocks number from
                    689: 0 - 11.
                    690: In order to display the block
                    691: itself, you need to 'pipe' this
                    692: result into the
                    693: .IR block
                    694: or
                    695: .IR fragment
                    696: command.
                    697: For example,
                    698: .br
                    699: .nf
                    700:      > 1:db:block,20/X
                    701: .fi
                    702: would get the contents of
                    703: data block field 1 from the inode and
                    704: convert it to a block address.
                    705: 20 longs are then displayed in hexadecimal
                    706: (see FORMATTED OUTPUT section).
                    707: .TP 7.2n
                    708: .B gid
                    709: group id.
                    710: .TP 7.2n
                    711: .B ib
                    712: use the current value of
                    713: .IR dot
                    714: as an indirect block index
                    715: where indirect blocks number from
                    716: 0 - 2.
                    717: This will only get the indirect block itself
                    718: (the block containing the pointers to the actual blocks).
                    719: Use the
                    720: .IR file
                    721: command and start at block 12 to get to the actual
                    722: blocks.
                    723: .TP 7.2n
                    724: .B ln
                    725: link count.
                    726: .TP 7.2n
                    727: .B mt
                    728: modification time.
                    729: .TP 7.2n
                    730: .B md
                    731: mode.
                    732: .TP 7.2n
                    733: .B maj
                    734: major device number.
                    735: .TP 7.2n
                    736: .B min
                    737: minor device number.
                    738: .TP 7.2n
                    739: .B nm
                    740: although listed here,
                    741: this command actually
                    742: operates on the directory
                    743: name field.
                    744: Once poised at the desired
                    745: directory entry (using the
                    746: .IR directory
                    747: command),
                    748: this command will allow
                    749: you to change or display
                    750: the directory name.
                    751: For example,
                    752: .br
                    753: .nf
                    754:      > 7:dir:nm="foo"
                    755: .fi
                    756: will get the 7th directory
                    757: entry of the current
                    758: .IR inode
                    759: and change its name to foo.
                    760: Note that names
                    761: cannot be made larger than the
                    762: field is set up for.
                    763: If an attempt is made,
                    764: the string is truncated to fit
                    765: and a warning message to this
                    766: effect is displayed.
                    767: .TP 7.2n
                    768: .B sz
                    769: file size.
                    770: .TP 7.2n
                    771: .B uid
                    772: user id.
                    773: .SH FORMATTED OUTPUT
                    774: .PP
                    775: There are two styles
                    776: and many format types.
                    777: The two styles are structured and
                    778: unstructured.
                    779: Structured output is used to display
                    780: inodes, directories, superblocks and the
                    781: like.
                    782: Unstructured just displays
                    783: raw data.
                    784: The following table shows the
                    785: different ways of displaying:
                    786: .TP 7.2n
                    787: .B ?
                    788: .RS
                    789: .PD 0
                    790: .TP 13
                    791: .B c
                    792: display as cylinder groups
                    793: .TP 13
                    794: .B i
                    795: display as inodes
                    796: .TP 13
                    797: .B d
                    798: display as directories
                    799: .TP 13
                    800: .B s
                    801: display as superblocks
                    802: .PD
                    803: .RE
                    804: .TP 7.2n
                    805: .B /
                    806: .RS
                    807: .PD 0
                    808: .TP 13
                    809: .B b
                    810: display as bytes
                    811: .TP 13
                    812: .B c
                    813: display as characters
                    814: .TP 13
                    815: .B o O
                    816: display as octal shorts or longs
                    817: .TP 13
                    818: .B d D
                    819: display as decimal shorts or longs
                    820: .TP 13
                    821: .B x X
                    822: display as hexadecimal shorts or longs
                    823: .PD
                    824: .RE
                    825: .PP
                    826: The format specifier immediately follows
                    827: the '/' or '?' character.
                    828: The values displayed by '/b' and all '?'
                    829: formats are displayed in the current
                    830: .IR base .
                    831: Also,
                    832: .IR type
                    833: is appropriately updated
                    834: upon completion.
                    835: .SH EXAMPLES
                    836: .TP 16
                    837: > 2000+400%(20+20)=D
                    838: will display 2010 in decimal (use of
                    839: .IR fsdb
                    840: as a calculator
                    841: for complex arithmetic).
                    842: .TP 16
                    843: > 386:ino?i
                    844: display i-number 386 in an inode format.
                    845: This now becomes the current
                    846: .IR inode .
                    847: .TP 16
                    848: > :ln=4
                    849: changes the link count for the 
                    850: current
                    851: .IR inode
                    852: to 4.
                    853: .TP 16
                    854: > :ln=+1
                    855: increments the link count by 1.
                    856: .TP 16
                    857: > :ct=X
                    858: display the creation time as a hexadecimal long.
                    859: .TP 16
                    860: > :mt=t
                    861: display the modification time in time format.
                    862: .TP 16
                    863: > 0:file/c
                    864: displays, in
                    865: .IR ASCII ,
                    866: block zero of the file associated
                    867: with the
                    868: current
                    869: .IR inode .
                    870: .TP 16
                    871: > 2:ino,*?d
                    872: displays the first blocks worth of directory entries for
                    873: the root inode of this file system.
                    874: It will stop prematurely if the eof is reached.
                    875: .TP 16
                    876: > 5:dir:inode; 0:file,*/c
                    877: changes the current inode to that
                    878: associated with the 5th directory entry
                    879: (numbered from zero)
                    880: of the current
                    881: .IR inode.
                    882: The first logical block of the file
                    883: is then displayed in
                    884: .IR ASCII .
                    885: .TP 16
                    886: > :sb
                    887: displays the superblock of this file system.
                    888: .TP 16
                    889: > 1:cg?c
                    890: displays cylinder group information and summary
                    891: for cylinder group 1.
                    892: .TP 16
                    893: > 2:inode; 7:dir=3
                    894: changes the i-number for the 
                    895: seventh directory slot in the root directory to 3.
                    896: .TP 16
                    897: > 7:dir:nm="name"
                    898: changes the name field
                    899: in the directory slot to
                    900: .IR name .
                    901: .TP 16
                    902: > 2:db:block,*?d
                    903: displays the third block of the current
                    904: .IR inode
                    905: as directory entries.
                    906: .TP 16
                    907: > 3c3:fragment,20:fill=0x20
                    908: get fragment 3c3 and fill 20
                    909: .IR type
                    910: elements
                    911: with 0x20.
                    912: .TP 16
                    913: > 2050=0xffff
                    914: set the contents of address 2050 to 0xffffffff.
                    915: 0xffffffff may be truncated depending on the current
                    916: .IR type.
                    917: .TP 16
                    918: > 1c92434="this is some text"
                    919: will place the
                    920: .IR ASCII
                    921: for the string at
                    922: 1c92434.
                    923: .SH SEE ALSO
                    924: fsck(8), dir(4), fs(4).
                    925: .SH BUGS
                    926: .PP
                    927: Extreme caution is advised in
                    928: determining the availability
                    929: of
                    930: .IR fsdb
                    931: on the system.
                    932: Suggested permissions are 600 and
                    933: owned by bin.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.