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 EFAT 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: _______________________________________________________________________________ Active filesystem : EFAT, specific commands are: \[path-spec] = find and show ROOT or file/directory relative to root BOOTSYNC [a][-s] = Read, calculate CRC and synchronize primary/spare boot areas DELFIND [name] = Find deleted files with DIR-entry containing (partial) name DIRTY [d|c] = Display/set DIRTY, CLEAN status for the EFAT filesystem FATSELECT [fat] = Select fat to be used (cached), fat = 1 or 2; default is 1 FATSHOW [*|nr] = Display contents of the FAT from memory, [nr]= # of entries FATSIM img [f] = Save FAT table contents for FAT 'f' (1 or 2) to an imagefile FATWRIM img [f] = Restore an imagefile with the FAT table to FAT 'f' (1 or 2) FILEFIND [name] = Find normal files with DIR-entry containing (partial) name FINDROOT = Find and list possible EFAT root directory clusters/sectors FIXBOOT [1|*|-s] = Fix EFAT bootsector area (0..11) from spare (12..23) NOBADS = Reset bad-sector/cluster administration to ZERO bad sectors For an up-to-date list of commands, use the '?' command EFAT specific sector types (see ??? command) '1' = First FAT area '2' = Second FAT area '8' = Start EFAT area '\' = Root directory 'D' = Directory data _______________________________________________________________________________ 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 DIR entry for given file/dir full path Parameters: none Output: The chain of directory-sectors+index upto the found DIR-entry followed by the display of the Dir-entry, 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 _______________________________________________________________________________ BOOTSYNC [a][-s] = Read, calculate CRC and synchronize primary/spare boot areas Purpose: Syncronize the primary (LSN-0) and secondary (LSN 12) boot areas Parameters: a = Boot area(s) to WRITE, '0' is BOTH areas (default) '1' is PRIMARY (LSN 0), '2' is SPARE area (LSN 12) Options: -s = Read from the SPARE boot-area instead of primary _______________________________________________________________________________ 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 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 FAT the reported errors are: 0x000001 Linked to some structure, but not in allocation-map 0x000002 Allocated in allocation-map, but no known link 0x000004 Allocation chain ends in a free cluster 0x000020 Cluster chain is too long for specified item 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. _______________________________________________________________________________ CL = Translate and display 'this' LSN as a cluster number Purpose: Find out what cluster number corresponds to current LSN Parameters: none Output: The cluster number, or an error message when invalid _______________________________________________________________________________ CL clust [cmd] = Translate specified cluster number to LSN, display with cmd Purpose: Display data using a cluster number instead of an LSN Parameters: clust mandatory The cluster number of interest cmd optional DFS generic command to execute with clust as its first and only parameter (like 'H') Output: The output for the cmd. When no explicit cmd is specified this will be the DFS default for the corresponding LSN, usually a display of that sector(s) in an appropriate format. _______________________________________________________________________________ DELFIND [name] = Find deleted files with DIR-entry containing (partial) name Purpose: Find deleted files, with name starting at current LSN Parameters: name optional part of filename wanted, no wildcard Options: -c Start find from current sector instead of start -d- Search outside EXISTING directories too (SLOW!) -v Verbose search, list files while found (SLOW!) Output: Find-result list Remarks: All deleted files and directory entries where the name starts with 0xe5 = 'å', will be found and added to the list. There is NO RECOVERY possible yet for deleted files, although the SAVETO and RECOVER commands will work, the resulting files will be CORRUPT due to missing allocation information for deleted files on FAT (except for small files, upto 1 cluster) List can be manipulated as usual, best viewed with "list -f" By default, only DIR areas 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, to allow display of full path and filename _______________________________________________________________________________ DIRTY [d|c] = Display/set DIRTY, CLEAN status for the EFAT filesystem Purpose: Modify the EFAT volume's 'dirty' state Parameters: state mandatory 'clean' will set it clean (no CHKDSK) 'dirty' will force CHKDSK on reboot Output: 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 _______________________________________________________________________________ FATSELECT [fat]= Select fat to be used (cached), fat = 1 or 2; default is 1 Purpose: Update the in-memory FAT from the specified FAT from disk Parameters: fat optional Number of the FAT, either 1 or 2 Output: none Remarks: FAT32 is the only supported format (backward compatible EFAT) _______________________________________________________________________________ FATSHOW [*|nr] = Display contents of the FAT from memory, [nr] entries Purpose: List all FAT-entries separately for analysis Parameters: nr optional Number of FAT-entries to show. * = all entries, default is 160. Output: A list of FAT-entries with 8 values in each line, and values are shown as such. Remarks: A graphical display of the FAT can be made using 'ALLOC' Note that with EFAT, all contiguous (non-fragmented) files will NOT have the FAT entries marked as in-use, instead the file-allocation is contained in the EFAT directory entry! _______________________________________________________________________________ FATSIM img [f] = Save FAT table contents for FAT 'f' (1 or 2) to an imagefile Purpose: Save the complete file allocation table (FAT) to an imagefile Parameters: img mandatory Name of the imagefile to create f optional Number of the FAT, 1 or 2 (default 1) Options: -z Enable LZW compression on the image-file Output: Message indicating success or failure _______________________________________________________________________________ FATWRIM img [f] = Restore an imagefile with the FAT table to FAT 'f' (1 or 2) Purpose: Restore the complete file allocation table from an imagefile Parameters: img mandatory Name of the imagefile to restore f optional Number of the FAT, 1 or 2 (default 1) Output: Message indicating success or failure Remarks: When used to synchronize FAT areas after a detected problem, use a FATSIM command (usually from FAT-1) to an imagefile, directly followed by a FATWRIM command to the other FAT area. This is a potentially dangerous operation, also usually both FATs on the disk need to be in-sync, 2 FATWRIMs may be needed. The used imagefile should have the right size, and preferably be created with the FATSIM cmd from the same (size) partition _______________________________________________________________________________ FILEFIND [name] = Find normal files with DIR-entry containing (partial) name Purpose: Find one or more directory entries for specified filename Parameters: name optional Filename, or part of the name to find this is not a true wildcard, but can be any part of the long filename. Options: -c Start find from current sector instead of start -D search directories only, not files -d- Search outside EXISTING directories too (SLOW!) -v Verbose search, list files while found (SLOW!) Output: Find progress and result Remarks: The result is a list of sector numbers of directory entries. A 'list -f' will list them, showing the sector number for the directories and the index for the entry in that sector. You can select a single file from the list using the .NNNN syntax, and use the "saveto" command to recover that file. List can be manipulated as usual, best viewed with "list -f" The 'recover' command can be used to recover multiple files. By default, only DIR areas 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, to allow display of full path and filename _______________________________________________________________________________ FINDROOT = Find and list possible EFAT root directory clusters/sectors Purpose: Find possible root directory clusters/sectors when the EFAT root directory reference in the bootsector is missing or damaged. Parameters: none Output: One line for each possible root directory cluster/sector Remarks: NOT IMPLEMETED FOR EFAT YET! All found sectors will be put in the Sectorlist as well, and can be saved for later use with the 'export' command. The 'list +f' command can be used to display them, and individual ones can be displayed from the Sectorlist by selecting them with .NNNNN command. Note: this might reuse the Sectorlist for the directory shown, so make sure you have saved the original one to be restored with 'import'. _______________________________________________________________________________ FIXBOOT [1|*|-s] = Fix EFAT bootsector area (0..11) from spare (12..23) Purpose: Fix corrupted bootsector areas for an EFAT partition Parameters: 1 = Force a copy of the SPARE bootsector only (LSN 12 -> 0) * = Force a copy of the whole SPARE bootsector area to LSN 0 Options: -s = Force a copy of the SPARE bootsector area (same as '*') Output: Progress and confirmation info Remarks: For EFAT with a damaged bootsector this will try to copy a spare bootsector, either a single one when no parameter, or all (12) sectors when the parameter '*' is specified. If the bootsector at sector 0 is damaged, you can force copying the SPARE sector by using the '-s' option. _______________________________________________________________________________ NOBADS = Reset bad-sector/cluster administration to ZERO bad sectors Purpose: Make sure the filsystem specific administration for bad sectors is reset to a state where NO bad-sectors are present. Parameters: none Output: Message indicating success or failure Remarks: This is most useful after CLONING (or imaging) a damaged disk or partition that had bad sectors areas to a new disk. Running the 'NOBADS' command will reclaim the previously marked sectors/clusters back for normal use. For EFAT, this command affects the 1st and 2nd FAT areas, where all 'BAD' markings (0ffffff7) are replaced by the 'FREE' mark (00000000). _______________________________________________________________________________