<!doctype linuxdoc system>
<article>
<title>NT OS Loader + Linux mini-HOWTO</title>
<author>Bernd Reichert, &lt;reichert@dial.eunet.ch&gt;</author>
<date>v1.11, 2 September 1997

<sect>Abstract
<p>
This document describes the use of the Windows NT boot loader to
start Linux.
This procedures have been tested with Windows NT 4.0 WS and Linux 2.0.

<sect>How does the NT OS Loader work
<p>
The NT OS loader likes to have the boot sector from the other
operating systems available as a file. It reads this file and 
starts the operating system selected, i.e. either Windows NT in 
different Modes or any other OS.

<sect>Tips on how to install Windows NT and Linux on the same System
<sect1>Windows NT installation
<p>
Try to install Windows NT first. If you want to use NTFS for your Windows 
NT-partition, keep in mind, that the todays production version of Linux
cannot access NTFS partitions. 
An alpha driver that can read NTFS-Partitions is available at 
<tt>http://www.informatik.hu-berlin.de/~loewis/ntfs</tt>.
You may create a separate FAT-Partition for data exchange 
or you have to use DOS-formatted floppies.

<sect1>Partitioning
<p>
Another Mini-howto recommends not to use NTs "Disk Administartor" 
to create the Linux swap- and root-partitions. It is sufficient to 
see the free space there. I also recommend to use linux's fdisk later.

<sect1>Linux installation
<p>
Now boot linux from diskettes, create the swap and root-partition.
Fdisk assumes the ntfs-partition to be a HPFS-partition. 
This is normal.
Boot again from diskettes and install Linux as you like.

<p>
Just in case the installation procedure suggests that you could mount 
the HPFS partition which it has found: Ignore it. 

<sect1>Lilo
<p>
When you come to the Lilo-Section, specify your Linux-root-partition 
as your boot device because the Master Boot Record (MBR) of your
harddisk is owned by Windows NT. This means that the root-entry and
the boot-entry in your <tt>/etc/lilo.conf</tt> have the same value.
If you have a IDE-harddisk and your Linux-partition is the second 
partition, your boot-entry in <tt>/etc/lilo.conf</tt> looks like:

<tscreen><verb>
boot=/dev/hda2
</verb></tscreen>

If you have two disks and your Linux resides on the first partition
of your second disk, your boot-entry in <tt>/etc/lilo.conf</tt> looks like:

<tscreen><verb>
boot=/dev/hdb1
</verb></tscreen>

Run lilo with a kernel that matches your system. 
Check the kernel by booting from diskette first if you are not sure.

<p>
If you cannot boot Windows NT now, you have a problem.
I hope you have created a repair-disk recently.


<sect>Bootpart
<p>
There is a NT-programm called bootpart written by G. Vollant that can do
the jobs from the next two points for you. Bootpart is available at 
<tt>http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm</tt>.

<p>
If you want to know how things are working together, use the procedures 
described in point 5 and 6.


<sect>The Linux part of the work
<p>
You have to boot from diskettes until the NT-part is fixed.

<p>
Now you have to peel the bootsector from your Linux-root-Partition.
With /dev/hda2 as your linux-partition, the dd-command is:

<tscreen><verb>
# dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1
</verb></tscreen>

There is something wrong if your bootsect.lnx has more 
than 512 bytes.

Now copy the file bootsect.lnx to a DOS-formated floppy if this is 
your way to transfer files to the NTFS-Windows-partition.

You can copy it with 

<tscreen><verb>
# mcopy /bootsect.lnx a:
</verb></tscreen>

or with

<tscreen><verb>
# mount -t msdos /dev/fd0 /mnt
# copy /bootsect.lnx /mnt
# umount /mnt
</verb></tscreen>


<sect>The Windows NT part of the work
<p>
Copy the file from the diskette to <tt>C:\\bootsect.lnx</tt>. I don't tell you
how to do that.

What lilo.conf is for linux is <tt>c:\\boot.ini</tt> for Windows NT.
Remove the, system- and the read-only-attribute before you 
can modify it with:

<tscreen><verb>
C:\attrib -s -r c:\boot.ini 
</verb></tscreen>

Now change the file boot.ini with an editor, notepad for example, as follows: 

<tscreen><verb>
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation ... 
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation ...
C:\BOOTSECT.LNX="Linux"
</verb></tscreen>

Only the last line has been added in this example.
Restore the attributes after you have saved <tt>boot.ini</tt> with: 

<tscreen><verb>
C:\attrib +s +r c:\boot.ini 
</verb></tscreen>

After a shutdown of your Windows NT and a restart your should
see the following:

<tscreen><verb>
  OS Loader V4.00
 
  Please select the operating system to start:

  Windows NT Workstation Version 4.0
  Windows NT Workstation Version 4.0 [VGA mode]
  Linux

Select Linux and see

  LILO loading zImage ....
</verb></tscreen>


<sect>Play it again Sam
<p>
A new copy of bootsect.lnx must be transfererd to <tt>C:&bsol;BOOTSECT.LNX</tt>
evry time the bootsector of your linux-partition has been modified.
This happens for example when you install a new kernel with lilo.   
As you can see such a system in not ideal for testing experimental 
kernels.


<sect>Troubleshooting     
<p>
If things do not work as expected, check bootability with a floppy disk.
With <tt>/dev/hdb1</tt> as your Linux-partition, your <tt>/etc/lilo.conf</tt> 
has the following entries:

<tscreen><verb>
root=/dev/hdb1
boot=/dev/fd0
</verb></tscreen>

Run lilo with a diskette inserted. Now try to boot from the diskette. 
If your Linux on <tt>/dev/hdb1</tt> can't be 
started, the NT OS loader will also fail to start it.  
If you see a lot of <tt>01 01 01 01</tt>, your root-disk is not accessible.
Check whether all your disks are known by the bios.

<p>
If the floppy boots your Linux partition, you can peel of your 
boot-sector for the NT OS loader with: 

<tscreen><verb>
# dd if=/dev/fd0 of=/bootsect.lnx bs=512 count=1
</verb></tscreen>

<p>
You can keep this diskette as your rescue-diskette just in case
your Windows NT installation breaks.


<sect>References
<p>
<itemize>
  <item>The Linux+WindowsNT mini-HOWTO
  <item>The FAQ for FreeBSD 2.X
</itemize>

<sect>Acknowledgements
<p>
<itemize>
  <item>Thanks to Xiaoming Yi &lt;z3c20@ttacs.ttu.edu&gt; for the tip that
    the procedures work also with other disks than the first one.
  <item>Thanks to Frank Dennler &lt;Frank.Dennler@zkb.ch&gt; for the
    diskette-trick.
</itemize>

<sect>Feedback
<p>
Any comments are welcome.

</article>
