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