Skip to content

Releases: fcorbelli/zpaqfranz

Windows executables and source code

13 Oct 18:53
3189b3a
Compare
Choose a tag to compare

🚀 Release Notes — NTFS Partition Image Support (VHD Mode)

Added

  • Support for NTFS partition imaging with VHD restoration
    • You can now create NTFS partition images and restore them directly as VHD files, mountable from Windows.

Usage Example

To back up your C: drive (or any NTFS partition):

zpaqfranz a z:\backup.zpaq C: -image -vhd

Just add -vhd to the usual -image command (* no vss for now, next release...)

The process stores a special backward-compatible format, split into two files:

image_C.fhd
image_C.header

Restoration

To extract and restore as a mountable VHD file:

zpaqfranz x z:\backup.zpaq -vhd

This will generate

image_C.vhd

Notes on Storage and Efficiency

  • The resulting .vhd file is not as compact as the zpaqfranz's NTFS-specific image format (-image -ntfs).
  • However, it does not require double the disk space for restoration (unlike the ntfs command).
  • The output file size corresponds roughly to the actual used space on the original partition.

Example:
A 256 GB NTFS partition with 100 GB of used data will produce a .vhd file of about 100 GB.

Mounting and Extraction

The generated .vhd can be mounted or opened using:

  • Windows Disk Management
  • FTK Imager
  • OSFMount
  • Or directly opened with 7-Zip to extract files.

Experimental Feature

This feature is still experimental — a large on-screen warning will appear.
It has not been fully tested yet.
Future versions will include auto-mount support and further refinements.

Integrity Check

To verify that two directories (e.g., G:\data and C:\data) are identical —
for instance, after mounting your .vhd as G: — run:

zpaqfranz sum g:\data -xxh3 -ssd -summary
zpaqfranz sum c:\data -xxh3 -ssd -summary

Tip: Use the -ssd flag only for solid-state drives.

Avoid it on traditional spinning disks.

Tip: extracting huge file on NTFS partition, use -sparse to speed up (a lot)

Download zpaqfranz

Windows executables and source code

01 Oct 12:26
b06298b
Compare
Choose a tag to compare

Added

  • Experimental FRANZEN encrypted format support significantly improved.

    • Can be enabled easily during (a) phase using -franzen password.
    • Works with or without the -key option.
    • Encryption can be done:
      • Only with FRANZEN, or
      • With standard zpaq and then additionally cascaded with FRANZEN.
  • New command: work ispasswordok

    • Quickly checks if the password for a .franzen file is valid.
  • New switch: -memzero

    • Wipes FRANZEN data structures from memory.
    • Mostly unnecessary in practice (it’s unlikely someone will dump your RAM just to steal your password), but included anyway.

Notes

  • The FRANZEN format and its related parameters are still under heavy development.
    • They are ABSOLUTELY not suitable for anything beyond experimentation.
    • The header does not store the version of zpaqfranz used, so there is zero backward compatibility.

As the Italian saying goes: "Uomo avvisato..."

Download zpaqfranz

Windows executables and source code

23 Sep 18:34
7617f81
Compare
Choose a tag to compare

FRANZEN Enhancements

Added

  • Experimental FRANZEN function now stores CRC-32 of encrypted file blocks in the header.
  • New work crc32 command for quick integrity checks without requiring the encryption password.

Improved

  • CRC-32 computation uses multi-threaded block processing, similar to zpaqfranz.
  • Verification function skips the first 140 bytes (128 + 12) and processes the rest efficiently.
  • Supports high-speed integrity checks for cloud transmission on standard machines.

Notes

  • CRC-32 is not cryptographic; it only provides a fast integrity check.
  • Full verification still requires work test with the encryption password.
  • Additional checks are planned for future refinements.

Download zpaqfranz

Windows executables and source code

22 Sep 13:09
9615011
Compare
Choose a tag to compare

Changelog / Release Notes

SFTP Bandwidth Limitation

SFTP bandwidth limitation, distributed across multiple threads, using the -bandwidth switch.

