Common stuff for all operating systems

This page Copyright (C) 2003-2008 P.R. Nienhuis, Amsterdam
Last updated 25 July 2008

Beware - this page is still under construction!




Partitioning scheme

How to boot it all

Installation order

Cross-OS dependencies and -interferences
    Win2K <-> OS/2
    W2K <-> W98
    W98 <-> OS/2
    Windows <-> Linux
    Linux <-> OS/2
    Windows vs. other OS-es

Cross-OS connectivity
    File sharing and transfer
        Known limitations and peculiarities
        Options and possibilities
        Carrying around media
        TCPBEUI / NetBIOS over TCP/IP / SMB / CIFS
        NETBEUI - NetBios Extended User Interface
        NFS - Network File System
        Direct Serial/Parallel Cable Connection
    Remote applications - X-Windows and VNC
        VNC - Virtual network computing


Wish list

The things I wanted to accomplish on my Libby were:

  1. OS/2's boot manager to boot all needed operating systems in at least initial stages. Not that I am so very fond of it, but it is strictly needed anyway to boot OS/2. (The only other boot manager I know of that can boot OS/2 from a logical partition is Air-Boot (see Hobbes).) Linux also needs its own boot manager, and so do Win2K/Win98. All in all 3 boot managers are somehow needed, and that should do - no need of a fourth one. OS/2 boot manager always takes one primary slot in the MBR.
  2. Windows 98 on a logical FAT32 partition just big enough to contain it and allowing it to be installed, somewhere below the 8.4 GB limit so that OS/2 boot manager could boot it.
  3. Windows 2000 Pro on a primary FAT32 partition of -say- 5 GB or so.
  4. All Windows programs installed on the primary FAT32 partition and sharable between Win2K and Win98.
  5. OS/2 Warp on a -say- 1,5 GB primary partition.
  6. A Linux /boot partition below 8.4 GB.
  7. A logical OS/2 maintenance partition (FAT16) of some 200-300 MB, including some common DOS programs like my old Quattro Pro for DOS, WordPerfect 5.1 and WP Program Editor plus other oldies.
  8. A 3 - 4 GB logical partition above 8.4 GB for common data.
  9. A 2.5 - 3 GB Linux / partition.
  10. All OS-es should be able to at least be able to read, optionally write, on each others partitions.
  11. Common bookmark files and mail files etc. across all OS-es.
Originally I also wanted BeOS or OpenBeos, but I found out on Internet that the Toshiba chip set in the Librettos is probably unsupported. I could never get BeOS PE booted further than the initial screens, so I gave it up.

Partitioning scheme

The final (well uhmm... most recent) partition scheme I came up with is shown here (from Linux fdisk's point of view).
It was made largely by OS/2's FDISK program, with some run of Linux fdisk in between. How I got it together is outlined in the OS/2 page.

As a sidenote, a quite enlightening overview of partitions is contained in the Windows 2000 support tools, file dskprtrb.doc (Word format) in \SUPPORT\TOOLS\SUPPORT.CAB on the Windows 2000 CD-ROM.
BTW in this cabinet file a lot of other useful programs can be found.

An important issue to mention on this page pertains to partition types and especially extended partition types. Here it is:

Combining this will lead to an -in principle- irreconcilable but OTOH quite irrelevant dilemma on very large hard disks (say >> 20 GB):
Either OS/2 Warp or Windows 9x can use logical FAT32 partitions in the extended partition, which must be type 05 (but then Win98 can't boot from the FAT32 partitions beyond 8 GB) or type 0f (but then OS/2 Warp can't see the entire extended partition).
This dilemma can easily be avoided by having Win98 boot from a partition below 8 GB, in that case the extended partition can be simply be type 05. For Windows 2000 and up the extended partition type does not matter at all.
One can try to use the EXPARTW4 package (Warp 4 disk driver) on Warp 3, but then primary FAT32 partitions will be hidden when Warp boots from another primary partition. I couldn't get Warp to see the hidden Fat32 partitions even specifying types 1b and 1c (the hidden equivalents of 0b and 0c types) on the relevant Warp device driver lines.
Another option is Air-Boot boot manager - it can change the extended partition type on the fly. (But I do not like writing repeatedly too much to the MBR.)

By experimenting a lot I finally found out that both Windows and OS/2 Warp (using FAT32 drivers) could see logical Fat32 partitions in extended partitions of type 05, but an essential proviso in case of hard disks > 8 GB is that all these logical FAT32 partitions are of type 0c (if not, Win9x might screw up the entire extended partition).

FYI: I made the partitioning scheme with OS/2's FDISK.COM; I simply assigned logical partitions irrespective of the final partition type (the extended partition was type 05, the type that Warp knows about). Later on, I loaded a Linux install CD-ROM and followed the install procedure until I arrived at the partitioning scheme menu. There I only changed the logical partition types to what I wanted them to be in the end (I could also have used e.g. PartEd for that, but I had Linux lying around). At that point Win98 still could not recognize the logical partitions properly. It could do that only after I had installed Win2K and used its Disk Management to format the logical type 0c FAT32 partitions.

How to boot it all

The only OS-es which might be booted from floppy are DOS and/or Windows 9x/ME. All other OS-es lack support for the PCMCIA floppy during booting stages, so all these other OS-es must be booted by a boot manager or a series of boot managers.
The Libretto BIOS does not initialize the PCMCIA slots, so booting from e.g. PCMCIA CD-ROM drives is not possible.

OS/2 can only be booted by OS/2's boot manager.
Linux can be booted by its own boot managers, be it lilo, grub or others. In addition, it can be booted from the NT boot loader.
Win2K can be booted by other boot managers, but once Win98 and/or the recovery console has been installed, it will run its boot manager first. BTW: to add items to Win2K's boot menu, one can use the bootpart utility.

All this implies that OS/2 is the pickiest, and had best be installed as the main boot manager. It allows direct booting of OS/2 (on the primary partition) and OS/2 maintenance partition.
It can also boot the Windows NT/2K boot loader, which in turn can be used to select between Windows 2000, Windows 98 and the recovery console.
It can also boot Linux's boot manager, which in turn can boot Linux and the Windows NT/2K boot loader.
Finally, Linux can also be booted from pure DOS using the loadlin.exe program plus a kernel image on a FAT drive.

Win2K wants a primary partition to live on. Win98 itself can live on a logical partition, but it needs a primary FAT or FAT32 partition to boot from. True, Win9x/ME can boot from a logical partition (look here for the gory details, or google for "XOSL FAQ"), but then it must be the very "first" fat partition on the hard disk. I.e., there may be no "visible" primary FAT/FAT32 partitions "before" the logical Win98 partition.

OS/2 can be booted from any partition, be it a primary or logical one.

Linux can be booted from anywhere - it is the least demanding of all OS-es in question here.

Because of limitations of the OS/2 boot manager version I desired to run, all bootable partitions should be below the 8.4 GB limit, even 70 MB more below it to allow for hibernation space (see the Win98 section for details).

Installation order

I installed OS/2 as the first OS, because it is the pickiest as regards proper MBR setup.
Windows 98 was installed afterward, followed by Windows 2000.
I installed Linux as the last OS.
Nevertheless, I booted the Linux setup a number of times in between to be able to change partition types, in order to have consistent and fixed FAT/FAT32 and HPFS drive letter assignements in an as early stage as possible.

Cross-OS dependencies and -interferences

These are manyfold.

Win2K <-> OS/2
Partition types (e.g., FAT, FAT32, NTFS, Linux etc.) are indicated in the MBR by a certain hexadecimal number. Ofcourse Microsoft deemed it necessary to walk right through conventional standards and just grab a number for their NTFS type. As it happens, it was the same as the older HPFS system used by OS/2. (No there is probably no coincidence at work here - it must have been done on purpose to nag IBM.)
As a consequence, Windows NT and up have to be told to keep their hands of HPFS partitions and ignore them completely.
In Windows NT one could install an older version of the pinball.sys driver, which then allowed read/write access to HPFS partitions (look here for the details.) Starting with Win2K, this is no longer possible just like that - my Win2K simply crashed quite disastrously when I tried to install the older pinball.sys; other people who reported stable Win2K systems with this driver nevertheless found it did not work under Win2K. It probably has to do with a newer NTFS version Win2K uses (and pinball.sys interferes with). I guess my Win2K crashed because the pinball.sys driver could not cope with the newer Win2K NTFS on which Win2K was installed. But there are stories that when the NTFS partition has been made with NT3.51 or maybe even NT4, and Win2K is installed on it (or NT is upgraded to Win2K) without formatting, the pinball.sys works all right even in Win2K, that is, for HPFS partitions < 8 GB (or was it <4?).
Anyway, a patched pinball.sys version (only for HPFS partitions < 8 GB) which works OK with the newer NTFS types can be found here (Click "Filebase", then "18" (OS/2 Allgemein), grab The German instruction boil down to this:

Another issue was that original Win2K versions up to SP1 would disable the OS/2 boot manager. Starting with SP2 this behaviour has been corrected.

The other way round, reading (old) NTFS from OS/2 (read-only, that is) might be possible using the package.

As far as networking is concerned, while using NETBEUI or TCPBEUI on my home network Warp Connect's WPS shell can't see the contents of FAT32 drives on the Win2K host. As DOS and OS/2 command shells ("boxes") have no problems, it seems to be a bug in the WPS. This has also been reported for Warp 4 and up in the comp.os.os2.networking.misc newsgroups in 2002
The other way round poses no problems at all.

Win2000 <-> Win98
Being both from Microsoft, one wouldn't expect much interference between the two. Indeed, but: the order of installation is vital: FIRST Win98, THEN Win2000. In addition, the common boot drive must be a FAT or FAT32 partition, otherwise Win98 cannot boot anymore using the Windows 2000 boot manager.
If you insist on NTFS, please note that Sysinternals has a quite good Win9x/ME NTFS driver emulation.

Win98 <-> OS/2
These operating systems do not stand much in each other's way. However, one should avoid using DOS/Windows FDISK.
OS/2 can be fitted to be able to read and write FAT32 partitions easily. There are a number of ways to get this together:

  1. Use Henk Kelder's FAT32.IFS and helper programs. These tools need a patched PARTFILT.FLT driver which induces a number of ghost hard disks. No problem, just ignore the somewhat alarming messages that OS/2 FDISK couldn't write the MBR's of these ghost drives. An advantage of this driver is that drive letters for FAT32 partitions are assigned after assignment of OS/2 bootable partitions has taken place (i.e., no shifting of OS/2 boot drive letters).
  2. DANIDASD.DMD driver, a much improved (upon IBM's original one) partition driver. This one bears the risk that drive letter assignment will be mixed up.
  3. Netlabs FAT32 driver, actually a renewed and upgraded version of Henk Kelder's one.
  4. The VFAT driver from D. Steiner. Be warned with this one, once it really screwed up my FAT32 partitions bigtime.
Newer versions of OS/2's boot manager can "see" FAT32 drives and may screw up drive letter assignment too. That is the reason I wanted a somewhat older version of OS/2's boot manager.

There exists a Win32 emulator for OS/2 called ODIN. It runs best on Warp 4 and above, but on Warp 3 I could get OpenOffice to run  (and that is quite a big complex Win32 program). Nevertheless, Win32 programs run very slow; as I got Windows on the same PC I had no real need to have ODIN working, I installed it  just for fun.
Newer versions of ODIN can be found here.

Utilities for going the other way round, access to HPFS drives from Win9x/ME, do exist but the best ones are not free. Most offer just read support and/or will crash or lock up soon.

Warp Connect can't see long file names on drives exported through the network by Win98. This is due to a bug in Win98, which checks if the OS at the other side of the network is able to cope with long file names before it sends them out. Apparently OS/2 is not on Win98's list of capable OS-es .....

Windows <-> Linux
Windows can't see Linux partitions natively. I know there is a sort of IFS-driver for ext2 Linux partitions, but I've never tried it. Part of the problem is that it can only read the "old" ext2 type, from before it was silently changed to accomodate for ext3 in 2.2.x kernels.
There is however a Windows program called Explore2FS, which can be used to read ext2 and ext3 Linux partitions.
Would you run Linux from a ReiserFS partition, then a similar program can be found here.

Linux has no trouble at all to read / write FAT and FAT32 partitions; NTFS partitions can be read, there is experimental writing support for NTFS in -let's call it- the official driver. Recently a smart guy figured "if Microsoft makes it so difficult to write to NTFS, why don't we use the native Windoze tools to do it", he wrapped the native Windows ntfs.sys & ntoskrnl.exe in some utility software and presto! Linux NTFS write support or captive-ntfs. Reports state that r/w speed is not fantastic (50 Kb/s or so) but what the heck, I just use it for sharing Mozilla and Thunderbird 0.6 profiles between Win2K and Mandrake Linux 10, and it just works.
What I did on my desktop (my Libby got no ntfs partitions):
- run the rpm file: rpm -ivh captive-static*rpm - rip ntfs.sys and ntoskrnl.exe from a WinXP SP1 installation (it is said that these work the best). Perhaps ntoskrnl.exe has to be extracted from ntoskrnl.ex_ on the install CD. Anyway, put the files in /var/lib/captive - run: captive-install-acquire (may take quite some time) - add the line: /dev/hd$## /mnt/win2k captive-ntfs
BTW, be warned that there exist several flavors of NTFS; the one used by Win2K has been introduced already in SP4 for NT.

There exists a rather good Windows emulator for Linux, called wine. Codeweaver's wine version (now called Cross-over Office) is the best I think. Current versions are commercial, older versions are freeware (if you can find them - look for e.g., codeweavers-wine-20011108-5.i386.rpm - that one worked at least on Mandrake 7.2 with kernel 2.2.19). For still older programs Linux features a number of excellent DOS emulators, i.e. FreeDOS and dosemu.
OTOH there is a very good Linux emulator for Windows called Cygwin. It runs best on real 32-bit Windows versions (i.e., NT and up).

Linux <-> OS/2
Linux can read/write OS/2's HPFS partitions. The other way round seems to be possible using the ext-os2.ifs drivers (at least reading), but I could never get it to work at all. I read on the Web that it can only read older (pre-2.2.? kernel) versions of ext2 - since then the linux ext2 drivers have been upgraded to be able to be compatible with ext3 (in fact, ext2 changed a bit then), but nevertheless that quite trivial change seems to have broken the OS/2 driver. Maybe it can be fixed with a simple patch and recompile?

There is a Linux emulator/API for OS/2 called EMX. It allows Linux programs to be compiled and run on OS/2 more or less natively and thus very fast.

Windows vs. other OS-es
On the Libretto, the original pre-installed Windows 98 consistently screwed up the BIOS boot/hibernation settings. No problem for Windows, but big problems for other OS-es which rely on this BIOS setting. Further details are in the Win98 section.
Another thing to avoid is DOS/Windows FDISK. Not only is it crippled because of deliberate BIOS limitations (see the Win98 section), but it also may write wrong info in the FAT/FAT32 partition boot sectors: the indicated sizes of partitions might be set higher than the actual sizes, the excess indicated as bad sectors. Again, Windows isn't troubled but other OS-es choke on this.

All in all, Microsoft has a very careless or even egoistic attitude towards other OS-es. Like the proverbial egoistic macho car driver, MS acts simply like it owns the road. It is exactly this issue which has considerable consequences when multiple OS-es including Windows versions are to be installed on one computer.

OS/2 and Linux are much more careful with respect to other operating systems.


Cross-OS connectivity

Admittedly this chapter is a bit off-topic in this Libretto web page. However, as my Libby is a part of my home LAN and I often transfer files between several PC's including the Libretto I found it quite handy to have an overview of various connectivity issues.

File sharing and transfer

Known limitations and peculiarities

If you think that once a connection is made, file sharing between different platforms is completely hassle-free, you are too optimistic:

Options and possibilities

To exchange data between Windows, OS/2 and Linux there are several choices:

  1. Carrying around media
    As always, your last resort if your LAN doesn't work (yet) is carrying around floppies, ZIP-floppies, CD-ROMs and/or external hard disks.
    Don't laugh! - in the end, taking into account all hours you've spent on experimenting with network options and -drivers (and rebooting in case of Windows 9x/ME and OS/2), the actual transfer speed using removable media may outperform any network connection, especially in case of CD-ROMs and external hard disks .....
    Some hints on hardware drivers (as always, Windows drivers are quite ubiquitous):
    • Floppies
      Under OS/2, floppies are a no no - I haven't seen a floppy driver for the Librettos yet. For Linux the floppy driver can be compiled into the kernel (see the Linux page for details).
    • ZIP-floppies
      (Sorry I have no experience with PCMCIA ZIP drives). For OS/2 parallel-port ZIP drivers exist (it used to be OAD, see the Iomega site or choose a suitable driver from Hobbes). In case of modern Linux distros, "modprobe ppa" and subsequent mounting will do the trick.
    • CD-ROMS
      AFAIK all Windows versions > 95 support PCMCIA CD-ROMs more or less out-of-the-box. It may be that in Win9x, the PCMCIA stuff must be set to 32-bit first. Parallel port CD-ROMS always need special drivers. In case of Linux, PCMCIA CD-players may need a stanza in /etc/pcmcia/config detailing identification strings and the ide_cs driver; parallel-port CD-ROM players often work using something like "modprobe ppa". For OS/2, proprietary drivers may be needed, or one can try recent DANIS506.ADD and DANIATAPI.FLT drivers - using them I could even get my old Freecom Traveller I to work as a CD-R/RW drive.
    • External hard disks
      I got an Argosy 2.5" external HD case with both a PCMCIA and a USB connection cable. As for Linux I had to add a stanza in the /etc/pcmcia/config file specifying the info from "cardctl ident" and the ide_cs kernel module. In case of OS/2 Warp Connect, I am still struggling. The newest DANI drivers help out a bit, but I can only see HPFS partitions on the external HD.
All right, now the serious stuff. When talking about LANs there is a choice of several protocols:
  1. TCPBEUI / NetBios over TCP/IP / SMB / CIFS
    Install NetBios over TCP/IP (=TCPBEUI = CIFS - Common Internet File System) on all boxes. On Linux this is just always installed by default, and with the use of Samba the Linux box can talk very well to the rest of the LAN. On Windows, again file and printer sharing must be installed/enabled.
    However, with file sharing on top of TCP/IP, you'd better be sure to install a good firewall as otherwise the rest of the world can peek at your private data.
  2. NETBEUI - NetBios Extended User Interface
    Install plain NetBios on OS/2 and NETBEUI + file and printer sharing on Windows boxes. Alas, Linux doesn't support NETBEUI (yet?), but there are patches available for Linux - see here.
    NETBEUI is a bit faster than TCPBEUI (see below), has a very simple configuration (almost none, just specify a hostname and which directories to share for every PC on the LAN) and is much safer as regards data security (the NETBEUI protocol can't be routed, so Internet script kiddies will have a hard time hacking your data). OTOH, it is old, to be dumped by Microsoft Real Soon Now implying much development is not to be expected anymore (sic, even the Linux developers think so), and on LAN's with > 10 PC's it gives a lot of network overhead.

  3. NFS - Network File System
    Install NFS on all boxes. Again, on Linux distros this is virtually always installed by default.
    NFS is a very efficient protocol and very fast (even with the OS/2 16-bit TCP/IP utils I found it to be twice as fast as NETBEUI, although in theory that really should be 20 % slower...), but a bit harder to configure. In addition, for optimized NFS transfer speeds significant tweaking is needed (and possible). As regards OS/2 Warp, with TCP/IP 4.3 (not free) 32-bit NFS is fully supported, but for Warp Connect (where formally the TCP/IP utilities are 16-bit) currently only 16-bit TCP/IP utilities can be invoked (although the NFS daemon is 32 bit).

    Free NFS software

    On Linux, NFS is built-in.

    For Windows, the TrueGrid Pro NFS Server v. 1.0 (Sorry! I know the link is dead, but you are asked to put the link on your web page if you like it, so here it is. But a Google will turn up ample download sites for it) is free and relatively easy to get to work. Be warned that is very fussy WRT case of host names specified by NFS clients on the other side. I've put the various host names on my LAN in various cases in the exports file. NFS clients are ubiquitous but I couldn't find freeware ones (save for demo versions - yes that is often advertised as freeware). A possible exception -that is, after rebuilding- is NFSSHELL, but it's available only as source code and seems like it still needs quite a bit of polishing to get it compiled in the first place. In addition, it is rated by as a plague - it seems that the guys at PestPatrol have no clue at all what nfsshell is to be used for (look here if you'd like to know better).
    Another option is Microsoft's Services For Unix (sfu), currently in version 3.5. You can download it for free, after signing in for a .NET passport, from Microsoft's SFU home page (just 235 MB.....).

    As for OS/2, the NFS Kit for good old TCP/IP 2.0 still works on Warp Connect and probably also on Warp 4 (see the OS/2 page.); for state-of-the-art full 32-bit NFS one has to resort to paid "Software Choice" packages.

  4. DCC - Direct serial/parallel Cable Connection
    For a two-PC-only LAN, networking can be done through a parallel (slow) or serial (even much slower) cross-cable ("Laplink" or "null-modem", resp.)
    • Linux <-> Windows 9x/ME       (If at all possible ...)
      On Windows 9x/ME boxes Direct Cable Connect (DCC) must be invoked, but I have never tried to network to a Linux box. AFAIK one needs NetBIOS over TCP/IP and File- and Printer sharing; on the Linux side, PLIP and Samba must be configured.
    • Linux <-> Windows NT/2K/XP       (Again, if at all possible ...)
      On the Linux side the same as above; on the Windows side a new Network Connection must be made (right-click on the desktop Network icon, select New Connection, select Connect directly to another computer, select Host or Guest, select port (COM1, IR, LPT1), specify which users may log in, come up with a name for your connection (I couldn't change the default "Incoming Connections" ....) and press "Finish". Next, right-click on the new Incoming Connections icon, select Properties, then the Networking tab and deselect unneeded protocols).
    • Windows <-> OS/2
      OS/2 Warp Connect allows the use of "PMAC", a parallel port NDIS emulator. Have a look at PMAC.TXT in \IBMCOM\MACS for more info.
      Another option is to invoke specialized software like Laplink or the old DOS 6.22 Interlnk/Intersrv stuff on the Windows side, and LPTOOL (Hobbes) on the OS/2 side.
    • Linux <-> OS/2
      Maybe maybe maybe ...... if you can get OS/2's PMAC driver to work (see above). Otherwise, you might try LPTOOL and a DOS utility in a Linux FreeDOS box or the like .... good luck.

Remote applications - X-Windows and VNC


X-Windows makes it possible to run X-based applications on a remote host (= another computer) while all graphical output and input is sent across the network to the computer you are working on. X allows you to have multiple applications running on multiple hosts and see all the application windows on your own desktop.
There are several ways to work like this:

  1. You can run the remote program on the remote computer using telnet. That way a so-called rootless X-window showing the application appears on your local desktop.
  2. You can ignore telnet and use XDMCP to start up a window manager on the remote host whose graphical terminal (i.e., a complete desktop) is shown on your local desktop. You can login to that remote host using a graphical login screen, subsequently you can do all things you would otherwise do behind the keyboard and screen of that remote host. Depending on the X-server used, that remote desktop may completely cover your native local desktop or be shown in a window.
Needless to say, lots of data have to be sent across the LAN (or maybe even Internet) to allow this feature. Moreover, the protocols used by X-Windows are not very efficient and inheritently insecure if not protected by ssh (Secure Shell). Ayway, X is relativelyeasy to set up. Only problem is that freeware X-servers are usually not the fastest around and suffer from a number of limitations. Commercial software offers much more options.

VNC (Virtual network computing)

Virtual Network Computing resembles X-Windows but shows remote desktops rather than the windows of remote applications. It is a bit easier to secure and setup and it's open source.
Other than X-Windows multiple users logged in at the same remote host have exactly the same remote desktop displayed on their screen; X-Windows allows multiple users to be logged in from different hosts running different applications.



Libretto-related software - A long list of links
Libretto-related - Another long list of links - One of the very few Libretto sites that is still active as of 2008
Again another Libretto site - it shows a.o. the parallel port dongle pinout for removing your BIOS password
(more to follow...)