July 2003
Mr. Know-It-All has the answers to even the really tough questions.
Question:
I installed a new disk drive and now CHKDSK traps when attempting to
AUTOCHECK after a dirty shutdown. How do I fix this?
Answer:
You did not mention the size of the new disk drive and the partitions,
but most likely the drive is large and you created one or more large HPFS
volumes or partitions.
Under normal conditions, when the HPFS AUTOCHECK logic invokes CHKDSK at boot
time, the kernel is still initializing the system and the virtual memory
subsystem is not fully initialized. This limits the amount of memory
available to CHKDSK and an attempt to CHKDSK a large partition will fail.
You have several options that will allow CHKDSK to run successfully:
-
Use CHKDSK.SYS.
-
Run CHKDSK with /C option.
-
Use the EARLYMEMINIT kernel option.
-
Use JFS volumes.
These options all have positive and negative features.
Use CHKDSK.SYS
CHKDSK.SYS is base device driver which runs early in the boot process and
allocates memory that CHKDSK can use during AUTOCHECK.
To use CHKDSK.SYS add:
BASEDEV=CHKDSK.SYS
to CONFIG.SYS before any other SYS BASEDEVs.
The downside of using CHKDSK.SYS is that you will be forced to reboot after
the AUTOCHECK completes. However, if your setup requires access to files on
large partitions to boot correctly, your choices are limited.
Run CHKDSK with the /C option
CHKDSK can be run from CONFIG.SYS. With the /C option, CHKDSK will
bypass the full scan unless the drive is marked dirty.
This is a good method for checking large data volumes or partitions that are
not otherwise accessed before the PM and the WPS start up.
To use this method, add the line:
CALL=x:\OS2\CHKDSK.COM y: /F /C
to CONFIG.SYS for each drive to be checked.
Replace x: with a reference to your boot drive.
Replace y: with a reference to the partition or volume to be checked.
Place the CALL statements before any other CALL or RUN statements in
CONFIG.SYS.
Use the EARLYMEMINIT kernel option.
The EARLYMEMINIT option changes the kernel behavior so that the virtual
memory subsystem is fully initialized before the CHKDSK AUTOCHECK logic runs.
This option does not work on all systems and is considered somewhat experimental.
The other options are usually a better choice.
To use the EARLYMEMINIT option, add the statement:
EARLYMEMINIT=TRUE
to CONFIG.SYS.
The placement does not matter.
Use JFS volumes.
The JFS file system, unlike the HPFS file system, does not have problems
checking large volumes at boot time. JFS volumes also CHKDSK much faster.
JFS also supports much large cache sizes which improves overall performance.
The only real downside of JFS compared to HPFS, for most users, is that the
IFS code is young compared to the HPFS code. There were some reports of data
loss with early releases of JFS.IFS, but the current releases appear to be as
solid as HPFS.IFS.
Curious or in doubt, you can ask
Mr. Know-It-All
OS/2 is his specialty and sharing solutions is his passion
Mr. Know-It-All lives in Southern California.
The Southern California OS/2 User Group
P.O. Box 26904
Santa Ana, CA 92799-6904, USA
Copyright 2003 the Southern California OS/2 User Group. ALL RIGHTS
RESERVED.
SCOUG, Warp Expo West, and Warpfest are trademarks of the Southern California OS/2 User Group.
OS/2, Workplace Shell, and IBM are registered trademarks of International
Business Machines Corporation.
All other trademarks remain the property of their respective owners.
|