Booting Linux from W2k without LILO or GRUB

Posted on 2003-10-22
Last Modified: 2013-12-15
In the good old days, loadlin used to be a solution on W9x, but W2k does not support neither real-mode apps, nor VCPI, so the I found out loadlin is of no use.

My (extended) problem:
I have several W2k workstations, networked. Ideally, I'd like to start Linux using the ramdisk scheme then mount the needed filesystem pieces via NFS from a server machine. This way I get to run Linux when required without the need to maintain two OS'es on those workstations (the W2k management is in place and works good enough - I do not need another hassle).
If loadlin would have worked, then my plan would have been to start a kernel using loadlin and a ramdisk image for the root FS, then bring up the network and mount the bulk of the FS via NFS. Even swap is not required, since the memory is relatively high and the usage pattern slim (no X, just command line, yes I'm setting up an academic CS lab :) ). In this utopia I would have gotten away with a couple of files deployed to the W2k system (loadlin, kernel, initrd).

Further restrictions, generated by the usage pattern of the machines:
I do not want to use the floppy (actually it's physically disabled). CR-ROM's are out of the question for the same reason.
I would rather not go all the way and install LILO or GRUB (with a full-blown partition resetup), since this would mean I'd have to do it manually on all those workstations. I know that's a working solution but that's exactly what I want to avoid.

I hope something along the following lines is possible:
1. Start the kernel-loading process in a loadlin way, but directly from ntloader, as a new line in boot.ini.
2. Convince W2k to start loadlin such that loadlin is happy (unlikely)
3. Boot some "stub DOS" from boot.ini and use it to immediately run loadlin

Do you have any idea?

Question by:fva
  • 3
  • 3
LVL 12

Expert Comment

ID: 9605004
Will you thinking of the VMWARE? it's not free but you can have the linux with the win2k.
LVL 12

Expert Comment

ID: 9605028
I found this in the internet talking abt loadlin with Win NT and Win2K have a check

Author Comment

ID: 9605169
Thanks for the comments.

1. VMWARE: Well, as you said, it's not free. Next, I'm not looking for a means to run them OS'es concurrently, but merely for a method to clean start Linux on a (already working) W2k box. Once the process of starting Linux is initiated, be it at boot time or after W2k is up, I do not want W2k any more (until next session, of course :) ).

2. URL: The page is merely enumerating some issues on booting. I already found the "bootsect.lnx" method on the Net and I even tried it. It works, but it's not what I want, since it requires a Linux loader to be installed in a separate partition (e.g. LILO, GRUB or equivalent). The bootsector it talks about it's the bootsector placed in the Linux partition by the specific loader, stripped off and copied into the "bootsect.lnx" file with dd. The idea is exactly to avoid the burden of shrinking the W2k partition to install Linux root and swap partitions with the appropriate loader. As I said, I want a minimal Linux to boot, then NFS mount "the bigger guns".

The Eight Noble Truths of Backup and Recovery

How can IT departments tackle the challenges of a Big Data world? This white paper provides a roadmap to success and helps companies ensure that all their data is safe and secure, no matter if it resides on-premise with physical or virtual machines or in the cloud.

LVL 12

Accepted Solution

paullamhkg earned 300 total points
ID: 9605239
Not sure abt this have a check

SYSLINUX is an MS-DOS program very similar to LOADLIN. It is also available from 

Author Comment

ID: 9605726
My workstations do not have PXE ROM's so I would have to hack a little but booting completely off the network might be an idea. I'll look into this and I'll post here the results. Please allow me to check on this before I give more feedback.

Author Comment

ID: 9670522
Hi paullamhkg!

Your idea was valuable, even if in an indirect way.
Based on your link I got to Etherboot and that will be my solution.
Here is the thing I am going to use:
Since I cannot mess neither with the netcard ROM nor with the HDD partitioning scheme, I will do a LILO-like trick within Windows. I wrote a small loader (fits in 512 bytes) that uses an embedded table of offsets and sizes to load an Etherboot ROM image then launch it. This "boot" sector is put in c:\ and referenced from boot.ini. NT will load the "sector" and run it. From there on I have the control and the rest are details.
The ROM image is copied also in C:\ (for manageability issues) and the map of its sectors is extracted by a small C utility I wrote and fed into the "sector" file.
At installation time the utility copies a virgin "sector" image in c:\, then copies a pre-supplied ZDSK file (except the original boot sector) in c:\, then computes the layout of the newly-created ROM file and writes the (offset/size) pairs in the "sector" image. Currently I have to adjust the boot.ini file by hand, but that's easy to solve.
At runtime, NT/W2K starts booting and offers me the new "Linux Etherboot" option. If selected, it loads the "boot sector" I prepared and launches it. This code uses the (offset,size) table to load the Etherboot code, via Extended INT 13. Then it launches it and from there on it's like I had a ROM on the netcard.

It's tested and the scheme works. After I select the proper entry at boot time, the Etherboot code kicks in and it starts doing its DHCP/TFTP magic.
Now all I have to complete is the setup of a root ramdisk image and the associated NFS mounts, but that's already pretty well covered and I hope it won't be that hard.

Thanks for the good idea.


Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Over the last ten+ years I have seen Linux configuration tools come and go. In the early days there was the tried-and-true, all-powerful linuxconf that many thought would remain the one and only Linux configuration tool until the end of times. Well,…
The purpose of this article is to demonstrate how we can use conditional statements using Python.
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
Connecting to an Amazon Linux EC2 Instance from Windows Using PuTTY.

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now