|< Day Day Up >|
Knoppix is not only based on Debian; it also comes with a full set of tools to manage and change Debian packages .
Knoppix is over 90% pure Debian packages, and if you install Knoppix to your hard drive, you find that the programs and utilities are installed where they would be on a regular Debian system. It might not then surprise you to know that Knoppix comes with many of Debian's packaging tools and is an excellent rescue disk for fixing Debian-specific problems. This hack describes how to downgrade a broken package that is stopping you from booting, fix a broken dpkg package, and perform a few other Debian-specific fixes.
Knoppix includes the Debian dpkg tools: dpkg , dpkg-buildpackage , dpkg-reconfigure , and dpkg-source . With these tools, you can rescue a Debian system that might not boot because of a broken package or corrupted install.
For instance, if the modutils package (containing useful utilities such as modprobe and insmod ) is corrupted, your system cannot load modules and probably won't boot. To correct this, boot Knoppix and mount the root Debian partition (in this example, /dev/hda1 ) as read/write:
knoppix@ttyp0[knoppix]$ sudo mount -o rw /dev/hda1 /mnt/hda1
Check to see if you have a previous version of modutils under /var/cache/apt/archives/ . If not, open up a browser and use the search feature on http://packages.debian.org to locate your package from one of Debian's mirrors. In this case, modutils is located at http://http.us.debian.org/debian/pool/main/m/modutils/. This mirror contains packages for the architectures that Debian supports, so make sure to grab the package corresponding to your architecture (likely, the package ending in "i386.deb").
Once you have obtained the package that corresponds to your architecture, run dpkg in its chroot mode to install the package to the mounted Debian system. In this example, the Debian root directory is mounted at /mnt/hda1 , so the command is:
knoppix@tty0[knoppix]$ sudo dpkg --root /mnt/hda1 -i modutils_version_i386.deb
Of course, replace the mount point to match where your Debian root partition is mounted, and change the package to whichever package you need to install. Dpkg runs through the full downgrade with any reconfiguration you might need to perform, and once dpkg is finished, you should be able to reboot into the system with a fixed package.
You can also use this method to fix a broken or corrupted dpkg package. Obviously, if your package installation program is broken, you can't use it to fix itself. But you can use Knoppix's working dpkg to install a new package manager in a chroot environment. After you download the appropriate package from http://http.us.debian.org/debian/pool/main/d/dpkg/, run this command:
knoppix@tty0[knoppix]$ sudo dpkg --root /mnt/hda1 -i dpkg_version_i386.deb
You can also download the replacement package, convert it to a tar file, and then untar it in the mounted root directory. Here are the steps to use tar and alien to install the package. Alien is a handy tool that acts as a translator between .tgz , .rpm , and .deb packages, and can convert a file in one format to any of the others. Use alien to convert the package to a tar file before unpacking:
knoppix@tty0[knoppix]$ sudo alien --to-tgz dpkg_version_i386.deb knoppix@tty0[knoppix]$ sudo mv dpkg_version_i386.tgz /mnt/hda1 knoppix@tty0[knoppix]$ cd /mnt/hda1 knoppix@tty0[hda1]$ tar xzvf dpkg_version_i386.tgz
While there are many other packages you can leverage on Knoppix to fix broken Debian systems, generally it's best to fix the Debian system while you are booted into the system itself. Use Knoppix to repair those packages that prevent you from booting, then boot into Debian and repair the rest from there.
|< Day Day Up >|