recovering from corrupted vdb
On 11/03/2011 04:15 AM, "Paweł Hajdan, Jr." wrote:
> Shouldn't portage offer some means to recover from a corrupted vdb?
>
> I just stumbled upon
> <http://forums.gentoo.org/viewtopic-t-900382-start-0-postdays-0-postorder-asc-highlight-.html>
> and it seems really bad.
>
> It would suck if the only solution to this is reinstall (I remember
> package database becoming corrupted in some RPM-based distro I had years
> ago and I hated it).
Your best protection is to have a redundant backup on a separate disk.
When I do updates, I always clone my root partition to another partition
on a separate disk and chroot into that for the updates, and I keep that
spare partition as a backup in case one of my disks fails. For cloning,
a command like `rsync -axH --delete / /mnt/backup_rootfs/` works well
for me. I've also used btrfs subvolume snapshots for quick and efficient
cloning of my root filesystem, but that doesn't give the kind of
redundancy that a separate filesystem on a separate disk gives.
> If the recovery is already possible, we should get a doc explaining what
> to do. Otherwise it'd be really great to implement some recovery logic.
>
> I think we can't salvage much from a corrupted db (anything can happen,
> and the reporter mentions some code being present in the files), but at
> least "emerge -e world" or equivalent should be possible.
Due to circular dependencies, you need a seed vdb to start with. If you
don't have a redundant backup, another option would be to simply remove
the corrupt /var/db/pkg and replace it with a copy from a stage3 tarball.
--
Thanks,
Zac
|