Rescuing a system with a damaged /var filesystem
Because the /var directory contains regularly updated data, it is more susceptible of corruption than filesystems containing fixed data, such as /usr. It is recommended that /var is placed into its own filesystem, to minimise damage in the event of a filesystem problem. If disaster happens, it may be necessary to rebuild the /var directory to rescue your Debian system.
Use a skeleton from a minimum working system
Obtain the skeleton content of the /var directory from a minimum working Debian system based on the same or older Debian version. Now run dselect.
This should provide a working system.
Obtaining a list of already installed packages
Following restore of the Debian system, the Package Database may not have the correct information about which packages are already installed. However, because each currently installed package has documentation installed in /usr/share/doc, it is possible to use this list to populate the list of packages to be installed by the package mananger:
ls -1 /usr/share/doc | \ # Ignore the texmf document tree and debian utilities/keyrings sed -e '/^texmf$/d' -e '/^debian$/d' -e 's/.*/\0 install/' | \ dpkg --set-selections
The dselect tool can now be used to install the selected packages.