New Switches and Features

  • -sparse: On Windows, attempts to create a sparse file (typically for NTFS). This can halve the extraction time for gigantic files.
  • -huge: Uses a different algorithm for file preparation. Useful for few but enormous files on filesystems that do not support sparse files.

Details: Discussion #213

  • In the dir command, the -nodir switch now displays only files, excluding folders.
  • In the hash command, a new -norecursion switch performs as expected (non-recursive hashing).
  • The -always switch forces adding files even if their timestamp has not changed. Conceptually similar to -only, it can be repeated and used with wildcards.

Compatibility and Performance Improvements

  • Enhanced iswindowsxp function for improved compatibility (in theory).
  • Improved wide character support on Windows, including some emojis.
  • Rewritten output function (potential for introduced bugs, but refactoring was necessary).
  • Most source code comments are now in English.
  • Improved local time handling, including for negative UTC offsets (e.g., USA).
  • Added support for file hash calculations with an offset (implementation for future FRANZEN testing).

New Functions and Builds

  • New kickstart function for downloading files from the internet or extracting them (if available) on Windows.

Details: Discussion #205

  • Added release of zpaqfranz-full.exe (for 64-bit Windows), which includes statically linked resources (useful for offline systems; no other functional differences).

FRANZEN Encryptor

Details: Encode.su Thread

Essentially, this is an early (very immature) version of a future capability to encrypt zpaqfranz files (losing backward compatibility with zpaq) using a different encryption system and a separate password.

In the future (not yet implemented), it will enable double encryption for files: an outer layer (FRANZEN) and an inner layer (standard zpaq). This allows GDPR-compliant cloud storage where the provider knows the outer password, but only the user knows the inner one.

Key feature: Parallel integrity testing of the encrypted file. Instead of single-threaded hashing (reading one byte at a time to compute e.g., SHA-256), FRANZEN reads the encrypted file in blocks, achieving real-world performance exceeding 2GB/s on consumer hardware on non-spinning drives

This is a highly complex topic—treat it as experimental (which it is).

Service Note

I've opened a Discussions area on GitHub for suggestions and requests: zpaqfranz Discussions

Download zpaqfranz

Windows executables and source code

13 Aug 14:59
de23bc2
Compare
Choose a tag to compare

Brand new branch (63)

This new release introduces numerous changes, making it a proper new branch.
As is well known, many modifications typically correspond to many new "features"... ahem... bugs, but the new features are very interesting.

New compile-time define -DOPEN

It's now possible to create a version called zpaqfranz-open, completely based on code free from binary portions.
This is designed for environments where security is paramount.

https://github.com/fcorbelli/zpaqfranz/wiki/Security:-open-software

You can achieve a similar result by simply running:

sed -i "/NOSFTPSTART/,/NOSFTPEND/d" zpaqfranz-open.cpp

-keyfile Support

It's now possible to complement the traditional password encryption method (-key something) with the use of a keyfile. This is a file (between 4KB and 50MB) whose hash can be used as an additional key.

Let's proceed step by step:

First, you need to identify a "good" file, one that has sufficiently good entropy.

To do this, you need to verify if it's good enough using the work keyfile command as in the example:

zpaqfranz work keyfile zpaqfranz.cpp
zpaqfranz v63.1p-JIT,SFTP-L,HW BLK3,SHA1/2,4,SFX64 55.1,(2025-08-13)
Entropy: 5.7211 bit/byte : Not suitable — entropy too low, choose a better one
0.015s (00:00:00,512) (with errors)

In this case, the zpaqfranz.cpp file is not good "enough".

What is a "good key file"?

It depends.
Generally, I suggest using a JPG image which, given its storage format, generally has very high entropy and is not easy to replicate exactly (cutted a very long story short)

Here's an example:

