<!doctype linuxdoc system>

<ARTICLE>
<TITLE>The Loadlin+Win95/98/ME mini-HOWTO
<AUTHOR>Authored by: Chris Fischer, <HTMLURL
URL="mailto:protek@firstlinux.net" NAME="protek@firstlinux.net">
<DATE>v1.5.2, 21 Feb 2001

<ABSTRACT>This document describes how to use Loadlin with Windows 95/98/ME to
boot to Linux.</ABSTRACT>

<TOC>
	
<SECT>Introduction
<P>
	This document describes a simple three step procedure for using Loadlin
	to dual boot between Linux and Windows 95/98/ME. If you prefer to use
	the LILO boot manager, please consult the <HTMLURL
	URL="http://metalab.unc.edu/LDP/HOWTO/mini/Linux+Win95.html"
	NAME="Linux+Win95 Mini-HOWTO">.
	
<P>
	This version of this mini-HOWTO has been completely rewritten with
	major differences from the previous version (1.4.6). The following
	highlight the major differences:
	
<ITEMIZE>
	<ITEM>
	Name change. The Loadlin+Win95/98/ME mini-HOWTO was formerly known as "The
	Loadlin+Win95 mini-HOWTO. The change was made to more accurately
	reflect the topic covered herein.</ITEM></ITEMIZE>
<ITEMIZE>
	<ITEM>
	The focus has changed from Win95 to Win98, and as a result this
	mini-HOWTO is simpler and easier to follow. Microsoft made some changes
	in the way Windows boots in Win98, which has made most of the dual boot
	methods for Win95 incompatable with Win98. If you still wish to see the
	Win95 specific mini-HOWTO you can view it 
	<HTMLURL URL="http://www.eskimo.com/~praxis/" NAME="here."> </ITEM>
	</ITEMIZE>
<ITEMIZE>
	<ITEM>
	Change in copyright status from version 1.4.6</ITEM></ITEMIZE>

<SECT1>Copyright
<P>

	Copyright (c) 1997-2001 Protek Computer Solutions. Permission is
	granted to copy, distribute and/or modify this document under the terms
	of the <HTMLURL URL="http://www.gnu.org/copyleft/fdl.html#SEC1"
	NAME="GNU Free Documentation License">, Version 1.1 or any later
	version published by the Free Software Foundation; with the
	Invariant Sections being only "The Loadlin+Win95/98/ME mini-HOWTO".
 

<SECT1>New Versions Of This Document
<P>
	This mini-HOWTO is posted first at <URL
	URL="http://www.eskimo.com/~praxis" NAME="The Linux+Windows 95
	Reference Page">, so check there to make sure you have the most recent
	revision of this mini-HOWTO.

<SECT1>Feedback
<P>
	Questions, comments, and suggestions are welcome. I am always looking
	for ways to improve and expand this mini-HOWTO. I rely heavily on
	feedback to make improvements, and will do my best to be prompt
	with a helpful response. I can be reached at <HTMLURL
	URL="mailto:protek@firstlinux.net" NAME="protek@firstlinux.net">.

<SECT1>Disclaimer
<P>
	Every attempt has been made to ensure that the information presented
	in this mini-HOWTO is safe and accurate. However, this information
	is given without any warranty, either expressed or implied, as to its
	suitability for a particular use. It is generally considered a
	GoodThing(TM) to make backups of your system files before changing
	system configurations and/or files. I suggest you take this precaution
	"just in case".

<SECT>About Loadlin
<P>

<SECT1>What is Loadlin?
<P>
	Loadlin is a simple DOS based utility that loads the Linux kernel into
	memory from DOS. Loadlin was written by <URL 
	URL="http://elserv.ffm.fgan.de/~lermen/" NAME="Hans Lermen">. See the
	<URL URL="http://elserv.ffm.fgan.de/~lermen/manual.txt"
	NAME="Loadlin-1.6 User's Guide"> for further details about Loadlin's
	features and how to use Loadlin.

