mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-02-02 22:30:40 -07:00
Firstly, enable the ability to choose the block device containing
a detachable LUKS header by adding the 'header' parameter to
BlockdevCreateOptionsLUKS.
Secondly, when formatting the LUKS volume with a detachable header,
truncate the payload volume to length without a header size.
Using the qmp blockdev command, create the LUKS volume with a
detachable header as follows:
1. add the secret to lock/unlock the cipher stored in the
detached LUKS header
$ virsh qemu-monitor-command vm '{"execute":"object-add",
> "arguments":{"qom-type": "secret", "id": "sec0", "data": "foo"}}'
2. create a header img with 0 size
$ virsh qemu-monitor-command vm '{"execute":"blockdev-create",
> "arguments":{"job-id":"job0", "options":{"driver":"file",
> "filename":"/path/to/detached_luks_header.img", "size":0 }}}'
3. add protocol blockdev node for header
$ virsh qemu-monitor-command vm '{"execute":"blockdev-add",
> "arguments": {"driver":"file", "filename":
> "/path/to/detached_luks_header.img", "node-name":
> "detached-luks-header-storage"}}'
4. create a payload img with 0 size
$ virsh qemu-monitor-command vm '{"execute":"blockdev-create",
> "arguments":{"job-id":"job1", "options":{"driver":"file",
> "filename":"/path/to/detached_luks_payload_raw.img", "size":0}}}'
5. add protocol blockdev node for payload
$ virsh qemu-monitor-command vm '{"execute":"blockdev-add",
> "arguments": {"driver":"file", "filename":
> "/path/to/detached_luks_payload_raw.img", "node-name":
> "luks-payload-raw-storage"}}'
6. do the formatting with 128M size
$ virsh qemu-monitor-command c81_node1 '{"execute":"blockdev-create",
> "arguments":{"job-id":"job2", "options":{"driver":"luks", "header":
> "detached-luks-header-storage", "file":"luks-payload-raw-storage",
> "size":134217728, "preallocation":"full", "key-secret":"sec0" }}}'
Signed-off-by: Hyman Huang <yong.huang@smartx.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||
|---|---|---|
| .. | ||
| acpi.json | ||
| audio.json | ||
| authz.json | ||
| block-core.json | ||
| block-export.json | ||
| block.json | ||
| char.json | ||
| common.json | ||
| compat.json | ||
| control.json | ||
| crypto.json | ||
| cryptodev.json | ||
| cxl.json | ||
| dump.json | ||
| error.json | ||
| introspect.json | ||
| job.json | ||
| machine-common.json | ||
| machine-target.json | ||
| machine.json | ||
| meson.build | ||
| migration.json | ||
| misc-target.json | ||
| misc.json | ||
| net.json | ||
| opts-visitor.c | ||
| pci.json | ||
| pragma.json | ||
| qapi-clone-visitor.c | ||
| qapi-dealloc-visitor.c | ||
| qapi-forward-visitor.c | ||
| qapi-schema.json | ||
| qapi-type-helpers.c | ||
| qapi-util.c | ||
| qapi-visit-core.c | ||
| qdev.json | ||
| qmp-dispatch.c | ||
| qmp-event.c | ||
| qmp-registry.c | ||
| qobject-input-visitor.c | ||
| qobject-output-visitor.c | ||
| qom.json | ||
| rdma.json | ||
| replay.json | ||
| rocker.json | ||
| run-state.json | ||
| sockets.json | ||
| stats.json | ||
| string-input-visitor.c | ||
| string-output-visitor.c | ||
| tpm.json | ||
| trace-events | ||
| trace.h | ||
| trace.json | ||
| transaction.json | ||
| ui.json | ||
| virtio.json | ||
| yank.json | ||