LDP/LDP/howto/linuxdoc/Linux+NT-Loader.sgml

230 lines
6.4 KiB
Plaintext

<!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>