DUMPFS User's Guide 2023-02-18 ------------------- Steven H. Levine steve53@earthlink.net == Introduction == DUMPFS is a package that replaces the standard os2dump with a version that supports systems with more than 2GiB of physical memory. The package is available on recent eCS installation CD/DVDs from the \OS2IMAGE\DEBUG\DUMPIFS directory. It is also available from http://www.os2site.com/sw/drivers/filesystem/dumpfs.zip The package contains the following files dumpfs.ifs - a FAT-like IFS that allows partitions and files larger than 2GiB dumpfs.sym - debug symbols for dumpfs.ifs os2dump.hd - a version of os2dump which supports the DUMPFS file system udumpfs.dll - supports formatting DUMPFS file systems udumpfs.sym - debug symbols for udumpfs.dll == OS2AHCI.ADD == If you want to place the SADUMP volume on a disk drive attatched to a controller running in AHCI mode, you must use OS2AHCI.ADD 1.25 or newer. == Install the IFS == In the examples that follow, replace C: with your boot volume drive letter. In the examples that follow, replace X: with the drive letter you chose for the dump volume. - Unzip the package to a work directory. - Copy dumpfs.* to the \os2 directory on your boot volume with copy dumpfs.* c:\os2 - Copy udumpfs.* to the \os2\dll directory on your boot volume with copy udumpfs.* c:\os2\dll - Edit config.sys and add the statement IFS=C:\OS2\DUMPFS.IFS after the IFS statement for your boot volume. This will typically be JFS.IFS or HPFS.IFS. == Create the dump volume == - The dump volume must be located on a disk with standard logical geometry. Os2dump assumes there are 63 sectors/track. This means that os2dump will not be able to find the dump on disks larger than 512GiB that use non-standard 127 sectors/track geometry. - Use LVM or dfsee to create a volume for the file system. Verify that the SADUMP volume is no more than 4095MiB. LVM and dfsee round requests up to the next cylinder boundary and the DUMPFS os2dump can not handle partitions larger than 4095MiB. On some systems with less than 4GiB of RAM, it appears that a maximum size partition is required. Given the typical logical geometry of 63 sectors/track and 255 heads/cylinder, the number of cylinders in a 4GiB partition is 4*1024**3 / (63 * 255 * 512) = 522.166696 or rounding down, 522 cylinders. If you are using dfsee to create the partition, specify the size as 522,c, where c indicates cylinders. If you need to specify size in MiB, 4094.5MiB should be result in a 522 cylinder partition. The confirmation dialog will be similar to CREATE logical FAT 4094, @10 Freespace ID 10 : 8738.5 MiB disk 3 FAT32-Ext = 0c : 4094.7 MiB Logical Your drives probably use this geometry, but you should check with the GEO command or the menus. - Format the volume with format X: /fs:DUMPFS /v:SADUMP where X: is the drive letter you assigned to the volume. - Test the volume with the command dir X:\ Since the volume is empty, the shell should display a sys0002 error message. The IFS is read-only so you will not be able to use any of the typical file management commands such as mkdir, rename or delete. - There appears to be defect in the IFS so that the command vol X: reports The volume label in drive X is DUMP. The Volume Serial Number is 0000:5C3A. rather than the expected SADUMP volume name. This does not appear to affect performance. - Some shells and file managers seem to have trouble accessing the DUMPFS file system. They typically report error SYS0111, which means file name too long, when attempting to copy the file elsewhere. If this occurs, use cmd.exe for file management. - If any of the above tests fail, verify that config.sys contains an IFS= statement to load DUMPFS.IFS. UDUMPFS.DLL fails silently if the DUMPFS IFS is not loaded. == Install the DUMPFS version of os2dump == - Save a copy of the original os2dump with copy c:\os2dump c:\os2dump.fat in case you need to restore the original os2dump. - Copy and rename dumpfs.hd to the root directory with copy os2dump.hd c:\os2dump Os2dump.hd needs to be renamed to os2dump so that the kernel can find it. - The kernel will use this version on the next reboot. == Configure the kernel to write trap dump files == - Edit config.sys and add the statement TRAPDUMP=R0,X: replacing X: with the drive letter you assigned to the dump volume. This change will take effect on the next reboot == Test == - If you have not rebooted since installed the DUMPFS components reboot now. - Force a system dump with Ctrl-Alt-Numlock-NumLock or Ctrl-Alt-F10-F10 The kernel should write a dump file to the SADUMP volume and reboot. - From the command line do dir X:\ and verify that the dumpdata.001 file exists. Remember to do this under a cmd.exe shell if your shell or file manager reports errors. - Start the PM Dump Facility (PMDF) and verify that the trap dump opens without errors. == PMDF Hints == PMDF performs better if the dump files are moved to a JFS volume. This also prevents inadvertently overwriting the dump file if the system traps again. If your file manager fails with a sys0111 error, you will need to do the copy from a cmd.exe session. See http://www.warpcave.com/os2diags/TrapDumpRef.txt for additional hints. == Uninstalling == - Edit config.sys and delete or rem out the TRAPDUMP and IFS statements. - Restore the original os2dump with the command copy os2dump.fat c:\os2dump - These changes will take effect on the next reboot ======================================================================= == Scott's original e-mail message == With exactly 2gb installed, you can probably use the standard stuff, since most systems take some memory off the top for shadowing. That said, I just uploaded dumpfs.zip to testcase. Summary: - put udumpfs.* in \os2\dll, dumpfs.* in \os2\boot, and replace os2dump with \os2dump.hd - Add IFS=DUMPFS.IFS to config.sys. - Create a partition with LVM or whatever. LVM is such a terrible utility that the best I can suggest is use "create a partition that can be made bootable" and then delete it from boot manager (if installed). Make sure the partition is at least as large as your phyiscal RAM size. - Format x: /fs:dumpfs (x: is whatever) - add TRAPDUMP=R0,X: (or whatever) to point the dump at the right drive. Note that I was too lazy to add EA support to the IFS, so the workplace shell gets upset if you try to look at the drive with a drives object. Use a command prompt or PMDF or whatever to get to the dump. Scott ======================================================================== 2022-01-29 SHL Lars via Jan #define SV_DUMPS1 0x00000000 // 1st boot signature: 0 #define SV_DUMPS2 0x00000001 // 2nd boot signature: 1 #define SV_DUMPS3 0x0000000b // 3rd boot signature: B #define SV_DUMPS4 0x00000000 // 4th boot signature: 0 typedef struct dumpfsinfo { ULONG Signatur1; // Startaddress, must be zero ULONG DumpSize1; // End = dumpfile size in bytes ULONG Signatur2; // flag? value 0x00000001 ULONG Signatur3; // flag? value 0x0000000b BYTE tmMinutes; BYTE tmHours; // time values in BCD BYTE tmZero; // show using %2.2hx BYTE tmSeconds; BYTE dtYears; BYTE dtCentury; // date values in BCD BYTE dtDay; // show using %2.2hx BYTE dtMonth; ULONG PartSects; // Partition Sectors, minus 1 ULONG DumpSize2; // dumpfile size in bytes ULONG fill1[119]; // 476 bytes ULONG Signatur4; // must be zero } DUMPFSINFO; // end of struct "dumpfsinfo" a) do I believe correctly that if the dump file is >2GB that then "DumpSize1" will contain the lower DWORD of the filesize and "DumpSize2" will contain the higher DWORD of the 64-bit filesize? b) is "PartSects" effectively the number of 512 byte sectors that make up the one and only file "DUMPDATA.001"? Is "PartSects" = ("DumpSize2"*2^32 + "DumpSize1") / 512 or is "PartSects" = CEIL(("DumpSize2"*2^32 + "DumpSize1")/512)? c) About time and date: is that taken to be verbatim as in, 23:34:38 -> tmHours = 0x23, tmMinutes=0x34,tmSeconds=0x38? What is "tmZero"? Is that just a filler? == eof ==