Marek Marczykowski-Górecki:
I didn't use any options. Actually, though, I think there's a different
(and more serious) problem which occurs when attempting to restore total
data greater than a certain size. Lengthy explanation follows:
Today, I decided to do a clean install of R2B3 (having already upgraded
in-place from R2B2 to R2B3). First, I did a full system backup using
qvm-backup. Since I am still accustomed to using the old backup system,
I have a LUKS/dm-crypt encrypted local hard drive where I store my
backups. So I did not encrypt my backup using the backup tool (i.e., I
did not issue the "-e" flag when running qvm-backup). Since the tool
still asked for a password, I just left it blank. (IMHO, the code should
probably be changed so that no password is requested if the backup is
not encrypted, since there is no point in doing so, and doing so will
give some users a false sense of security, causing them to mistakenly
believe that their unencrypted backup is encrypted. A scary warning
message should also be printed if the backup is not being encrypted by
the backup tool, recommending that they either enable encryption or
ensure that they encrypt the backup by some other means.)
The backup is successful, so I reboot and install R2B3 from the ISO.
Once I get to the new desktop, I attempt to restore from the backup I
just made, first using the GUI (which is when I got an error message
like the one above), then using the command line tool
(qvm-backup-restore). Now, here's the interesting part:
I tried to restore using qvm-backup-restore around 10-20 times, and
every time, the restoration failed with a slightly different error
message. Usually, the error was that an hmac or private.img file did not
exist in /var/tmp/restore_xxxxx. However, every time I checked to see
whether the allegedly missing files were there, I found them. So,
somehow, qvm-backup-restore is getting confusing, and it's thinking that
a file is missing when it's not. At this point, I was afraid I had lost
all of my data (in the sense that I wouldn't be able to restore it). So,
I tried restoring from an older backup which was created using the old
backup tool (i.e., directory structure rather than single file backup).
This one restored perfectly the first time! This came as a relief to me,
but I still wanted my newer data from my most recent backup. (Perhaps it
would be a good idea to allow the user the choice to use the old backup
system, at least until the new one is fixed and thoroughly tested. After
upgrading to R2B3, I didn't have the choice to create a backup using the
old tool, which I knew worked for me. This made it scary to test the new
tool, since I felt like I was working without a net.)
But the strange thing is that, several days ago, I had run a successful
test (using only one AppVM) of backing up and restoring using the new
tool. Very odd indeed. Thinking about this, I had the idea of trying to
restore from my most recent backup *one AppVM at a time*. It turns out
that this did the trick (but with a caveat).
Since all of my AppVMs had already been restored (from an older backup),
I had a list full of AppVMs with the same names as the list of AppVMs in
my most recent backup. As you know, you can't restore an AppVM if there
already exists an AppVM with the same name on the system. This turned
out to be rather convenient, since I wanted to restore only one AppVM at
a time. So, I was able to delete a single AppVM, then restore that
single AppVM from my most recent backup by issuing "qvm-backup-restore
--skip-confliting". (The only other way to do it would have been to type
out a very long list of exclusion options, e.g., "-x AppVM1 -x AppVM2 -x
AppVM3". (By the way, would it be possible to add an option for
*inclusion* in addition to *exclusion*? That would come in handy in
cases like this, as in many others.)
So, I went through, one AppVM at a time, first deleting (or renaming)
the one currently on the system, and then restoring that single AppVM
from the most recent backup. This worked perfectly... until I reached an
AppVM which is around 15 GB in size. Then I got the error again. I was
able to restore one that's around 6 GB without any problems, so I think
the problem must arise when the AppVM is somewhere between 6 GB and 15
GB. (It would be very helpful if others could also test this.)
Fortunately, I don't think I've made any changes to that particular
AppVM since the old backup, so I don't actually need to restore from my
most recent backup. *But if there are other Qubes users who have AppVMs
which are that large (or larger), I fear that they are currently at risk
of not being able to restore from their backups of that AppVM.*
Related threads:
https://groups.google.com/d/topic/qubes-users/OFBijm__ZRs/discussion
https://groups.google.com/d/topic/qubes-users/fpgPFAxEC84/discussion