vbkview is a CLI to inspect and extract data from Veeam .vbk backup files.
It is built on top of vbktoolkit and supports both:
- interactive shell mode
- non-interactive commands (automation/CI-friendly)
- Browse VBK internal filesystem and guest filesystem volumes (
ls,tree,stat) - Read file content (
cat) - Extract files (
get) - Find files by name (
find) - Search text in files (
grep) - List embedded virtual disk files (
disks) - Auto-detect guest partitions from embedded virtual disks (
volumes,use) - Interactive tab-completion for commands and paths in shell mode
- JSON output mode for automation (
--json) - Stable exit codes for common error categories
go install github.com/GoToolSharing/vbkview@latestgit clone https://github.com/GoToolSharing/vbkview
cd vbkview
go build -o vbkview .# Run directly from source
go run . --help
# Or run the built binary
./vbkview --help
# Interactive shell
go run . shell --vbk /path/to/backup.vbk
# List root directory
go run . ls --vbk /path/to/backup.vbk /-f, --vbkpath to.vbkfile (required for data commands)--verifyverify VBK metadata CRCs (defaulttrue)--cwdworking directory inside VBK for relative paths--jsonJSON output (when supported)
shellstart interactive modepwdprint current directoryls [path]list directory content (-lfor long format)cat <path>print file content (--limit,--base64)get <src> [dst]extract file (--resume,--sha256)find <name> [start]find files by namestat [path]show metadata (--props)tree [path]print directory tree (--depth)grep <pattern> [start]search text (-i,--max-bytes)diskslist.vhd/.vhdxentriesvolumeslist detected guest volumes (or fallback root volume)
# List detected guest volumes
vbkview volumes --vbk /path/to/backup.vbk
# Long listing
vbkview ls -l --vbk /path/to/backup.vbk /some/dir
# Metadata as JSON
vbkview stat --vbk /path/to/backup.vbk --json /summary.xml
# Tree up to depth 2
vbkview tree --vbk /path/to/backup.vbk --depth 2 /
# Find files (JSON)
vbkview find --vbk /path/to/backup.vbk --json summary /
# Grep case-insensitive in first 1 MiB per file
vbkview grep --vbk /path/to/backup.vbk -i --max-bytes 1048576 "error|warning" /# Simple extraction
vbkview get --vbk /path/to/backup.vbk /path/in/vbk/file.bin ./file.bin
# Resume extraction if output already exists
vbkview get --vbk /path/to/backup.vbk --resume /path/in/vbk/file.bin ./file.bin
# Extract + integrity verification
vbkview get --vbk /path/to/backup.vbk --sha256 <expected_sha256> /path/in/vbk/file.bin ./file.bin
# JSON extraction result
vbkview get --vbk /path/to/backup.vbk --json /path/in/vbk/file.bin ./file.binvbk[/]> ls
vbk[/]> cd some/folder
vbk[/some/folder]> ll
vbk[/some/folder]> stat file.txt
vbk[/some/folder]> grep "password" /
vbk[/some/folder]> get file.txt ./file.txt
vbk[/some/folder]> quit
In interactive mode, press Tab to autocomplete:
- command names (
ls,cat,get, ...) - file and directory paths
usevolume indexes
0success1generic error2usage/argument error3path not found4not a directory5is a directory (when file expected)6unsupported data/feature7invalid VBK input/metadata
go test ./...
go build .If you work locally with vbktoolkit, use a replace directive in go.mod:
replace github.com/GoToolSharing/vbktoolkit => ../vbktoolkit