Home \ Manual \ Runtime control panel

Runtime control panel

ZAR has been discontinued
After about twenty years, I felt ZAR can no longer be updated to match the modern requirements, and I decided to retire it.

ZAR is replaced by Klennet Recovery, my new general-purpose DIY data recovery software.

If you are looking specifically for recovery of image files (like JPEG, CR2, and NEF), take a look at Klennet Carver, a separate video and photo recovery software.
Disk read option - real-time settings adjustment

The runtime control panel can be used to adjust disk I/O settings "on the fly". This is useful when processing a drive with bad sectors. All the changes made to the configuration are in effect for the next I/O operation (i.e. "immediately" for most conditions).

Recommended settings

For a good disk (no bad sectors)

  • "Timeout" - set to 1000 ms.
  • "Retry attempts" - set to "No retries".
  • "Avoid repeated retries" - enable.
  • "Skip factor" - set to 1.

For a disk with bad sectors

  • "Timeout" - set to 200 ms unless doing RAID recovery. For a RAID recovery, set to 500.
  • "Retry attempts" - set to 1 unless the analysis is unacceptably slow. To increase speed, set to 0.
  • "Avoid repeated retries" - enable.
  • "Skip factor" - set to 32, unless the analysis is unacceptably slow. To increase speed, gradually increase "Skip factor" until satisfactory speed is achieved.

"Force bus reset" should be disabled in most applications, even on a disk with bad sectors.

Timeout

Controls the amount of time to wait before deciding that a sector is bad. Sometimes a disk device driver does not provide a proper response about read operation status, so any read operation that takes longer than the specified amount of time is considered failed. Note that running some I/O-consuming tasks in the background may result in requests to good sectors exceeding this limit, causing some erroneous markings. The default setting of 1000 ms should fit for most cases when there is no physical damage on the disk. If the disk is physically damaged and scanning it takes a very long time, try decreasing this parameter down to 100 or 200 ms - this should give a significant speed boost.

Retry attempts

This setting controls amount of the additional read attempts once a bad sector is encountered.

  • If set to "No retries", only one attempt will be made (i.e. the first one fails and then no retries).
  • If "Avoid repeated retries" is set, the additional reads will only be attempted during a first encounter with the particular bad spot. During subsequent encounters, if any, the read error status will be indicated without ever attempting to read the sector.
Avoid repeated retries

If enabled, bad sectors are remembered and subsequent attempts to access the sector already listed as bad return failure without actually accessing the disk. This provides speed improvement on physically bad drives.

Skip factor

Controls how many sectors are skipped (i.e. presumed bad without actually attempting disk access) after one bad sector is encountered while reading the disk. The default value of 1 means for one read error, one entry is recorded in the bad sector list and thus only actual bad sectors are recorded. Setting this to N will result in the following behavior: once a bad sector is encountered, it will be marked as such and never accessed again. Additionally, N-1 subsequent sectors will be marked bad without even checking if they actually are. Use higher settings on hard disks that have excessive physical damage.

Force device/bus reset after a bad sector is encountered

If selected, ZAR will attempt to force a device to reset its state. In case the device reset attempt is unsuccessful, the reset of the entire bus will be attempted. Be advised that a device reset may cause undesired side effects, because it affects all the devices attached to the bus. The system may experience transient lockups because all the devices attached to the bus are inaccessible while the bus reset is underway.

Forget bad sectors

Clears the previously collected lists of the bad sectors (used to "Avoid repeated retries" as configured) for all devices.

Disk cache sizes

ZAR implements its own disk read and write caches to achieve better performance. Read cache is used throughout the entire recovery run. Write cache is only used during file copying process. The following guidelines apply:

  • If recovering data from slow media (like ZIP disk or flash memory card), increase read cache size. It would be nice if the whole media can fit into the cache. If needed, decrease write cache size to the minimum to meet the above total cache size requirement.
  • If recovery destination is slow (e.g. when recovering to the network drive), reverse logic applies - increase write cache size while sacrificing read cache.

The above can be summariezed as use larger cache on slower side.

Factory settings are 16 MB for both read and write cache, tailored for low-memory applications. Minimums are 16 MB for read and write cache.

Technical - disk read process reference

Once the request is made to read a sector from a physical device, the following happens:

  1. If "Avoid repeated retries" is set, the bad sector list of the device is examined. If the sector is already recorded as bad, further processing is stopped and the error indication is returned.
  2. The cache is examined. If the request can be satisfied from the cache, the data is copied and returned.
  3. The disk read is attempted. If it completes successfully within the specified timeout period, the data is returned.
  4. The read attempt may be repeated if the first one fails. Number of attempts is specified by the "Retry attempts" setting. If successful, the data is returned.
  5. If the requested sector cannot be read, the error indication is returned.

Additionaly

  • Before returning the data, the cache will be updated as required.
  • Before returning the error indication, the address of the bad sector will be recorded in a bad sector list associated with the device. Additionally, "Skip factor"-1 sectors following this bad sector will also be recorded as bad without ever trying to read them. This improves scan speed (because bad sectors are typically grouped close together) with a side effect of discarding some data.
Copyright © 2001 - 2024 Alexey V. Gubin.