<SECT>IMPORTANT: Preliminary Information and Setup
<P>

<SECT1>Windows ME Users
<P>
	Before your read any further, I should mention that this mini-howto
	has some limitations with Windows ME. Based on feedback from Windows ME
	users, the menuing system described in the next section will
	only work from a Windows boot floppy instead of from the hard drive.
	Thanks to Olivier Guichard for pointing me to the relevant <URL
	URL="http://support.microsoft.com/support/kb/articles/Q274/6/46.ASP"
	NAME="Microsoft article">.
<P>
	Note that only the <TT>config.sys</TT> and <TT>autoexec.bat</TT> files
	need to be on the floppy disk. All other files mentioned may reside on
	the hard drive.
<P>
	If booting from a floppy is not an option for you, then please see the 
	<REF ID="FAQ" NAME="FAQ"> section for alternatives to LILO and Loadlin.
	
<P>
	Any Windows ME users who can find a better way than using a floppy,
	please <HTMLURL
	URL="mailto:protek@firstlinux.net" NAME="let me know"> your solution
	so I can include it in this mini-howto.

<SECT1>Things that are assumed:
<P>
<ITEMIZE>
    	<ITEM>You have successfully installed Windows 95/98/ME.
        <ITEM>Windows 95/98/ME is installed on Drive C.
        <ITEM>You have successfully installed Linux.
        <ITEM>You know what partition Linux is installed on. 
        <ITEM>LILO is NOT installed on your hard drive.

</ITEMIZE>

<SECT1>Items you need before you start:
<P>
<ITEMIZE>
 	<ITEM>The Loadlin.exe program file
 	<ITEM>Your kernel image file, usually bzImage or vmlinuz. (See the <REF
	ID="FAQ" NAME="FAQ"> for info).
</ITEMIZE>

<SECT>Getting started:
<P>

<SECT1>
Step One:

<P>
Edit (or create) <TT>config.sys</TT> on the root of Drive C. The contents should
be similar to the following:

<TSCREEN><CODE>
[menu]
menuitem=Linux, Mandrake Linux 7.2
menuitem=Win98, Windows 98
menucolor=15,1
menudefault=Win98, 10

[linux]

[win98]

</CODE></TSCREEN>

If your system already has a <TT>config.sys</TT> file, put those contents under
the <TT>[win98]</TT> section. The <TT>[linux]</TT> section is left blank
intentionally.


<SECT1>
Step Two:
<P>

Edit (or create) <TT>autoexec.bat</TT> on the root of Drive C. The contents
should be similar to the following:

<TSCREEN><CODE>
goto %config%

:linux
call c:\linux.bat

:win98 
</CODE></TSCREEN>

As above, if you aready have an <TT>autoexec.bat</TT> file, put those contents
under the <TT>:win98</TT> section.

<SECT1>

Step Three:

<P>
	Create a file called: <TT>linux.bat</TT>. Putting it in the root of
	Drive C is as good as place as any (but it can go anywhere so long
	as you reference the	path or location). The contents should be
	similar to the following:

<TSCREEN>
<CODE>
@echo off
c:\loadlin c:\vmlinuz root=/dev/hda3 ro 
</CODE></TSCREEN>

The above example assumes that <TT>loadlin.exe</TT> and <TT>vmlinuz</TT> are
located in the root of Drive C (or C:\) and that linux is installed on the
/dev/hda3 partition. Your configuration may be different.

<P>
	The important thing here is to make sure that loadlin and your linux
	kernel file are properly referenced. Finished!

<P>
	That should work for you, as that is how I have things set up on my
	system, which dual boots with Win98.

<SECT>Frequently Asked Questions:<LABEL ID="FAQ">
<P>
<SECT1>Where can I find more information on using Loadlin?<LABEL ID="Section 4.1">
<p>
<ITEMIZE>
	<ITEM>Loadlin can be found on your favorite distibution's installation
	CD. Just do a search for 'loadlin'.</ITEMIZE>