C:\zpaqfranz>zpaqfranz work keyfile 01.jpg
zpaqfranz v63.1p-JIT,SFTP-L,HW BLK3,SHA1/2,4,SFX64 55.1,(2025-08-13)
Entropy: 7.7894 bit/byte : Suitable for cryptography
encoded: 5gL9VGz7UyD1nZ8ffPWvGhNM1dm5tKqG38nmkW4L93f7hRFa6xp7KFsU13KWodyDgujhEFSXUPXPdoGs1Lou2kC1
<<01.jpg>>
|01 5: FIVE       |19 W: WHISKEY  UP|37 k: kilo       |55 s: sierra     |73 U: UNIFORM  UP
|02 g: golf       |20 v: victor     |38 W: WHISKEY  UP|56 U: UNIFORM  UP|74 P: PAPA     UP
|03 L: LIMA     UP|21 G: GOLF     UP|39 4: FOUR       |57 1: ONE        |75 X: XRAY     UP
|04 9: NINE       |22 h: hotel      |40 L: LIMA     UP|58 3: THREE      |76 P: PAPA     UP
|05 V: VICTOR   UP|23 N: NOVEMBER UP|41 9: NINE       |59 K: KILO     UP|77 d: delta
|06 G: GOLF     UP|24 M: MIKE     UP|42 3: THREE      |60 W: WHISKEY  UP|78 o: oscar
|07 z: zulu       |25 1: ONE        |43 f: foxtrot    |61 o: oscar      |79 G: GOLF     UP
|08 7: SEVEN      |26 d: delta      |44 7: SEVEN      |62 d: delta      |80 s: sierra
|09 U: UNIFORM  UP|27 m: mike       |45 h: hotel      |63 y: yankee     |81 1: ONE
|10 y: yankee     |28 5: FIVE       |46 R: ROMEO    UP|64 D: DELTA    UP|82 L: LIMA     UP
|11 D: DELTA    UP|29 t: tango      |47 F: FOXTROT  UP|65 g: golf       |83 o: oscar
|12 1: ONE        |30 K: KILO     UP|48 a: alpha      |66 u: uniform    |84 u: uniform
|13 n: november   |31 q: quebec     |49 6: SIX        |67 j: juliet     |85 2: TWO
|14 Z: ZULU     UP|32 G: GOLF     UP|50 x: xray       |68 h: hotel      |86 k: kilo
|15 8: EIGHT      |33 3: THREE      |51 p: papa       |69 E: ECHO     UP|87 C: CHARLIE  UP
|16 f: foxtrot    |34 8: EIGHT      |52 7: SEVEN      |70 F: FOXTROT  UP|88 1: ONE
|17 f: foxtrot    |35 n: november   |53 K: KILO     UP|71 S: SIERRA   UP
|18 P: PAPA     UP|36 m: mike       |54 F: FOXTROT  UP|72 X: XRAY     UP
5gL9 VGz7 UyD1 nZ8f fPWv GhNM 1dm5 tKqG 38nm kW4L
93f7 hRFa 6xp7 KFsU 13KW odyD gujh EFSX UPXP doGs 1Lou 2kC1
THIS KEY IS  CRITICAL. Guard it. Losing it means losing your data.
PRIMARY    : Print on paper. Store safely offline.
SECONDARY  : Save  to secure USB drive.
LAST RESORT: Photograph with extreme caution. Avoid cloud auto-upload!

Crucial KEY data copied on clipboard. Please safekeeping!
0.047s (00:00:00,864) (all OK)

If you use a keyfile (by adding -keyfile filename to the zpaqfranz command line), you risk, of course, losing it.

What happens if you lose the file?

You lose everything, because it's like forgetting the password.

Therefore, a "smart" way is to note down the corresponding recovery code, which zpaqfranz shows for this purpose. On Windows, this information is also copied to the clipboard; you can paste it into notepad, for example, or wherever you prefer.

