Running Linux In A DOS Partition
Turn That Old 486 Into A Internet Server AND A Linux Development system -- Also, The JOE Editor And Solving DNS Woes
By Trevor Marshall
June 14, 1999
In my first column, I started to describe some of the problems you will have to overcome in setting up that old 486 box as a Linux-based Internet server and gateway. Not the least of these problems is what flavor (distribution) of Linux to choose and how to boot the Linux on your machine for the first time.
The new GUI
-based Linux distributions are very comprehensive, but they always leave me uneasy. The installer does a superb job working its magic, but I can't help but worry about the level of trust I had when I allowed it to take control of my hard disk.
It's like jumping into a swimming pool hoping that you will be able to swim. What if the Linux doesn't boot? Will the 486 have enough power to run both the Linux and the GUI? What if I can't understand what the installer did?
What low-level OS tools will it install for me? What if I need to change something subtle in the configuration? Granted, there are versions of Linux small enough to fit on a single bootable floppy disk. But these are very limited, with only a bare minimum of utilities, no compilers, and usually no manuals.
I will describe a small Linux in a future column, but at this point it makes sense to go for a more comprehensive Linux implementation since the 486 has enough power to run Linux quite well, and, unless you are trying to run a Secure Apache-SSL Server (SSL uses a lot of floating point), there is going to be plenty of CPU left over to run a fairly comprehensive command-line-based development system. (I.e., not KDE
, GNOME
, etc.)
For now, I'm going to stick with my preferred "runs on the existing DOS partition" constraint.
There is a little-known distribution of Linux (Zipslack) that will
install itself onto a DOS partition and co-exist gracefully with DOS.
It contains full C, C++, and Perl development environments in addition
to a full set of documentation, but doesn't have any unneeded fluff.
Before all the Linux purists tear me apart, I must acknowledge that
this approach will not give you a high-performance Linux
implementation. The DOS filesystem is slow. It is not as rugged as a
Linux filesystem. But it does work. And it works well. I merely copied
the .ZIP to my old 486, unzipped it, edited and executed LINUX.BAT, and
up came Slackware Linux v2.2
When you feel comfortable with your configuration, there is
documentation in the ZIP that explains how to partition the disk so it
also has a Linux partition, and then migrate the existing Linux or
install some other distribution, e.g. Caldera, Debian, Red Hat,
Slackware.
Tweaking is almost too easy. The configuration files in /etc/rc.d/
can all be edited from DOS, so if you change something that causes a
fatal error, you can reboot under DOS and change it back again. Even
if the Linux itself refuses to boot, you can see the whole Linux
directory structure under DOS and easily navigate to the correct
directory and edit the file you broke.
You can download Zipslack.zip (36 meg) from
ftp://sunsite.unc.edu/pub/Linux/
distributions/slackware/zipslack/ if you cannot find it on a nearby Linux distribution CD.
Copy it into the root of your DOS disk. Don't bother about
the other files in the Zipslack distribution directory. You
don't need them.
Don't use PKUNZIP to unpack it. PKUNZIP fails to handle
large files. There is a copy of a suitable UNZIP.EXE on my
system that you can download.
It will take at least an hour to unzip all the files. It doesn't
matter how fast your CPU is, the hour is all taken storing
the Linux files on your DOS filesystem. Go make a cup of
coffee or play Tetris on another machine.
UNZIP will create a directory called LINUX on your hard
disk. Go into that directory with any DOS editor and edit
the file called LINUX.BAT. You need to add a REMark in
front of the configuration line saying that it will boot from a
ZIP device and remove the REM from the start of the
following line
REM /linux/loadlin /linux/vmlinuz root=/dev/hda1 rw
in order to tell the Linux Loadlin loader that it will look for
the kernel on your default DOS hard disk.
Then give the command
linux
and the batch file will execute, booting up Linux and dropping you to the command
prompt. Log in as root, there is no password. Set a password immediately using passwd root.
Your first task, getting Linux running, has been completed.
Now you can start to customize the configuration bootup
files. The commands
cd /etc/rc.d/
ls -al
will get you a listing of rc.inet1 and the other principal
network configuration files. Also look carefully at the /etc/
directory. When you are satisfied, you can find your way
around, then shutdown the system with
shutdown -h now
and hit the reset button to reboot DOS.
When you look at the DOS directory structure you will find
/LINUX/ETC/RC.D/RC_INET1.{_G
the same rc.inet1 file, but with a DOS compatible name that
is not too garbled. I am amazed by the way that the Loadlin
developers have integrated the two file systems. Sure, you
have to use your imagination a little, but isn't that why you
are reading BYTE.COM ?
Last month I mentioned that I would look around for sites
that would act as primary and secondary DNS
nameservers. Dave Blankenship left a message on my Bulletin
Board pointing out that www.granitecanyon.com
offered free DNS, both primary and secondary. I have since
moved all my own domains to granitecanyon, but I
recommend that you do not use ns2 on its own. If you set
granitecanyon to only be a secondary server, ns1 is a more
reliable secondary than ns2.
There have also been questions left on my Bulletin
Board about commercial, pre-configured, dial-up Linux
gateways. I briefly tried out the package from www.e-
smith.net and it worked fine with my dialup to Earthlink.
Moshe Bar is working on testing a number of similar
packages, so keep an eye on his column if you are looking to
buy support for a gateway that is easy and quick to set up.
JOE, My Preferred Linux Text Editor
Several years ago, after I was hurling obscenities at vi for
munging yet another of my files, Dion Whittaker
introduced me to JOE. JOE is a superb ascii text editor for
Unix written by Joseph Allen. It has all the power of vi but
uses the command sequences of Wordstar and the Turbo
Tools with which I have become so familar over the years (I
just love hitting that control-Y keystroke). It is somewhat
like Emacs, but doesn't have a steep learning curve. Lazy is
my middle name, so I immediately adopted JOE and have
never looked back. It is lightning-fast, even over a Telnet
connection. You can get the Linux distribution of Joe from a
variety of places, including http://trevormarshall.com/joe2.8.tar.Z.
I have put together a bare-bones Linux version of JOE just in
case you don't have a means to compile the tar archive. It is
at http://trevormarshall.com/joe_bare.zip and it contains just the executable and configuration files.
Unzip it in your DOS partition and copy the files to their
correct locations under Linux. The JOE file names are fully
compatible between the DOS and Linux partitions.
JOE under DOS - fewer unhappy returns
Some of you might have been wondering why I was saying
that it was easy to edit the Linux configurations under DOS.
After all, most DOS editors stick carriage returns into the
ASCII files rather than just using linefeeds, and this causes
Linux to complain most vigorously. Again, Joe comes to the
rescue because there is a DOS version at
http://trevormarshall.com/joe2x2.zip
that does not have this nasty habit. With JOE, you can edit
the configuration files under DOS or Linux, it doesn't
matter.
Next Time
In the next column, we will start working through Linux's
configuration files and talk about the similarities and
differences between the various major flavors of the OS.
Trevor Marshall
is an engineering management consultant, with interests ranging from RF and Hardware
design to Linux internals, Internet infrastructure, MPEG, and Digital Video. He
started his career in the '70s, designing the Maplin Electronic Music Synthesizers.
When the Microcomputer came along, he got sidetracked into computer software,
programming the 2650, 8080, Z80, Z8000, 8048, 8306, 6805, 80x86, and Power PC
families. Along the way, he also picked up a little expertise in RF system design,
biomedical engineering, and the printing industry. His web site is www.trevormarshall.com.
Page 1 of 1