<ITEMIZE>
	<ITEM>The Loadlin-1.6 User's Guide is available for download at: 
</ITEMIZE>

<TSCREEN>
	<URL URL="http://elserv.ffm.fgan.de/~lermen/manual.txt"
	NAME="http://elserv.ffm.fgan.de/~lermen/manual.txt">
</TSCREEN>
<P> or
<TSCREEN>
	<HTMLURL URL="ftp://ftp.eskimo.com/u/p/praxis/manual.txt" 
	NAME="ftp://ftp.eskimo.com/u/p/praxis/manual.txt">
</TSCREEN>

<ITEMIZE>
	<ITEM>You might also try visiting the <URL 
	URL="http://elserv.ffm.fgan.de/~lermen/" NAME="Loadlin Home Page">
</ITEMIZE>

<ITEMIZE>
	<ITEM>Additional information is available at:
</ITEMIZE>

<TSCREEN>
	<HTMLURL
	URL="http://metalab.unc.edu/LDP/HOWTO/BootPrompt-HOWTO-2.html#ss2.2"
	NAME="http://metalab.unc.edu/LDP/HOWTO/BootPrompt-HOWTO-2.html#ss2.2">
</TSCREEN>

<SECT1>I am not sure what partition Linux is installed on. How do I find out?
<P>
<ITEMIZE>
	<ITEM>At a Linux shell prompt, run the <TT/df/ utility. If you see a
	line with <TT>/boot</TT>, then it will be quite obvious. If you do not
	see a line with <TT>/boot</TT>, then look on the line with a single
	"<TT>/</TT>".
</ITEMIZE>

<SECT1>Where do I find the kernel image file and how do I copy it to my MS-DOS 
partition?
<P>
<ITEMIZE>
	<ITEM>The kernel image file is usually called <TT>vmlinuz</TT> and
	should be located in the '/boot' directory. Often <TT>vmlinuz</TT> is a
	symbolic link to the actual kernel. If all else fails type:

<TSCREEN>

	<CODE>
	find / -name vmlinuz*</CODE>
</TSCREEN>

	at a Linux shell prompt. This will search all Linux partitions for the
	vmlinuz file. If you have multiple vmlinuz files, then make sure you
	use the correct one. If you are not sure, then the safest bet would be
	to use the most recent one.
<P>
	To copy your linux kernel file to your DOS partition, you need to make
	your DOS partition visible to Linux, then mount the partition if it is
	not already. Generally, this should have been set up when you installed
	Linux. All you need to do next is change to the directory the vmlinuz
	file is in and copy it over to DOS using the cp command.
<P>
	However, if Linux was not set up to recognize your DOS partition, then
	copy vmlinuz to a floppy. Take any DOS formatted floppy (with enough
	disk space to hold your kernel image file) and insert it into your
	floppy drive. Type:

<TSCREEN>
	<CODE>

	mount /dev/fd0 /mnt/floppy</CODE>
</TSCREEN>

	at a Linux shell prompt. Then change to the directory your kernel image
	file is in and type:

<TSCREEN>
	<CODE>

	cp vmlinuz /mnt/floppy</CODE>
</TSCREEN>

	This will copy vmlinuz to your floppy disk and it will be readable by
	DOS. Shutdown Linux, boot to DOS, then copy vmlinuz to whichever
	directory you choose. If you recompile your kernel, do not forget to
	copy the new kernel image file to your DOS partition. This will
	overwrite your old file, so it might be a good idea to rename the old
	file first just in case the new one does not work properly.

<P>
	Alternatively, if you have the <TT>mtools</TT> utilities you could
	type:
<P>	
<TSCREEN>
	<CODE>
	
	mcopy vmlinuz a:</CODE>
</TSCREEN>
<P>
</ITEMIZE>

<SECT1>Does it matter if I install Linux or Windows 95/98/ME first?
<P>
<ITEMIZE>
	<ITEM>Technically no. However, it would be <em>much</em> simpler to
	install Windows first. That way it is easier to setup Linux to recognize
	your DOS partition(s) as you can usually do this during the Linux
	installation.
</ITEMIZE>

<SECT1>I currently have LILO installed, but I want to use Loadlin instead. How
do I remove LILO?
<P>
<ITEMIZE>
        <ITEM>You will need to restore the Win95 MBR (Master Boot Record) that
	LILO overwrote when you installed LILO. At a DOS prompt type: </ITEMIZE>
<TSCREEN>
        <CODE>

        fdisk /mbr</CODE>
</TSCREEN>

<SECT1>What if I already dual boot between Windows 95 and Windows 3.x, and I
want to boot to Linux using this method?
<P>
 <ITEMIZE>
	<ITEM>Frankly, if you want to do this I would recommend using LILO. However,
	if you really do not want to use LILO, you will have to boot to Win 3.x
	first, then issue the Loadlin command. (Make sure Windows 3.x is NOT   
	running, but that you are in DOS 5.0 or 6.x).
</ITEMIZE>

<SECT1>Is it possible to initiate Linux from the Windows 95/98/ME desktop?
<P>
<ITEMIZE>
	<ITEM>Yes. First, create a batch file called "linux.bat", for example.
	Edit the file to contain a Loadlin command such as:</ITEMIZE>

<TSCREEN>
	<CODE>

	loadlin f:\vmlinuz root=/dev/hdc2 ro</CODE>
</TSCREEN>

	Now save the file on your Windows desktop. Next, right click on the
	Linux.bat icon, then left click on Properties. Now click on the Program
	tab, then click on the Advanced button. Click on the box next to
	"MS-DOS mode" and make sure the box next to "Warn before entering
	MS-DOS mode is checked". Click OK, then click on OK again. Now when you
	double click on the Linux icon, a warning box will appear before going
	into MS-DOS mode. If you click on "Yes" then Windows enters MS-DOS mode
	and executes the Linux.bat file.
<P>
	<BF/NOTE:/ You must be in MS-DOS mode in order to use Loadlin. Please
	see the manual.txt file mentioned in <REF ID="Section 4.1" 
	NAME="Section 4.1"> of this <REF ID="FAQ" NAME="FAQ"> for more 
	information.


<SECT1>Where can I get a plain text version of this document?
<P>
<ITEMIZE>
	<ITEM>You can get a plain text version of this document at:
<TSCREEN>
	<HTMLURL URL="ftp://ftp.eskimo.com/u/p/praxis/loadlin.txt"
	NAME="ftp://ftp.eskimo.com/u/p/praxis/loadlin.txt">
</TSCREEN>
</ITEMIZE>

<SECT1>Is Loadlin the only alternative to LILO?
<P>
<ITEMIZE>
	<ITEM>No. There are other utilities you could use for dual booting:
<TSCREEN>
	<HTMLURL URL="http://www.gnu.org/software/grub/grub.html"
	NAME="GRUB">: The GNU GRand Unified Bootloader
</TSCREEN>
<TSCREEN>
	<HTMLURL URL="http://www.xosl.org/"
	NAME="XOSL">: Extended Operating System Loader
</TSCREEN>
<TSCREEN>
	<HTMLURL URL="http://freshmeat.net/search/?q=boot+loader"
	NAME="Other Bootloaders and Related Links">
</TSCREEN>
</ITEMIZE>

<SECT>Internationalization
<P>
	Currently there is an <URL
	URL="http://www.eskimo.com/~praxis/Loadlin+Win95-98-ME-Italian.html"
	NAME="Italian translation"> of version 1.5.0 of this mini-HOWTO,
	translated by <HTMLURL URL="mailto:mmartiradonna@madeinlinux.com" 
	NAME="Michele Martiradonna">.
<P>	
	Any effort to translate this mini-HOWTO into other
	languages will be greatly appreciated. If you are interested in taking 
	on such a task, please e-mail me at: <HTMLURL
	URL="mailto:protek@firstlinux.net" NAME="protek@firstlinux.net">.
	
</ARTICLE>
