XOSL: A Test Project|
By Thiravudh Khoman
XOSL or "Extended Operating System Loader" (https://www.xosl.org) is a very capable freeware boot manager written by Geurt Vos of the Netherlands. It has been around for several years now and and is particularly well regarded by the "do-it-yourself" crowd.
A year ago, I gave XOSL a "read no docs" try, but quickly ran up against a "wall". Not wishing to spend a lot of time with the program then, and given that Windows 2000's boot manager was doing fine for me, I put XOSL aside for another time. Two weeks ago, I unpacked XOSL again (the program hadn't been updated since I last looked it), and promised myself that I wouldn't put it aside again until I figured out how it worked.
What follows are some notes that may prove useful to other XOSL users. The article is separated into two parts: a narrative part that focuses on aspects of design and implementation, and a script part that details (nearly step-by-step) what I actually did. The script parts exist as links off of the main narrative part. The intention was to avoid turning this into a 20 page article, while still retaining the level of detail that a XOSL newcomer might wish to reference.
As is generally true of all boot managers, XOSL is a small program. However, it is not so small that it could live entirely in the Master Boot Record (MBR) as do other text-based boot managers. XOSL's graphical interface and the fact that it works hand-in-hand with two other bundled programs - Ranish Partition Manager and Smart Boot Manager - make this all but impossible.
It should also be noted that XOSL is operating system (O/S) agnostic. It doesn't run under any O/S (boot managers usually don't), but is nonetheless capable of booting almost any PC-based operating available. In fact, it can boot multiple copies of a single O/S (naturally, one at time!), often from either a primary or a logical partition. It can also boot a particular O/S, while leaving all other installed O/S'es invisible.
My Test Project
Armed with a Celeron 466 test machine with 128MB RAM and a 10GB hard drive, I designed a system containing the following:
(Note: FAT32 -> NTFS means that the partition was initially formatted as FAT32, but was converted to NTFS during the the O/S installation phase.)
XOSL will be used to produce a boot time menu that allows me to select from either of the four O/S'es (Windows 98/2000/XP, RedHat Linux). When I select any of the Windows O/S'es, the other two will be configured so that they are totally hidden from sight. This means that I will only see a drive C: (the main Windows drive), a drive D: (the shared data drive on Logical 2), and a drive E: (the CD-ROM drive).
Why Design It This Way?
The overriding reason for the above design was the need to have a separate partition for each of the four O/S'es, plus a shared data partition. I figured that if I could get this to work, there would be almost no limit to how many O/S'es I could handle short of XOSL's limit of 24 menu items.
(By the way, if you're interested in how far this can be taken, I recommend that you read a Maximum PC article of 18-year old Richard Robbins who installed 37 O/S'es onto 6 hard drives with the help of XOSL! Vide: https://www.maximumpc.com/features/feature_2002-09-24.html. Note: The reason why he was able to exceed XOSL's 24 menu item limit was because he installed separate copies of XOSL on different drives and chained between them.)
Anyway, with a minimum of five partitions, there was no way for me to avoid using both primary and logical paritions. But first, some background on hard disk partitioning. Unless you resort to non-standard partitioning methods, each hard disk can support only FOUR so-called "primary" partitions. Each of these primary partitions can be made bootable. If you had only one or two operating sytsems, this is probably the most logical place you'd put them - except for the fact that FDISK can only deal with one primary partition and later versions of Windows may create logical partitions even though there's "space" for more primaries.
Optionally, one of these four partitions can be a so-called "extended partition" (which would leave you with only three primaries). This extended partition can act as a container that holds any number of so-called "logical" partitions as you have space for. One problem with logical partitions is that certain operating systems (notably Windows) will refuse to install there, nor are they willing to boot from there assuming you found a way to get them there. Fortunately, XOSL IS smart enough to boot such logically-resident Windows for you (albeit a few tricks may be required), and there are several ways to copy Windows from a primary to a logical partition.
Incidentally, certain programs or O/S'es such as XOSL itself and Linux CAN be installed AND booted from logical partitions without any fuss. Good for them!
One final note. The XOSL documentation actually RECOMMENDS that you install XOSL into an existing DOS drive. I don't exactly agree with this but I think I know why the author chose to recommend this. If you have a pre-existing computer with Windows on it already and NO free space left on your hard disk, a DOS drive is really the only place you can install XOSL.
Personally, though, I prefer the advice of Filip Komar who wrote the HOWTO/FAQ on XOSL. He recommends that XOSL be installed into a dedicated area on a logical partition. Doing it this way not only frees up a primary partition that XOSL would otherwise co-opt, but also keeps it separate from any particular O/S installation. This allows those O/S'es to be re-imaged in and out without affecting XOSL.
To perform the installation, you will need two floppy disks. One needs to be bootable to DOS while the other one doesn't - in fact SHOULDN'T - since you'll need as much space as possible on that diskette for backup information.
Although you can use most any kind of DOS to create the bootable Floppy #1, I've chosen to format it with Windows 98 SE's DOS because I already had it handy and because I wanted to be able to access FAT32 partitions later when I do some imaging with Norton Ghost. Also, Floppy #1 needs to have CD-ROM support. I'm using Oak Technology's generic CD- ROM driver and MSCDEX.EXE with my CD drive mapped to drive X:, a drive letter high enough so that it wouldn't get interleaved with any hard disk letters that might get created.
Basically, this is what my two diskettes contained (see detailed notes 1):
(In case you're wondering why COMMAND.COM is on Floppy #2 if it doesn't need to be bootable, it's there to avoid error messages that occur when you exit Partman and DOS is unable to reload COMMAND.COM.)
XOSL v1.1.5 comes integrated with Ranish Partition Manager v2.38 beta 1, but I've chosen to download and use a standalone version anyway for the early setup tasks. You can get it from https://www.ranish.com/part. Meanwhile, you can get XOSL v1.1.5 from https://www.xosl.org (click the "Download" link on the left side).
(Note: As indicated earlier, XOSL is freeware, while Partman is "shareware". For individuals and academic users, you are allowed to "try" Partman for a period of 10 years before you are required to buy it for $10 per household, classroom, or department. Or if you're a poor student, you can register it simply by sending Mikhail Ranish a postcard of your college.)
Partitioning and Formatting
For simplicity's sake, I'm going to perform this test on a clean/blank hard disk. I'd recommend that you NOT (repeat, NOT) experiment with this kind of thing on a production hard disk until you're more experienced and have a working backup of your installation first.
What we're going to do is to create all of the partitions I defined in the previous table, and then we're going to format most but not all of the partitions. To start out, I booted with Floppy #1 and then ran: FDISK /MBR. This is the only time I'm going to use FDISK. Also, if you've always thought that FDISK was a difficult program to use, get ready for something 10 times worse! Introducing, Ranish Partman (figure 1). Aargh! This, dear readers, is where I died the first time I tried XOSL.
At this point, I would recommend that you go through my detailed notes and "play along" using PART0SIM (Partman's non-destructive simulator) if you don't have a spare drive to experiment with. This was not copied to Floppy #1, so you'll need to play with it on your hard disk wherever you extracted PART240.ZIP. Don't worry, the simulator won't do any harm to your hard disk, but be careful that you're not using the REAL PART.EXE program by mistake!!!
The first time you run PART0SIM, it will create a simulation data file. You will need to edit the DISK_SIM.CFG file so that it matches (or at least approximates) the hard disk I'm using. Specifically, change the 4th line from the top so that the # cylinders and the # of heads matches what you see below. Also, comment out the 5th line with a # sign. This refers to a 2nd hard disk, which I don't have.
# Disk simulation configuration file # # Cylinders Heads Sectors DiskFileName 1245 255 63 disk_sim.x80 # 24 16 63 disk_sim.x81 # ??? 16 63 disk_sim.x82
If you DO have a spare drive to experiment with, you may as well run PART.EXE from Floppy #1 as I'm doing. Okay, you can start reading my detailed notes 2 now, but please return here when you're done.
If all went well, congratulations are in order. Hopefully too, your Partman screen looks something like this (figure 2 - note: this screenshot may be slightly different because I used the Partman simulator). You've just created and formatted a bunch of partitions using the powerful, but admittedly user-unfriendly Partman program! Actually, having used Partman so much these past few weeks, I'm beginning to like it more and more.
A related note. As general rule, I believe that you should only partition/format your hard disk with enough space to meet your medium term needs. With smaller hard disks, this may mean using every iota of disk space. But if you have one of those newer 40+GB hard disks, you might consider leaving what you don't foresee needing as free space, to be used for future contingencies.
Installing and Configuring XOSL
It's now time to install XOSL. But before we we get to that, it's a good idea to reboot to Floppy #1 to make sure all of the partitioning work we did is recognized by the system. After you've rebooted Floppy #1, remove it, insert Floppy #2, and then type: INSTALL. Installing XOSL isn't terribly involved and in fact, the only thing that needs special attention is to make sure that XOSL gets installed into the correct partition (i.e. our 16MB FAT16 logical partition).
Again, it's time to head to my detailed notes 3.
Very soon after rebooting, you will be greeted with XOSL's startup screen, which at this stage will be rather bare because we haven't configured any menu items yet. We'll be doing that next. Please read my detailed notes 4 and return here when you're finished.
A few notes before we continue:
Installing Windows 98
The secret to partition hiding under any kind of Windows is to always boot into XOSL first and then to let XOSL handle any secondary booting (i.e. to a hard disk partition, a floppy or a CD), with the appropriate "hiding rules" in place. It is important that the installing O/S sees that no prior drive C: exists. Not surprisingly, booting directly from a floppy or a CD will moot XOSL's partition hiding and will make visible any partitions not previously hidden during the last session.
The strategy for installing our non-bootable Windows 98 SE CD is therefore: a) to boot into XOSL first, b) to ask XOSL to Boot to Floppy with our Floppy #1 inserted, c) to run CDROM.BAT to load the CD-ROM redirector, and d) to run SETUP.EXE from the Windows 98 CD which will guide you through the usual installation routine. The exact steps taken are described in my detailed notes 5.
It's important to realize that our Boot to Floppy boot item is not generic. Rather, we had pre-configured it for our specific Windows 98 installation scenario only. If we were to install another operating system, we would need to reconfigure what partitions to hide or make visible when this menu item is selected.
Installing Windows 2000
The strategy for installing our bootable Windows 2000 CD is: a) to boot into XOSL first and then b) to ask XOSL to Boot to CD with our Windows 2000 CD inserted, after which the usual Windows 2000 installation sequence will unfold. The exact steps taken are described in my detailed notes 6.
As with the above, our Boot to CD boot item is not generic but rather configured specifically for our Windows 2000 installation scenario. We will need to change it before we do our Windows XP installation.
Installing Windows XP
The strategy for installing our bootable Windows XP CD is nearly identical to Windows 2000: a) boot into XOSL first and then b) ask XOSL to Boot to CD with our Windows XP CD inserted, after which the usual Windows XP installation sequence will proceed.
But before we do this, we absolutely need to change the hiding settings for our Boot to CD menu item first, since it currently hides the Windows 98 and XP partitions. It needs to be changed so that the Windows 98 and 2000 partitions are now hidden.
As usual, the exact steps taken are in my detailed notes 7.
Installing RedHat Linux
After all the acrobatics we had to go through to get multiple copies of Windows to co-exist, you're going to love Linux. Like XOSL, Linux has no qualms about being installed into or booting from a logical partition. Again, my detailed notes 8 describe the steps I took to install it.
If you chanced to revisit Partman after we finished installing RedHat Linux, you will notice that the 2 partitions that we had previously created for Linux have now been replaced by 3 partitions: a swap partition and 2 native partitions (i.e. / and /boot). This happened because we allowed RedHat's installation program to perform automatic re-partitioning.
One minor shortcoming of XOSL, you may have noticed, is that it isn't able to boot into Linux directly. Rather, it must boot through a Linux- type boot loader such GRUB or LILO first. You can reduce the lingering effects of GRUB or LILO by reducing their delay times, but of course, they'll still be loaded (and unloaded).
Further XOSL Customizing
There are a number of settings in the Setup and Preference areas that can be tweaked to improve its operation or appearance. I've run through the ones I feel to be the most important/useful in my detailed notes 9.
A caveat. If your XOSL boot menu is being designed for end-users, you should definitely password protect the Setup and Preference buttons (which will password protect the Ranish Partman hotkey as well, thank-you). In addition, you may wish to password protect the Boot to Floppy and Boot to CD items too - either that or consider deleting them entirely. They're mainly used during boot-type software installation and can be recreated without much difficulty anyway.
And a final note. The built-in Ranish Partman can be accessed from the XOSL main screen by pressing ctrl-P. This is version 2.38 beta 1 versus the v2.40 for the standalone version that we used on Floppy #1 - but it's close enough. Very often, you'll find it more convenient to use this copy of Partman for partition fine-tuning/rebuilding.
There are still two pending areas of discussion that I haven't gotten to yet (translation: I haven't written them yet or don't know quite how to do them yet):
These will be added later, either as update notes or as part of the main article. Please check Wobble's main page for news about this.
XOSL Home Page
(Thanks to Jason at LCC for giving me a good reason for revisiting XOSL)