I recommend PRINTING ON PAPER (or copying by hand, even better, but it's quite long) the key code, so you can handle the case where you lose the keyfile.
Obviously, this is not mandatory, it's just your business.

The preservation mechanisms (in order of security) are:

  • Copy it by hand, with paper and pen. This is the absolutely safest method
  • Print it on paper and store it away
  • Save it on a USB drive (or more than one) that you will keep secure
  • Last possibility: photograph it with your phone. This is not recommended, as there are MANY automatic backup systems that could upload your key to the cloud without your knowledge

Finally, remember: also use a password. The combination of key+keyfile makes a brute force attack very difficult.

Main Help Information Redesigned

Running zpaqfranz without parameters now shows logically organized help:

zpaqfranz v63.1p-JIT,SFTP-L,HW BLK3,SHA1/2,4,SFX64 55.1,(2025-08-13)
Top tier archiver w/dedup & HW SHA1/2 (C) by Franco Corbelli
Help     : zpaqfranz h <command> (single) zpaqfranz h h (full)
Core     : a, e, l, x
Backup   : backup, g, mysqldump, q
Restore  : ntfs, w
Info/list: dirsize, drive, fzf, i, ls, pakka, tui
Test     : p, sync, t, testbackup
Cloud    : cloud, download, sftp, ssh
File     : 1on1, c, cp, d, dir, find, hash, n, r, rd, s, sum
Admin    : ads, autotest, b, collision, consolidate, crop, dump, k, m, password, redu, trim, update, upgrade
Utils    : checkpassword, comparehex, count, f, isopen, last, last2, pause, rsync, sfx, utf, versum, work, z
Switches : zpaqfranz h main  zpaqfranz h common  zpaqfranz h franz
Update   : zpaqfranz update -force

This facilitates requesting additional help, for example zpaqfranz h a to get help on the add command.

New SSH Command with sha1sum, md5sum, sha256sum Commands and Switches

It's now possible (lightly tested on *nix) to use the libssh library to remotely execute commands, which for now are hardcoded: -sha1deep, -md5deep, -sha256deep, comparing the results with a local folder.

The command can also be used with the cloud command.

Explanation:

zpaqfranz already performs a quick check between the local file and the one uploaded remotely. This uses the QUICK hash and is therefore executed in a handful of seconds. However, it's not a global, intensive verification and might not detect corruptions.

Using the new command instead, the remote server will calculate (for example) the md5 hashes of the files, and the local zpaqfranz will compare them with those present. This way, I can have near certainty that they are exactly identical.

Currently, md5, sha1, and sha256 are supported. In the future, there will also be more performant ones (e.g., XXH3).

During use, on Windows 64, zpaqfranz downloads the necessary DLL libraries from my site, placing them in the executable folder.

-franzhash in Hash Command

A scenario that can occur is having to compare the hash of a very large local file residing on a solid-state disk with a remote one that instead resides on a magnetic disk, or having terabyte+ files on solid-state to be checked.
This is the practice of cloud backups for virtual machines.

In this example, I'm calculating with 4 threads (-t4) and -sha256 the franzhash of the file j:\win11.zpaq:

Remember: -t4!

C:\zpaqfranz>zpaqfranz hash j:\win11.zpaq -franzhash -sha256 -t4
zpaqfranz v63.1p-JIT,SFTP-L,HW BLK3,SHA1/2,4,SFX64 55.1,(2025-08-13)
franzhash: parallel run 8.21 GB (NVMe/RAID of SSDs, multicore CPU)
 100.00% ETA 00:00:00    8.21 GB @    4.04 GB/s

franzhash:SHA-256:4:c:2204732550:5r^hm6S^Se1dOMq3AWN^0LIZb6o@7f6:E[f3A`NN0fV*]6SpPb1IO&T681b\3&!WU7RB$f1dj)W6T@D$
2.031s (00:00:02,4.00MB) (all OK)

The result I obtained is visible in the second-to-last line.

SHA-256:4:

Note: SHA-256 and 4 are indicated, i.e., the number of parts (fundamental information).

Now if I want to check this file hash (for example, by running the check on a remote server), I must use EXACTLY this information: sha256 and 4 parts, but enforcing -frugal.
This will recalculate the hash but without using multithreading (therefore for magnetic disks. On solid state, just do not use -frugal)

Example:

zpaqfranz hash j:\win11.zpaq -franzhash -sha256 -t4 -frugal -terse

This is an extremely specialized topic. Let's say it's to maximize hash checking speed for both magnetic and solid-state disks.

By using powerful CPUs (multicore), hardware acceleration (AMD), and fast storage devices (NVMe Gen 5), it's not uncommon to reach real-world performance in the 5–8 GB/s range.

Clearly, this is not a cryptographically robust test like the standard sequential calculation, but it can boost performance by a factor of 4 or more — which makes a real difference when dealing with huge files (in the multi-terabyte range).

Work in progress

Help Info Reworked

Help management is being redesigned, both from an aesthetic and content perspective. It's very long and heavy work, but I work on it in my free time.

Win64: Virtual Memory "Supercache" Mechanism

The zpaq format inherently provides that output is random, meaning that archives, during the extraction phase, are read sequentially, but decompressed files are written (generally) NOT sequentially, but with head seeks.

This is not a problem using solid-state units (SSD/NVMe), but it can become one for magnetic disks, such as slow external USB units.

zpaqfranz al...

Read more

Windows executables and source code

29 Jul 16:13
72e0864
Compare
Choose a tag to compare

New cloud command (developed on Windows, not yet tested on other systems)

This is a groundbreaking innovation.
It essentially performs backups and uploads them to an SFTP server in an "intelligent" way.
It also supports an external program/script to send logs via email, with full privacy support (removing |STAT| lines containing file names).
The best way to get started is:

zpaqfranz h cloud

Once thoroughly tested on non-Windows systems, a comprehensive guide will be published on the GitHub wiki.

Sets error level and exits if seterrorlevelX is passed via command line

New mkdir verb for SFTP

New checkpassword command to test password validity

Heuristic search for libcurl library (dylib) on Macintosh

Displays various commands to install libcurl if it cannot be found

Fallback if SFTP SSH key file is missing but a password is provided

testbackup now supports filenames in the format _????????.zpaq

Fixed file extraction in TUI, removing ":" from filenames

Improved versum output

New -comment switch for pause to customize the prompt

Shortened reminder about using double quotes

Improved detection of output redirection

No longer hangs when -silent is used and a password is requested

Various output improvements

Replaced advanced C++ constructs for better compatibility

New verbs for work

devart-red, devart-green, devart-yellow, devart-cyan print colored text

getsize reports the size of one or more files

Download zpaqfranz

Windows executables and source code

23 Jul 15:21
7360fa3
Compare
Choose a tag to compare

New sync command

This command compares the content of an archive, or one of its subfolders, with a filesystem.
It is generally recommended to use absolute paths rather than relative ones.
It essentially serves two purposes:

  1. Test or verification: After performing an archive with the a command, a "heavy" verification can be done with the sync command (use -quick to skip hash checking and only compare sizes, or -ssd to enable multithreading on non-rotational disks).
  2. Estimate data: Estimate how much data would be archived if an update for a new version were performed.
    It differs from the v (verify) command because it also shows new files not present in the archive and those that are missing.

Multithread support for the t (test) command

It is now possible to use all cores in the second phase (CRC-32 reconstruction).
This has no significant impact if there are few archived files (e.g., a single virtual disk image), but it can reduce processing time by up to ten times in optimal cases (e.g., millions of small files, such as on a file server).
Note: This feature is not extensively tested.

Default progress is now displayed at one-second intervals

Instead of updating based on ETA changes, this reduces console impact for very large jobs.

Attempt (harder) to restore text color when pressing Ctrl+C

Using -stat adds |STAT| to output lines

This facilitates the removal of sensitive information for privacy purposes (e.g., using grep, awk, etc.) when sending logs via email.

Renamed the key file for the sftp command to -ssh

Further refactoring, likely introducing new bugs

Various minor internal improvements

Download zpaqfranz

Windows executables and source code

19 Jul 15:23
0c0453b
Compare
Choose a tag to compare

Version Number Change for Macintosh Users

To address an issue affecting Homebrew users on Macintosh who were "stuck" due to a versioning error, a significant version number increment has been implemented.
This should resolve the issue for those users.
If you see version 62.3 instead of 61.7, know that it’s for a good cause.

Internal Changes to Reduce False Positives in Kaspersky and Other Antivirus Software

Various program analysis systems use heuristics to detect viruses.
After reverse-engineering Kaspersky’s detection methods, which flagged false positives for some versions of zpaqfranz, I introduced source code fixes.
Unfortunately, due to known reasons, Kaspersky is no longer installed on any of my machines, so I hadn’t noticed this earlier.

Autotest Command: Default Quick Hash Check for Moderate File Sizes

The autotest command now performs a quick hash check by default, even for moderately sized files.
This should help detect errors like hexadecimal conversion issues.

Autotest Command: Additional Information with -all Switch

The autotest command now displays additional details when using the -all switch, particularly the execution time of operations.
This is useful for performance comparisons.

Info Command (i): File Size Display for Encrypted Files

The i (info) command now shows the file size (or sizes for multipart archives) including the additional 32 bytes for encrypted versions.
For example, if an archive is 10,000 bytes but encrypted, the actual size is 10,032 bytes, and this is now displayed.

SFTP Command: Support for Key-Based Authentication

The sftp command now supports the -key option to use keys for connecting to an SFTP server.
Significant changes to the SFTP interface are ongoing, with plans to make it the primary interface for ransomware-resistant systems in the future.

SFTP Command: Bandwidth Limiting for Uploads

The sftp command now allows limiting the total upload bandwidth using the -bandwidth switch.
Note that this limit is divided by the number of threads if using -ssd. For example, setting a 100K limit with 10 threads results in a 10K limit per thread.
Use -tX to cap to X threads (with -ssd)

Fixed a Specific Case in the t Command for CRC32 Block Recalculation

A particular issue with the t command for recalculating CRC32 blocks has been addressed.
This should resolve the issue permanently.
Who knows.
In the future, a multithreaded checker might be developed.

Refactoring from Static Analysis

Static analysis refactoring has been performed.
While I hope it hasn’t introduced too many bugs, issues are possible.
Compilation tests were limited to two environments (Windows and Debian).
Full certification across all platforms will wait until the SFTP module is further developed.

Download zpaqfranz

Windows executables and source code

10 Jul 14:14
582d4d8
Compare
Choose a tag to compare

Fixed a refactoring bug (reverse hex)

Release Notes

There are many new features in this build, so particular attention should be paid to the possibility of new bugs being introduced.

Main Change

The primary change is the overhaul of the interface with CURL and the management of SFTP commands, which now (mostly) support the -ssd switch for parallel operations.

Translation

The main challenge in comparing a local backup with a remote one is the difficulty of remotely recalculating the hashes of archives (support for this will be added in the future), especially given the large size of backups (hundreds of files, hundreds of gigabytes).
zpaqfranz supports the QUICK hasher, which, for files larger than 64KB, calculates the XXHASH64 hash of the first 16KB, the last 16KB, and 16KB from the middle of the file.
The purpose is to reduce the risk of data alignment issues, such as those caused by failed rsync --append operations.

While this is not a perfect test, nor cryptographically secure, it is fast.
In just a couple of minutes, it can reliably check hundreds of gigabytes, which would be impossible with traditional methods.

As mentioned, in the future, I plan to implement support for a "hardcore" comparison using MD5 on systems that support it, for example, for weekly verifications.

By using multiple concurrent SFTP threads (which has high latency), systems with magnetic disks can also be checked quickly.
Naturally, the number of threads should not be excessive (a limit of 99 has been set).
Generally, the number of CPU cores is sufficient (typically 4 to 16).
You can adjust this using the -tX option, where X is the number of threads you want.
During multiple uploads, information for each thread is displayed in a somewhat rough manner (for now), tested only on Windows.
There are no specific checks for console size or similar, so you'll have to make do.
In the future, I plan to make the graphical aspects more robust.
In summary, the 1on1 SFTP command with the -ssd switch is a groundbreaking innovation (provided I can get it to work well!) for those managing very large backups.
Of course, if your archive is only a few gigabytes, this issue is less relevant.

Supported commands for sftp

  • upload: Uploads a single file to SFTP.
  • verify: Quickly compares a local file to a remote file.
  • quick: Retrieves the QUICK hash of a remote file.
  • ls: Lists the contents of a remote folder.
  • delete: Deletes a remote file.
  • size: Retrieves the size of a remote file.
  • rsync: Performs an rsync-like operation to sync local files to a remote folder (-ssd supported).
    • -force: Prevents appending.
  • 1on1: Quickly compares local files to a remote folder (-ssd supported).

New Switches

  • -appendoutput: Appends data to the -out file instead of recreating it each time.
  • -writeonconsole: Writes output to stderr, allowing data to be displayed on the console even when redirected.
  • -last: Operates on the last file in a selection, typically used for the last part of a multipart archive.
  • -home: Now works with the l (list) command, showing the sizes of virtual folders inside an archive at one level deep.

Other Additions

  • Introduced work devart for highly visible on-screen text.
  • In the utf command, the -fix255 switch checks the maximum length of specified file names with maxsize.
  • New drive command on Windows: Displays the list of connected physical disks with their respective numbers.
  • The -all switch (with -image) on Windows operates on an entire disk image, similar to dd, rather than a single partition.
  • New commands: work datebig and work datetimebig.

Additional Features

It is now possible to extract only the files added in a specific version, marked with a textual comment, using the following example format:

c:\zpaqfranz\zpaqfranz x z:\2.zpaq -to z:\wherever -comment "something" -range

Miscellaneous Changes

  • Improved OpenBSD support.
  • On Windows, decodewinerror is no longer hardcoded (now respects the local language).
  • Fixed the test command to address occasional false positives.
  • Improved alignment of help text lines.
  • Removed comments from the CURL library and unused defines.

Additional Notes

Starting from version 61.5, I have made the compilers I use available on the GitHub repository for the Windows components of zpaqfranz. This enables bit-for-bit recompilation of the main version (zpaqfranz.exe, the 64-bit version). For other versions or older ones, manual compilation is required. If needed, please ask for assistance

  • Reduced the size of the source code.

Download zpaqfranz

Windows 32 (XP)/64 binaries, 64 bit-HW accelerated

16 Jun 10:35
c6d3750
Compare
Choose a tag to compare

- Many features in this release (e.g., -image, -ntfs, ntfs command, work resetacl) are experimental and not fully tested. Use with caution and report issues.

Added

For *nix (Linux, etc.)
  • -image Switch: Added to the a (add) command to create a sector-by-sector copy of a device, similar to the dd command.
    • Restored images can be mounted on Linux using a snippet like:
      fdisk -l image.img
      losetup -fP _dev_sda.img
      losetup -a
      mkdir -p /ripristinato
      mount /dev/loop0p1 /ripristinato
      (...)
      umount /ripristinato
      losetup -d /dev/loop0
    • Experimental feature; not thoroughly tested.
  • -tar Switch: Available during archive creation (a) and extraction (x) to preserve file access rights, group, and user metadata.
    • When used with the l (list) command, displays the added metadata.
    • Simplifies metadata restoration for *nix systems.
  • Improved ZFS Backup Handling: Enhanced automatic integration with pv for better user feedback on backup progress during ZFS operations.
For Windows
  • -ntfs Switch: When used with -image, stores only the used sectors of an NTFS partition in the zpaq archive.
    • Format is experimental and not yet optimized.
    • Intended for emergency image-based backups of Windows systems.
  • New ntfs Command: Regenerates the original file from a zpaqfranz-created image, filling unused sectors with zeros.
    • Experimental and under active development.
  • -ntfs Switch (without -image): Scans an NTFS drive by reading and decoding its NTFS data directly, bypassing file-by-file enumeration.
    • Similar to the behavior of the "Everything" utility.
    • Significantly speeds up file enumeration on large, slow servers with magnetic disks.
  • New work resetacl Command: Generates a batch file to reset folder permissions to administrators.
    • Useful for normalizing access after restoring NTFS folders with restricted permissions.
    • Experimental; intended to address post-restore access issues.

Changed

  • Code Refactoring: Reduced compilation warnings for both Windows and *nix platforms.
  • Dropbox Cache Handling: Skips .dropbox.cache folders during operations to avoid unnecessary processing.
  • Command Path Detection (*nix): Adopted a smarter strategy to locate *nix commands in likely directories, improving reliability.

Notes

  • The -ntfs switch is designed for specific use cases like large server enumeration or emergency backups but may evolve in future releases.
  • The -tar switch enhances metadata handling for *nix, making it easier to restore complex file permissions.
  • The pv integration for ZFS backups improves user experience but requires pv to be installed.
  • Feedback and bug reports are welcome via GitHub issues.

Download zpaqfranz