Skip to content

bonk-dev/Ratonis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ratonis

Windows disk cloning and backup utility

Features

  • disk cloning
  • simple backup system
    • backup files/dirs to a single .zip
    • restore files/dir from a backup file (to their original paths)
    • verify backups (SHA256 digests)

Usage

.\Ratonis.exe -h
Description:
  Ratonis - disk cloning and backup utility

Usage:
  Ratonis [command] [options]

Options:
  --version       Show version information
  -?, -h, --help  Show help and usage information

Commands:
  targets                       List available cloning targets
  clone <source> <destination>  Perform a disk clone
  backup <path>                 Backup a list of directories/files
  verify <path>                 Verify a backup file
  restore <path>                Restore a backup

Examples

Below are examples of how you can use Ratonis.

List clone targets

.\Ratonis.exe targets
Target { Index = 1, TargetId = \\.\PHYSICALDRIVE1, Model = QEMU QEMU HARDDISK SCSI Disk Device, InterfaceType = SCSI, MediaType = Fixed hard disk media, Description = Stacja dysków, Size = 1069286400, SizeInGB = 1,00 GB }
Target { Index = 0, TargetId = \\.\PHYSICALDRIVE0, Model = QEMU QEMU HARDDISK SCSI Disk Device, InterfaceType = SCSI, MediaType = Fixed hard disk media, Description = Stacja dysków, Size = 42944186880, SizeInGB = 39,99 GB }
Target { Index = 2, TargetId = \\.\PHYSICALDRIVE2, Model = QEMU QEMU HARDDISK SCSI Disk Device, InterfaceType = SCSI, MediaType = Fixed hard disk media, Description = Stacja dysków, Size = 1069286400, SizeInGB = 1,00 GB

Clone disks

Make sure to run as admin!

Ratonis.exe clone \\.\PHYSICALDRIVE1 \\.\PHYSICALDRIVE2
Bringing \\.\PHYSICALDRIVE2 offline
Using sector size of 512 bytes
Written: 4194304/1069286400 bytes (0,00/1,00 GB)
Written: 8388608/1069286400 bytes (0,01/1,00 GB)
Written: 12582912/1069286400 bytes (0,01/1,00 GB)
Written: 16777216/1069286400 bytes (0,02/1,00 GB)
Written: 20971520/1069286400 bytes (0,02/1,00 GB)
[...]
Written: 1052770304/1069286400 bytes (0,98/1,00 GB)
Written: 1056964608/1069286400 bytes (0,98/1,00 GB)
Written: 1061158912/1069286400 bytes (0,99/1,00 GB)
Written: 1065353216/1069286400 bytes (0,99/1,00 GB)
Written: 1069286400/1069286400 bytes (1,00/1,00 GB)
All done!
Bringing \\.\PHYSICALDRIVE2 online

Backup files/dirs

Usage:

Ratonis.exe backup -h
Description:
Backup a list of directories/files

Usage:
Ratonis backup [<path>...] [options]

Arguments:
<path>  Path to backup target(s) (file/dir)

Options:
--description <description>            Short backup name/description [default: Unnamed]
--output-directory <output-directory>  Output directory for the backup file (auto-generated name) [default:
C:\Users\bonk\Desktop\aa]
--output-file <output-file>            Output path for the backup file (overrides --output-directory)
-?, -h, --help                         Show help and usage information

Actual example:

Ratonis.exe backup test1\ test2\ test3.txt --description "example backup"
Collecting paths
Marking C:\Users\bonk\Desktop\aa\test3.txt (file) as backup target
Adding C:\Users\bonk\Desktop\aa\test1\aaaaa.txt to C:\Users\bonk\AppData\Local\Temp\tmpxx0uc5.tmp (rel: aaaaa.txt)
Adding C:\Users\bonk\Desktop\aa\test2\aaaaa.txt to C:\Users\bonk\AppData\Local\Temp\tmpof3hcj.tmp (rel: aaaaa.txt)
Adding C:\Users\bonk\Desktop\aa\test1\bccc.txt to C:\Users\bonk\AppData\Local\Temp\tmpxx0uc5.tmp (rel: bccc.txt)
Adding C:\Users\bonk\Desktop\aa\test2\bccc.txt to C:\Users\bonk\AppData\Local\Temp\tmpof3hcj.tmp (rel: bccc.txt)
Adding C:\Users\bonk\Desktop\aa\test1\test2 to C:\Users\bonk\AppData\Local\Temp\tmpxx0uc5.tmp (rel: test2)
Adding C:\Users\bonk\Desktop\aa\test2\test2 to C:\Users\bonk\AppData\Local\Temp\tmpof3hcj.tmp (rel: test2)
Adding C:\Users\bonk\Desktop\aa\test1\test2\aaaaaaaaaaaaaaaaaaaaaaaaaaa.txt to C:\Users\bonk\AppData\Local\Temp\tmpxx0uc5.tmp (rel: test2/aaaaaaaaaaaaaaaaaaaaaaaaaaa.txt)
Adding C:\Users\bonk\Desktop\aa\test2\test2\aaaaaaaaaaaaaaaaaaaaaaaaaaa.txt to C:\Users\bonk\AppData\Local\Temp\tmpof3hcj.tmp (rel: test2/aaaaaaaaaaaaaaaaaaaaaaaaaaa.txt)
Backup path: C:\Users\bonk\Desktop\aa\9da06c02-9d04-4e49-b8f3-a7aad4d83334-20250605-183931.zip
Compressing C:\Users\bonk\Desktop\aa\test1\ (c4c5d655-5825-4c4e-bdb8-7a8ff340cdff)
Compressing C:\Users\bonk\Desktop\aa\test2\ (81f48fb2-63ce-410a-8669-ce54b9737847)
Compressing C:\Users\bonk\Desktop\aa\test3.txt (c1f255c7-04e1-4cb0-a337-29628e010ff2)
Writing index
Writing info
Deleting tmp files
Deleting C:\Users\bonk\AppData\Local\Temp\tmpxx0uc5.tmp
Deleting C:\Users\bonk\AppData\Local\Temp\tmpof3hcj.tmp
Backup done

Backup verification

.\Ratonis.exe verify 9da06c02-9d04-4e49-b8f3-a7aad4d83334-20250605-183931.zip
============BACKUP INFO============
Description: example backup
Done at: 05.06.2025 18:39:31
===================================
Verifying backup entry: c4c5d655-5825-4c4e-bdb8-7a8ff340cdff
Successfully verified backup entry (guid=c4c5d655-5825-4c4e-bdb8-7a8ff340cdff)
Tar entry: C:\Users\bonk\Desktop\aa\test1\aaaaa.txt. Size: 272 bytes (guid=c4c5d655-5825-4c4e-bdb8-7a8ff340cdff)
Tar entry: C:\Users\bonk\Desktop\aa\test1\bccc.txt. Size: 34 bytes (guid=c4c5d655-5825-4c4e-bdb8-7a8ff340cdff)
Tar entry: C:\Users\bonk\Desktop\aa\test1\test2. Size: 0 bytes (guid=c4c5d655-5825-4c4e-bdb8-7a8ff340cdff)
Tar entry: C:\Users\bonk\Desktop\aa\test1\test2/aaaaaaaaaaaaaaaaaaaaaaaaaaa.txt. Size: 0 bytes (guid=c4c5d655-5825-4c4e-bdb8-7a8ff340cdff)
Entry c4c5d655-5825-4c4e-bdb8-7a8ff340cdff done
Verifying backup entry: 81f48fb2-63ce-410a-8669-ce54b9737847
Successfully verified backup entry (guid=81f48fb2-63ce-410a-8669-ce54b9737847)
Tar entry: C:\Users\bonk\Desktop\aa\test2\aaaaa.txt. Size: 272 bytes (guid=81f48fb2-63ce-410a-8669-ce54b9737847)
Tar entry: C:\Users\bonk\Desktop\aa\test2\bccc.txt. Size: 34 bytes (guid=81f48fb2-63ce-410a-8669-ce54b9737847)
Tar entry: C:\Users\bonk\Desktop\aa\test2\test2. Size: 0 bytes (guid=81f48fb2-63ce-410a-8669-ce54b9737847)
Tar entry: C:\Users\bonk\Desktop\aa\test2\test2/aaaaaaaaaaaaaaaaaaaaaaaaaaa.txt. Size: 0 bytes (guid=81f48fb2-63ce-410a-8669-ce54b9737847)
Entry 81f48fb2-63ce-410a-8669-ce54b9737847 done
Verifying backup entry: c1f255c7-04e1-4cb0-a337-29628e010ff2
Successfully verified backup entry (guid=c1f255c7-04e1-4cb0-a337-29628e010ff2)
File entry: C:\Users\bonk\Desktop\aa\test3.txt. Size: 34 bytes (guid=c1f255c7-04e1-4cb0-a337-29628e010ff2)
Entry c1f255c7-04e1-4cb0-a337-29628e010ff2 done
Backup file verified successfully

Backup restore

.\Ratonis.exe restore 9da06c02-9d04-4e49-b8f3-a7aad4d83334-20250605-183931.zip
============BACKUP INFO============
Description: example backup
Done at: 05.06.2025 18:39:31
===================================
Verifying backup entry: c4c5d655-5825-4c4e-bdb8-7a8ff340cdff
Extracting aaaaa.txt to C:\Users\bonk\Desktop\aa\test1\aaaaa.txt
Extracting bccc.txt to C:\Users\bonk\Desktop\aa\test1\bccc.txt
Extracting test2 to C:\Users\bonk\Desktop\aa\test1\test2
Extracting test2/aaaaaaaaaaaaaaaaaaaaaaaaaaa.txt to C:\Users\bonk\Desktop\aa\test1\test2/aaaaaaaaaaaaaaaaaaaaaaaaaaa.txt
Entry c4c5d655-5825-4c4e-bdb8-7a8ff340cdff done
Verifying backup entry: 81f48fb2-63ce-410a-8669-ce54b9737847
Extracting aaaaa.txt to C:\Users\bonk\Desktop\aa\test2\aaaaa.txt
Extracting bccc.txt to C:\Users\bonk\Desktop\aa\test2\bccc.txt
Extracting test2 to C:\Users\bonk\Desktop\aa\test2\test2
Extracting test2/aaaaaaaaaaaaaaaaaaaaaaaaaaa.txt to C:\Users\bonk\Desktop\aa\test2\test2/aaaaaaaaaaaaaaaaaaaaaaaaaaa.txt
Entry 81f48fb2-63ce-410a-8669-ce54b9737847 done
Verifying backup entry: c1f255c7-04e1-4cb0-a337-29628e010ff2
Extracting c1f255c7-04e1-4cb0-a337-29628e010ff2 to C:\Users\bonk\Desktop\aa\test3.txt
Entry c1f255c7-04e1-4cb0-a337-29628e010ff2 done
Restore done

About

Windows disk cloning and backup utility

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages