mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-11 04:26:38 +00:00
This adds a new disk file type next to raw files and qcow images that represent an indirection to further raw disk files. The disk file itself is a proto file with references to file paths for other disks to open and their virtual offsets and lengths. The intention is to make it easy to assemble a single virtual hard disk out of several distinct partition files. In the particular case of Cuttlefish running Android in a VM, this is relevant as the Android build system distributes partitions as separate raw files. While the simple solution is to pass each partition as a separate raw disk, some functionality (like the bootloader) assumes there is a partition table with multiple distinct partitions on a single disk. Implementing composite disk support in the VMM bridges this gap through supporting the general-purpose case of a disk built out of multiple component files. If desired, this can be extended to support qcow files to support unusual configurations like a mixed qcow/raw disk. Enabled with the "composite-disk" feature. Bug: b/133432409 Change-Id: I2b0c47d92fab13b5dc0ca5a960c7cfd2b7145b87 Signed-off-by: Cody Schuffelen <schuffelen@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1667767 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Commit-Queue: Daniel Verkamp <dverkamp@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com>
18 lines
322 B
Protocol Buffer
18 lines
322 B
Protocol Buffer
syntax = "proto3";
|
|
|
|
enum ReadWriteCapability {
|
|
READ_ONLY = 0;
|
|
READ_WRITE = 1;
|
|
}
|
|
|
|
message ComponentDisk {
|
|
string file_path = 1;
|
|
uint64 offset = 2;
|
|
ReadWriteCapability read_write_capability = 3;
|
|
}
|
|
|
|
message CompositeDisk {
|
|
uint64 version = 1;
|
|
repeated ComponentDisk component_disks = 2;
|
|
uint64 length = 3;
|
|
};
|