      DFSee version 17.0 2022-10-22  (c) 1994-2022: Jan van Wijk
 =========================[ www.dfsee.com ]==========================

_______________________________________________________________________________

C O N T E N T S:
_______________________________________________________________________________

   Command reference    = overview of JFS specific commands
   Detailed description = description for every command


  Note: All generic commands can be found in DFSCMDS.TXT, for example:

        ALLOC,  CHECK,  CLONE,  RESIZE,  RECOVER,  SAVETO,  SCAN,  WIPE

_______________________________________________________________________________

C O M M A N D   R E F E R E N C E:
_______________________________________________________________________________

JFS specific commands

Active filesystem : JFS, specific commands are:


 \path-spec       = find and show file/directory relative to root (FINDPATH)
 ALLOC     [+|-]  = Display allocation map for JFS, more [+] or less [-] detail
 BL               = Translate and display 'this' LSN as a block number
 BL block  [cmd]  = Translate specified block-number to LSN, then execute 'cmd'
 BSCLEAR          = Bad Sector Clear, set number of bad blocks/sectors to ZERO
 BSEXPORT         = Export known bad blocks from JFS (I-5c) to DFSee Sectorlist
 BSIMPORT         = Import bad sect/blocks from DFSee Sectorlist to JFS (I-5c)
 CA   [lsn][opt]  = Check Allocation integrity for (current) INODE lsn
 DELFIND  [name]  = Find deleted files, with name-info matching (partial) name
 DFSJFLDR  [img]  = Create compressed imagefile containing the JFS LDR sectors
 DIRTY [d|c|m|#]  = Display/set DIRTY, CLEAN, MOUNT status or numeric value #
 FILEFIND [name]  = Find normal files, with name-info matching (partial) name
 FINO  [fDyzgui]  = Search all or specified type of Inodes (f=file, D=directory)
 FIXBOOT [drive]  = Create JFS bootsector from superblock, template and P-table
 FIXJFLDR  [img]  = Replace the JFS bootloader on a bootable JFS partition
 FRAGFILES        = Search File Inode's for fragmented files  (internal nodes)
 IAG  [nr] [opt]  = Show details about Inode Allocation Group data structure
 INAG [inode-nr]  = Calculate LSN for aggregate Inode, or translate 'this' LSN
 INO              = Translate and display 'this' LSN as a Fileset1 INODE number
 INO   inode-nr   = Calculate LSN for a Fileset1 INODE number, default display
 IRS       [irs]  = Display/set 'Inode Recovery Signature' after (quick) FORMAT
 LABEL   [label]  = Display/edit 11/16-char volume label in bootsector/superblock
 SUPER     [ 2 ]  = Display the filesystem primary or [secondary] SUPERBLOCK
 SYNC       1|2   = Sync superblock, copy from 1st or from 2nd instance
 UUID [[-u:]uuid] = Display or set a UUID string, dialog if no id specified

 For an up-to-date list of commands, use the '?' command

 JFS specific sector types  (see ??? command)

   's' = JFS  superblock      'U' = JFS  BAD superblk    'f' = File        Inode
   'D' = Directory   Inode    'y' = Deleted Dir Inode    'z' = Deleted FileInode
   'k' = Aggregate   Inode    'u' = Unused/BAD  Inode    'a' = Data Btree+  Page
   'd' = Dir  Btree+  Page    'E' = EA   data            'A' = ACL  data
   'K' = Pri Agg Inode Map    'm' = Sec Agg Inode Map    'i' = Sec Aggreg. Inode
   'v' = Agg Inode map IAG    'w' = Fs1 Inode map IAG    'F' = Fileset Inode Map
   'x' = Fileset Inode Ext    'S' = Pri Agg Inode Ext    'o' = Sec Agg Inode Ext
   'M' = Block Alloc.  Map    'C' = FSCK working area    'J' = Inline Log area
   'B' = Micro-FS bootcode    'c' = Last-block slack


             For an up-to-date list, use the '???" command
_______________________________________________________________________________

D E T A I L E D   D E S C R I P T I O N:
_______________________________________________________________________________


 \path-spec       = find and show file/directory relative to root (FINDPATH)

 Purpose:       Locate and display the Inode for a given file/dir full path

 Parameters:    none

 Output:        The chain of Inodes and DIR-blocks upto the found Inode,
                followed by the display of the Inode, or an error message
                when a path component was not found.

 Remarks:       Synonym for the FINDPATH generic command, where path-spec
                is a separate parameter to the command
_______________________________________________________________________________

 BL               = Translate and display 'this' LSN as a block nr

 Purpose:       Display block value for the CURRENT sector 'this'

 Parameters:    none

 Output:        cluster value

 Remarks:       JFS specific, and alias for the generic 'CL' command
_______________________________________________________________________________

 BL   block [cmd] = Translate hex block number to hex LSN, then execute 'cmd'

 Purpose:       Display sector for specified block in default or cmd format

 Parameters:    block   mandatory  Block value 0 .. max-block

                cmd     optional   Command to use for displaying the sector

 Output:        Default display of the sector, or the output of 'cmd

 Example:       bl 0x12345 id           ;identify block 0x12345 using SLT

 Remarks:       JFS specific, and alias for the generic 'CL' command
_______________________________________________________________________________

 BSCLEAR          = Bad Sector Clear, set number of bad blocks/sectors to ZERO

 Purpose:       Reset the internal JFS bad-block administration (Inode at 0x5c)
                so it contains NO bad blocks anymore.

 Parameters:    none

 Output:        none

 Remarks:       In older versions, this command was called 'nobads'

                To determine in what files/directories (if any) the current
                bad blocks are used use the following commands:

                    slt                ;builds sector lookup (paths)
                    list -f            ;shows path for meta info like Inodes
                    list -f:i          ;shows path for actual file data blocks

                When some of the sectors in the list ARE in use by some file,
                you may want to copy/erase these files first. When not, their
                usage status in the bitmaps will be inconsistent, and parts of
                the files may become overwritten by later files.
                (or you can have 'chkdsk /f' fix-up the inconsistent bitmaps)

                After updating the internal bad-block administration with DFSee
                you should run a 'chkdsk /f' against the volume, to make sure
                all of the internal usage maps and summaries are up-to-date.
                (DFSee only updates the primary/secondary bitmap, no summaries)
_______________________________________________________________________________

 BSEXPORT         = Bad Sector Export, get bad-blocks into the DFSee Sectorlist

 Purpose:       Copy the existing bad-blocks administration (Inode at 0x5c) as
                individual sector numbers in the DFSee Sectorlist.

 Parameters:    none

 Output:        Display of resulting Sectorlist (in range format, 'list -r')

 Remarks:       Every sector in a bad block (usually 8) will be added to the list

                To determine in what files/directories (if any) the exported
                bad blocks are used (should be NONE), use the following commands:

                    slt                ;builds sector lookup (paths)
                    list -f            ;shows path for meta info like Inodes
                    list -f:i          ;shows path for actual file data blocks
_______________________________________________________________________________

 BSIMPORT         = Bad Sector Import, Sectorlist to JFS bad-block administration

 Purpose:       Transfer the contents of the Sectorlist to the JFS bad-blocks
                administration (Inode at 0x5c), aligned/converted to blocks

 Parameters:    none

 Output:        Display of the special Inode at 5c, with 'allocated' bad-blocks

 Remarks:       The individual sectors in the DFSee Sectorlist will be combined
                into the minimum possible number of block-ranges.

                Getting (bad) sectors in the list can be done in several ways:

                1) Import them from the JFS bad-blocks list (then add some)
                2) Add (ranges of) bad sectors using the 'listset' command
                3) Perform a 'scan' command to search for bad sectors
                4) Import the list from a previous exported, and possibly
                   edited Sectorlist

                There is a LIMIT of 16 ranges to be added, when more bad-sectors
                are present, you will get a warning and the remaining sectors in
                the list are ignored.

                To determine in what files/directories (if any) the bad-sectors
                in the list are used (should be NONE), use the following commands:

                    slt                ;builds sector lookup (paths)
                    list -f            ;shows path for meta info like Inodes
                    list -f:i          ;shows path for actual file data blocks

                When some of the sectors in the list ARE in use by some file,
                you may want to copy/erase these files first. When not, they
                will be cross-linked (with the bad-blocks 'file') and eventually
                be removed automatically by a 'chkdsk /f'

                After updating the internal bad-block administration with DFSee
                you should run a 'chkdsk /f' against the volume, to make sure
                all of the internal usage maps and summaries are up-to-date.
                (DFSee only updates the primary/secondary bitmap, no summaries)
_______________________________________________________________________________

 CA  [lsn][opt] = Check Allocation for (current) INODE lsn

 Purpose:       Check allocation integrity for current INODE

 Parameters:    lsn         optional   LSN of the INODE
                opt         optional   Options:  v   = Verbose, show progress

 Output:        ¯           Start of one file-extent (fragmented file)
                ú           One block (*), small green dot, allocation is OK
                þ           One block (*), big red dot is allocation error

                       (*): Switches to one dot per 1024 blocks after 32 blocks

                Also a summary is given with the number of (failed) sectors

 Remarks:       Fnode may be for a regular file (sectors must be ALLOCATED)
                or for a deleted file (sectors must be FREE)
_______________________________________________________________________________

 CHECK   [drive] = Check filesystem integrity for drive-letter (CHKDSK)

 Purpose:       Perform a filesystem check, and report the errors found

 Parameters:    drive     PID or driveletter for partition to check.
                          When not specified, the CURRENT object is checked.

 Options:       -r        Force refresh of the Sector Lookup Table (SLT)
                          even if one exists already

                -M        Add file recovery information to the filesystem
                          for later undelete/recover (JFS filesystems only)


 Output:        Two lines for each sector in error that is found, the first
                lists the sector number, where it is referenced from and a
                short description. The second line is an error description

                For JFS the reported errors are:

                0x000001  Linked to some structure, but not in allocation-map
                0x000002  Allocated in allocation-map, but no known link
                0x000004  Sector does not contain a valid File or Dir Inode
                0x000008  File Inode has incorrect data allocation information
                0x000010  Sector does not contain a valid Directory Btree page
                0x000020  Invalid Inode number, not allocated, not in use
                0x000040  Invalid Inode number, larger than maximum for FS
                0x000100  Superblock 'JFS1' signature has incorrect value
                0x000200  Invalid Inode location, LSN out of range for FS
                0x800000  The filesystem is marked DIRTY (open files)
                          this may cause bogus errors to be displayed!

 Remarks:       Some of the errors are generic, but most are filesystem
                specific. The generic ones are also listed with the 'SLT'
                command in dfscmds.txt.
