[vox-tech] Recovering Debian without /var/lib/dpkg...
Karsten M. Self
vox-tech@lists.lugod.org
Wed, 22 Jan 2003 03:46:51 +0000
on Tue, Jan 21, 2003 at 11:30:28AM -0800, R. Douglas Barbieri (doug@dooglio.net) wrote:
> Here is a good article about recovering a Debian system without having a
> backup of /var/lib/dpkg...
>
> http://www.linuxworld.com/2003/0113.petreley.html
Funny, I walked someone through that on irc.debian.org:#debian last
week. This can be somewhat simplified from Nick's procedure. Rather
than manually re-selecting packages in dselect, you would take advantage
of the fact that Debian policy requires all packages to create an entry
in /usr/share/doc, with the name of the package.
Procedure (in handy shell-script format). Note that I *haven't* tried
this (suggestion: someone with a faster box than I should try
installing Debian under UML and self-inflicting damage, then recovering,
and telling me what I got wrong).
(Aside to Nick: this expands somewhat on my prior email.)
#!/bin/sh
export PATH=/usr/sbin:/usr/bin:/sbin:/bin
# Let's be verbose....
set -v
# Create /var directory tree stubs
mkdir /var/cache/apt/archives
mkdir /var/cache/debconf
mkdir /var/log
mkdir -p /var/lib/dpkg/{info,parts,alternatives,methods,updates}
# Create a rudimentary status file
cat <<-EOF>/var/lib/dpkg/status
Package: libc6
Status: install ok installed
Version: 2.3.1-9
EOF
# Update package cache
apt-get update
apt-get dist-upgrade
# Register as installed crucial packages.
dpkg --clear-avail
apt-get update
apt-get dist-upgrade
cd /var/cache/apt/archives
dpkg -i libncurses*
dpkg -i perl-base*
dpkg -i libstdc++*
dpkg -i dselect*
dpkg -i dpkg*
# Reinstall libc to register it.
apt-get install --reinstall libc6
# Reinstall base packages.
apt-get dist-upgrade
# Generate list of installed packages to Re-register previously
# installed packages as installed, using /usr/share/doc as a
# fallback package registry.
dpkg --get-selections $(
ls /usr/share/doc | grep -v [A-Z] | awk '{print $1 " install"}'
)
# Re-register everything.
apt-get dist-upgrade
Peace.
--
Karsten M. Self <kmself@ix.netcom.com> http://kmself.home.netcom.com/
What Part of "Gestalt" don't you understand?
Geek for hire: http://kmself.home.netcom.com/resume.html