[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: Problem(s) with encrypted images
From: |
Sebastian Herbszt |
Subject: |
[Qemu-devel] Re: Problem(s) with encrypted images |
Date: |
Mon, 16 Jun 2008 20:14:36 +0200 |
2. When I start qemu, it just hangs there waiting for (assumingly) the
password of the encrypted image. However I cannot find the place where the
prompt actually is.
qemu_key_check in vl.c does use monitor_readline, so you should see a
"Password:"
prompt in the monitor window (press ctrl-alt-2 to get there).
The initialization order seems to be wrong in main() (vl.c):
for(i = 0; i < nb_drives_opt; i++)
if (drive_init(&drives_opt[i], snapshot, machine) == -1)
exit(1);
...
*_display_init();
...
monitor_init();
drive_init() got
...
if (bdrv_open2(bdrv, file, bdrv_flags, drv) < 0 || qemu_key_check(bdrv, file)) {
and qemu_key_check depends on the monitor:
term_printf("%s is encrypted.\n", name);
for(i = 0; i < 3; i++) {
monitor_readline("Password: ", 1, password, sizeof(password));
Can you try this patch? It will break monitor but should read the password.
- Sebastian
--- vl.c.orig Mon Jun 16 18:07:39 2008
+++ vl.c Mon Jun 16 17:47:44 2008
@@ -5307,7 +5307,7 @@ static int drive_init(struct drive_opt *
bdrv_flags |= BDRV_O_SNAPSHOT;
if (!cache)
bdrv_flags |= BDRV_O_DIRECT;
- if (bdrv_open2(bdrv, file, bdrv_flags, drv) < 0 || qemu_key_check(bdrv,
file)) {
+ if (bdrv_open2(bdrv, file, bdrv_flags, drv) < 0 ) {
fprintf(stderr, "qemu: could not open disk image %s\n",
file);
return -1;
--- monitor.c.orig Mon Jun 16 17:56:17 2008
+++ monitor.c Mon Jun 16 18:06:23 2008
@@ -2642,10 +2642,12 @@ static void term_event(void *opaque, int
if (event != CHR_EVENT_RESET)
return;
+/*
if (!hide_banner)
term_printf("QEMU %s monitor - type 'help' for more information\n",
QEMU_VERSION);
monitor_start_input();
+*/
}
static int is_first_init = 1;