_______________________________________________________________________________

 DELFIND  [name] = Find deleted files, with name-info matching (partial) name

 Purpose:       Find deleted files, either all of them, or just the ones
                where available name-info contains the (partial) name given.
                The found files can be copied to another disk using the
                RECOVER or SAVEAS commands, just as with deleted files.

 Parameters:    name        optional   part of filename wanted, not a true
                                       wildcard, but may start and end in
                                       a '*' character

 Options:       -a        = search ANY files, deleted and normal  (with -d- only)
                -D          search directories only, not files+directories
                -c        = start from current sector, not start of volume
                -d-       = search outside known INODE areas too   (SLOW!)
                -f:first  = start at given Inode nr, default = 4   (unless -d-)
                -v        = verbose search, list files while found (SLOW!)

 Output:        Find-result list (as "find -t:z") on screen and in memory

 Remarks:       All deleted files, or the ones where the fileinfo contains
                the given ASCII string, will be found and added to the list.

                The [name] selection aims at the FILENAME part only. To select
                on part of the full path for the file, use the wildcard select
                parameters on the DELSHOW and RECOVER commands afterwards.

                List can be manipulated as usual, best viewed with "delshow" or
                the equivalent "list -f"

                The 'name' parameter is useful only when name information is
                available with the INODE's. This is the case if a .LONGNAME EA
                (extended attribute) is present, if the sector lookup table
                (SLT) has been built, or if the name-info is explicitly added
                as DFSee-recovery info using the 'check -r -M' command or the
                corresponding menu: Mode=JFS -> Add/Update recovery filenames

                By default, only known INODES are searched, which is at least
                a hundred times faster as searching the whole filesystem.

                Note: SLT will be built automatically when not present yet.
_______________________________________________________________________________

 DFSJFLDR  [img] = Create compressed imagefile containing the JFS LDR sectors

 Purpose:       Create an imagefile with the JFS LDR sectors, for later fixing.
                This works on the 24 sector mini-filesystem / loader, located
                directly after the normal bootsector.

 Parameters:    img     optional   Name of imagefile with JFS LDR code
                                   (24 sectors) with a default of 'dfsjfldr'

 Output:        Progress and error messages
_______________________________________________________________________________

 DIRTY [d|c|m|#] = Display/set DIRTY, CLEAN, MOUNT status or numeric value #

 Purpose:       Modify the JFS volume's 'dirty' state

 Parameters:    state   optional   'clean' will set it clean (no CHKDSK)
                                   'mount' will set it to be cleanly mounted
                                   'dirty' will force CHKDSK on reboot
                                    (unless clean shutdown done afterwards)

 Output:        'superblock written' confirmation

 Remarks:       A volume is normally marked 'dirty' by the OS on the first
                write access to it, and set 'clean' on successful shutdown.
                This means a system crash will cause a CHKDSK on reboot
                It is most useful from boot diskettes (DOS or OS/2)

 Usage:         Below is an example of the actual usage text

                Usage: dirty  clean | dirty | status-value   [1|2]

                      0 = FS unmounted and clean
                      1 = FS mounted cleanly
                      2 = FS is dirty
                      4 = recovery failed (logredo())
                      8 = extendfs() in progress

                      4 & 8 can be combined with others

                  [1|2] : Update 1st or 2nd superblock only (default is both)

                JFS SB1 status is : 1 = Mounted cleanly
_______________________________________________________________________________

 FIXBOOT [drive] = Create JFS bootsector from superblock, template and P-table

 Purpose:       Fix corrupted bootsector for a JFS partition

 Parameters:    none

 Parameters:    drive       optional   Driveletter of OS/2 or eCS installed
                                       on this (logical) partition, use '-'
                                       to reset to 'data' partition
                                       When not specified, the letter will be
                                       determined from existing partition info

 Options:       -s        Use STANDARD bootsector code, not bootable

 Output:        Progress and confirmation info

 Remarks:       For any of the filesystems (FAT, HPFS, NTFS, JFS) check the
                corresponding DFSxxx.TXT documentation file for 'FIXBOOT'.

                This will create a valid bootsector based on OS/2 version 4.5
                bootsector code and size info from the partition table and/or
                the 1st superblock structure at relative sector 0x40.

                The partition table info (type and size) must still be valid,
                or a valid superblock must be present.
_______________________________________________________________________________

 FIXJFLDR  [img] = Replace the JFS bootloader on a bootable JFS partition

 Purpose:       Fix a damaged JFS loader so eCS will boot correctly again.
                This works on the 24 sector mini-filesystem that is located
                directly after the normal bootsector.

 Parameters:    img     optional   Name of imagefile with JFS LDR code
                                   (24 sectors) with a default of 'dfsjfldr'

 Output:        Progress and error messages
_______________________________________________________________________________

 FILEFIND [name] = Find normal files, with name-info matching (partial) name

 Purpose:       Find non-deleted files, either all of them, or just the ones
                where available name-info contains the (partial) name given.
                The found files can be copied to another disk using the
                RECOVER or SAVEAS commands, just as with deleted files.

 Parameters:    name        optional   part of filename wanted, not a wildcard!
                                       (does NOT apply to the path component)

 Options:       -a        = search ANY files, deleted and normal  (with -d- only)
                -D        = search  directories  only, not files+directories
                -f        = search regular files only, not files+directories
                -c        = start from current sector, not start of volume
                -d        = search within  known INODE areas only (default)
                -d-       = search outside known INODE areas too   (SLOW!)
                -F:first  = start at given Inode nr, default = 4   (unless -d-)
                -v        = verbose search, list files while found (SLOW!)


 Output:        Find-result list (as "find -t:f") on screen and in memory

 Remarks:       All non-deleted files, or the ones where the fileinfo contains
                the given ASCII string, will be found and added to the list.

                The [name] selection aims at the FILENAME part only. To select
                on part of the full path for the file, use the wildcard select
                parameters on the DELSHOW and RECOVER commands afterwards.

                List can be manipulated as usual, best viewed with "delshow" or
                the equivalent "list -f"

                The 'name' parameter is useful only when name information is
                available with the INODE's. This is the case if a .LONGNAME EA
                (extended attribute) is present, if the sector lookup table
                (SLT) has been built, or if the name-info is explicitly added
                as DFSee-recovery info using the 'check -r -M' command or the
                corresponding menu: Mode=JFS -> Add/Update recovery filenames

                By default, only known INODES are searched, which is at least
                a hundred times faster as searching the whole filesystem.

                Note: SLT will be built automatically when not present yet.
_______________________________________________________________________________

 FINO  [fDyzgui] = Search all or specified type of Inodes (f=file, D=directory)

 Purpose:       Find any type of Inode, anywhere in the filesystem

 Parameters:    types   optional   String of Inode type-letters:

                 f          File Inodes, all regular files
                 D          Directory Inodes
                 y          Deleted directory Inodes
                 z          Deleted file Inodes
                 g          Aggregate Inodes (system/meta files)
                 i          Invalid Inodes (ZERO timestamps)
                            Default is search file/directory inodes

 Options:       -v          Verbose search, list files while found (SLOW!)

 Output:        Path and filenames of files being found, unless -v- is used.

 Remarks:       Result, in the form of the found files is in the Sectorlist
_______________________________________________________________________________

 FRAGFILES       = Search File Inode's for fragmented files  (internal nodes)

 Purpose:       Find Inodes for files that have many (more than 8) fragments

 Parameters:    none

 Output:        Info on files being found, path and filename if available

 Remarks:       Result, in the form of the found files is in the Sectorlist
_______________________________________________________________________________

 IAG  [nr] [opt] = Show details about Inode Allocation Group data structure

 Purpose:       Display IAG structure details, including calculated header

 Parameters:    iagnr   optional   IAG number, 0..n, or '*' for ALL

 Options:       -a      Show info on aggregate IAG, not Fileset-1
                -v      Verbose display if IAG control page summary data

 Output:        Display of specified IAG, or a summary of available ones

 Remarks:       Aggregate IAG's map JFS filesystem structures, no user files.
                When no iagnr is specified, a summary will be displayed.
_______________________________________________________________________________

 INAG    [inode] = Calculate LSN for aggregate Inode, or translate 'this' LSN

 Purpose:       Locate aggregate Inode from inode-nr, or calculate nr from LSN

 Parameters:    inode   optional   Inode-number for the aggregate Inode

 Output:        Display of the found Inode, or just the calculated Inode-nr

 Remarks:       Aggregate Inodes map JFS filesystem structures, no user files
_______________________________________________________________________________

 INO     [inode] = Translate and display 'this' LSN as a Fileset1 INODE number

 Purpose:       Locate fileset-1 Inode from inode-nr, or calculate nr from LSN

 Parameters:    inode   optional   Inode-number for the fileset-1 Inode

 Output:        Display of the found Inode, or just the calculated Inode-nr

 Remarks:       Fileset-1 Inodes map all user files since the OS2/Linux JFS
                implementation only uses one fileset.
_______________________________________________________________________________

 IRS       [irs] = Display/set 'Inode Recovery Signature' after (quick) FORMAT

 Purpose:       Show and optional SET the 'Inode Recovery Signature'

 Parameters:    irs     optional   Inode recovery signature as an 8-digit hex
                                   value, or 0 as a 'wildcard' that will match
                                   any possible Inode.

 Options:       -!      Force interactive dialog to display/set the IRS value

 Output:        Display of the IRS value, and the current Inode-stamp used
                for any files/directories since the last format.

 Remarks:       The IRS value will be used as a match for the Inode-stamp
                that is the unique 'signature' for Inodes, having a value
                equal to the creation timestamp of the filesystem.
                This value changes on each (quick) format, so it is hard
                to find Inodes that have been created BEFORE the last format.

                A specific IRS value (when known, or found through analysis)
                or a wildcard value of 0 can be used to search for Inodes
                that do NOT have the current inode-stamp value.

                The resulting search result list can be used to recover these
                files to a recovery directory on another volume, but the
                filenames will be CONSTRUCTED from the indoe and sector number
                since the original filenames are not part of the Inode info.
_______________________________________________________________________________

 LABEL   [label]  = Display/edit 11/16-char volume label in bootsector/superblock

 Purpose:       Set a volume label in the bootsector and superblock (11-char),
                OR set the Linux specific 16-char label in the superblock

 Parameters:    label   optional   New volume label, with a maximum of 11
                                   or 16 characters (depending on -l option)
                                   Default value is the current volume label

                -l      optional   Update the 16-character length Linux style
                                   label instead of the 11-character one.

 Options        -!-                Skip input dialog for a new value

 Output:        Progress information

 Remarks:       The volume label for most PC-style operating systems is a
                field in the bootsector, used to identify this volume in
                directory listings and other filesystem commands

                On JFS a copy of that is present in the superblock, and
                DFSee will update both when changing the label value.

                On Linux-style filesystems like EXTn and JFS, the label
                (sometimes called Volume-Name) is a 16-character string.

                Since JFS has both the 11-character and the 16-character
                label string, you need to specify the '-l' option on the
                command to indicate you want to update the Linux variant.
_______________________________________________________________________________

 SUPER          = Display the filesystem SUPERBLOCK sector

 Parameters:    none

 Purpose:       Display the contents of the JFS superblock

 Output:        Most important fields of the superblock
_______________________________________________________________________________

 SYNC       1|2  = Sync superblock, copy from 1st or from 2nd instance

 Purpose:       Synchronize the two copies of the JFS superblock

 Parameters:    from    mandatory  direction of the sync operation

 Output:        'superblock written' confirmation

 Remarks:       This should only be needed in very rare cases

 Usage:         Below is an example of the actual usage text

                Usage: sync   1 | 2

                   1 = sync 1st copy at 0x40 to 2nd at 0x78
                   2 = sync 2nd copy at 0x78 to 1st at 0x40
_______________________________________________________________________________

 UUID [UUID] | [-u:UUID] [-s:n]  = Display/set UUID, dialog if no id specified

 Purpose:       Display or edit the value of the filesystem UUID (unique ID)

 Parameters:    UUID     string value, 5 groups separated by hyphens, no brackets

 Options:       -u:UUID  36 character UUID value: 12345678-abcd-0123-4567-0123456789ab

                -s:n     Write back to superblock n, where n = 1 or 2, default is BOTH


 Output:        Display of the UUID value as a string

 Remarks:       When no parameter or -u option UUID value is specified, a UUID dialog
                is presented with a separate edit field for each of the 5 components
                of the UUID value, showing the current value.

_______________________________________________________________________________

