3 Debian via chroot

3.1 The Strategy

In the end, due to the software limitations of the factory Progear system, to get a sufficiently modern system we need to effectively make a fresh install from scratch. But, because of hardware (or BIOS) limitations, we need to use to stock Progear OS to do the installation. The installation proceeds in three steps and happily, even the first two relatively simple steps yield a fully functional graphical system that is perfectly adequate for most purposes:

3.2 Preparing existing system

We begin by installing a fresh, squeaky clean copy of some base system. For debian this can be done simply debootstrap, but for this or any other system some work is necessary to prepare the stock system.

First, convenience, if you don't have a keyboard, install telnetd or sshd and make sure that they are started when the system boot so that you can log in from a machine that does have a keyboard. These first initial steps can be done easily enough with just a pen, but that becomes obstructively tedious later when installing X. This also allows access to the machine for repairs should something happen the causes X to fail to start completely. I had intermittent problems with getting the Progear window manager and toolbar started because they, and all the other Progear apps, use a central registry that is somehow sensitive to external mucking around. It would always repair itself after a few reboots, but it caused me to worry about it enough that I wanted the extra safety measure of network access.

When installing these services you may have problems finding binaries linked to sufficiently old versions of libc as discussed above. You can look harder, recompile to link to old libraries or link statically, or upgrade the libraries with the cautions previously noted. I was fortunate enough to get the Progear Developer CDROM with my machine which had copies of everything I would turn out to need to bootstrap the new installation. It basically includes the full distribution of that particular Slackware version. I don't who was originally supposed to be privileged to get such a CD, and I don't know how to get one now, but if you have or can find one, life will be a bit easier starting out.

You will need some diskspace in which to put the new root filesystem. As reported elsewhere, including The ProGear FAQ, much of the Progear harddrive is unallocated and unpartitioned. The factory system includes three partitions using (I forget exactly) something less than 2GB of the 4+GB drive. This unused space is naturally the easiest to use for the new system. Partition it as you like. Note that existing the non-root partitions are also largely unused, one is used only for Progear managed upgrades and the other is intended for user data. Further factory upgrades are unlikely, and user data you might as well share between the two systems by, for example, making that data partition /home.

Recover as much of this space as you want. If you are daring you can also parted the root partition down the minimum required to hold what is already there since future expansion is probably going to happen only in the new system being installed. Then partition the recovered space as you please. Either use the whole thing as a single big root partition, or if you are into having separate /usr, /home, /var, etc... partitions do that. Give root+var at least 500M to make downloading and installing packages easier, and at least 200M for root itself. Put a filesystem on the new partitions and then mount whatever you will use as root somewhere convenient, such as /mnt/debian. The preceding, of course, requires that you have installed at fdisk, mke2fs and mount. Good luck.

If you are squeamish or unfamiliar with manipulating partitions, you can instead just use a separate directory on an existing partition, assuming that there exists, or you create, sufficient space. This will allow using the new installation while booted from the Progear kernel via chroot as described below, but it will be difficult to boot from a different kernel while keeping the stock Progear system available. You would have to arrange to conditionally run the init scripts from the new installation. When created in a separate partition the result is suitable for use as a root filesystem so that arranging to use the new init scripts is as easy as specifying a different root filesystem in lilo.conf. If you intend to never use a different kernel, installation to a directory is fine. But for future flexibility use a separate partition, it is no extra work if you know what you are doing, and if you don't it is a good reason to learn.

Finally you need debootstrap to install the base system in this partition (or directory). This is a little more difficult as debootstrap is not a single binary but instead a collection of shell scripts that must be installed where they are expected for things to work right. An .rpm of debootstrap is available.

rpm was available on the developer CD I had. If you can't get rpm, convert the .rpm or .deb to a .tar. There is nothing fancy about the package that makes this difficult, if you want you could just unpack the original package and copy the main script and the single directory of library functions by hand to /usr/local or as desired. Both methods will leave some lingering unresolved dependencies, in particular, debootstrap uses some standard text utilities including wc, sort and uniq (there may also be a few more that I missed noting). Find them and install them and finally you can proceed with installing the base system.

3.3 Installing the new base system

Installation now becomes a simple matter of:

debootstrap [debian version to install] [place in filesystem to install it] [location of base .debs]
for example:

debootstrap sarge /mnt/debian
but season to taste.

I suppose this same procedure could be done with some other distribution. The steps so far are practically like a standard Gentoo installation already, you could instead just as easily fetch a Gentoo stage tarball and install it here. Likewise, I imagine, for RedHat or other rpm based system. I don't have any clues about how to start for this kind of system, but a bet a few minutes with Google would turn up a reasonable answer. Maybe you just download a mess of .rpm's and force them to be unpacked into the new partition.

Whatever you install, or however you do it, you are just:

chroot /mnt/debian
away from fully using a brand new, up-to-date system.

Add yourself as a user while you are there. Edit sources.list and put on whatever apps you like. Logo