Skip to content

add get-disk command for VMDK/VHD extraction#2

Open
borje wants to merge 2 commits into
GoToolSharing:mainfrom
borje:main
Open

add get-disk command for VMDK/VHD extraction#2
borje wants to merge 2 commits into
GoToolSharing:mainfrom
borje:main

Conversation

@borje
Copy link
Copy Markdown

@borje borje commented May 5, 2026

Extract virtual disks as flat raw images

Börje Granberg and others added 2 commits May 5, 2026 07:46
Adds a new `get-disk` command that extracts a virtual disk from a VBK
archive as a flat raw image. Multi-extent VMDKs are reassembled
automatically by the underlying vbktoolkit OpenDiskImage API.

- SHA-256 verification computed inline during extraction (io.MultiWriter)
  rather than in a second read pass, keeping memory and I/O constant
  regardless of disk size
- Output file is removed automatically on any error after creation,
  preventing partial images from being left on disk
- BytesWritten is validated against the image's reported DiskSize;
  a mismatch is treated as a hard error
- Exports vbkshell.NormalizePath so path handling is shared rather
  than duplicated across commands
- Pins the local vbktoolkit replace directive, which fixes the root
  cause: DirItem.Open() previously rejected DirItemExtFib files
  (external files), meaning any VMDK stored as an external entry
  could not be read

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant