[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Windows 2000 (all NTFS) & Red Hat Linux 6.2 Dual-Boot Solution for Dell 1300



This is the answer I finally figured out for a problem originally sent
to the redhat-install-list redhat com list as:

  Problems with Windows 2000/Red Hat Linux 6.2 Server dual-boot

This was after having getting no support from Red Hat on this issue, and
finding almost no w2k info online when I searched. So I thought I'd send
out what worked for me to some key Linux email addresses (but I don't 
have enough time to formalize this any more...)

The key points of the solution are followed by the key files involved
to (I hope) fully show how this solution works.

-- Key Points ----------------------------------------------------------

- I'm installing Windows 2000 Server and Red Hat Linux 6.2 on a Dell
  1300 with 1 * 600MHz CPU; 256 MB RAM; 4 * 18 GB disks; motherboard
  Adaptec ACI-7890 SCSI; and Intel EtherExpress Pro 100B, starting from
  a new, clean system. For various reasons, I want to use only NTFS for
  all significant W2K partitions. ALL commercial solutions I've found
  require the use of a FAT partition for whe W2K system disk on 
  dual-boot systems! Beware!
- Red Hat's instructions on this subject, as well as the referenced
  HOWTO (http://www.linuxdoc.org/HOWTO/mini/Linux+NT-Loader.html) on 
  this subject didn't work for me. As this is the only time I'll
  be sending this message to the group, I've included the text of the
  original problem below so all information is in one place.
- It doesn't matter which order you install the two OSes, since my 
  solution begins after you get each OS to successfully boot.
- I installed W2K first on /dev/sda, then I installed Linux on /dev/sdb,
  specifying that lilo should be installed in the root partition, not
  the MBR originally. Then I reinstalled W2K a couple of times as I
  tried out different partitioning schemes before I came to this answer.
- Before I did this, I was able to get W2K to boot normally, and I could
  get Linux to boot from the boot floppy. I couldn't get the boot.ini
  modifications mentioned in the HOWTO to work.
- The LILO loader works perfectly as the boot loader for both OSes - it
  even provides more flexibility and security than the W2K loader.
- Even though Linux was installed on the second disk, you still have to 
  write the the FIRST disk's MBR, or the W2K boot loader originally 
  written there when you install W2K will still take priority.
- You should install W2K on the first disk. It doesn't like being moved
  around to other SCSI ids. You should also try and install it in the
  first partition if possible. It doesn't like having other dos-
  compatible partitions in front of the system partition. (You have to 
  hand-edit boot.ini if you ever create a parttion in that space.)
- In the files below:
  - W2K installed on SCSI disk 0 partition 2 (/dev/sda2)
  - Linux installed on SCSI disk 1, / on /dev/sdb3, /boot on /dev/sdb2
    /boot was placed before / as there is some chance on some systems
    / may go beyond cylinder 1024, something not allowed. This way it
    will always be small and at the very beginning of the disk.
  - A password is required for any reason other than a standard boot 
    into linux with no additional parameters.
  - A boot message is used to describe each kernel, and indicate that
    passwords are needed for changes.

-- /etc/lilo.conf ------------------------------------------------------

/boot=/dev/sda
message=/boot/message
prompt
timeout=50
password=xxxxxxx
default=linux

image=/boot/vmlinuz-2.2.14-6.1.1smp
   label=linux
   initrd=/boot/initrd-2.2.14-6.1.1smp.img
   restricted
   root=/dev/sdb3
   read-only
 
image=/boot/vmlinuz-2.2.14-6.1.1
   label=linux-up
   initrd=/boot/initrd-2.2.14-6.1.1.img
   root=/dev/sdb3
   read-only
 
other=/dev/sda2
   label=win2k
   table=/dev/sda

-- Linux system /etc/fstab ---------------------------------------------

/dev/sdb3       /               ext2    defaults        1 1
/dev/sdb2       /boot           ext2    defaults        1 2
/dev/sdb5       /usr            ext2    defaults        1 2
/dev/sdb6       /home           ext2    defaults        1 2
/dev/cdrom      /mnt/cdrom      iso9660 noauto,owner,ro 0 0
/dev/sdb7       /var            ext2    defaults        1 2
/dev/sdb8       /tmp            ext2    defaults        1 2
/dev/fd0        /mnt/floppy     auto    noauto,owner    0 0
none            /proc           proc    defaults        0 0
none            /dev/pts        devpts  gid=5,mode=620  0 0
/dev/sdb12      swap            swap    defaults        0 0

-- output from fdisk, with contents added in () at end -----------------

# This disk used primarily for Windows 2000 
Disk /dev/sda: 255 heads, 63 sectors, 2213 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1             1         2     16033+  de  Unknown (Dell Util)
/dev/sda2   *         3      1024   8209215    7  HPFS/NTFS (W2K)
/dev/sda4          1025      2213   9550642+   5  Extended
/dev/sda5          1025      1536   4112608+   7  HPFS/NTFS (Data)
/dev/sda6          1537      2048   4112608+   7  HPFS/NTFS (Data)
/dev/sda7          2049      2213   1325331    6  FAT16 (Transfer)

# This disk used primarily for Linux
# The first primary partition, cyls 1-2 reserved for Dell Util as above
# /usr and some other partitions on other disks, not relevant here.
Disk /dev/sdb: 255 heads, 63 sectors, 2213 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System 
/dev/sdb2   *         3         6     32130   83  Linux (/boot)
/dev/sdb3             7       128    979965   83  Linux (/)
/dev/sdb4           129      2213  16747762+   5  Extended
/dev/sdb5           129       640   4112608+  83  Linux (/usr)
/dev/sdb6           641       768   1028128+  83  Linux (/home)
/dev/sdb7           769       960   1542208+  83  Linux (/var)
/dev/sdb8           961      1024    514048+  83  Linux (/tmp)
/dev/sdb9          1025      1536   4112608+  83  Linux (data)
/dev/sdb10         1537      2048   4112608+  83  Linux (data)
/dev/sdb11         2049      2176   1028128+  83  Linux (data)
/dev/sdb12         2177      2213    297171   82  Linux swap

-- Original problem message --------------------------------------------

I hope I'm in the right place... Please let me know if I should send
this elsewhere - I'm new to this list. Abstract of this problem above
the dashed line, details below.

I sincerely hope this hasn't been covered to death here, but Red Hat 
support didn't have an answer, and I couldn't find anything on mail-list 
or web site searches...

I'm trying to set up a Windows 2000 Server/Red Hat Linux 6.2 dual-boot 
configuration on a Dell 1300 (1x600MHz CPU; 256 MB RAM; 4x18GB disk; 
motherboard Adaptec AIC-7890 SCSI; Intel EtherExpress Pro 100B). I 
ordered this from Dell with Linux installed to make sure I had all the 
correct drivers (plus we already have an enterprise Windows License 
which allows me to install Windows 2000 on any machine for development). 

For those in a hurry who might know this off-hand: Although I've never 
installed Linux before, I have a lot of Solaris/AIX/IRIX experience, 
and followed all instructions in the dual-boot HOWTO to the letter, but 
still get this message when I select Linux during the NT boot loader 
sequence:

Windows 2000 could not start because the following file is missing or
corrupt:
<windows 2000 root>\system\ntoskrnl.exe.
Please re-install a copy of the above file.

Hopefully someone's seen this before, or knows what additional steps 
must be taken with Windows 2000 to enable dual-booting...

                             THE DETAILS
                             -----------

Here's a list of the steps I performed:

1. Swapped the SCSI ids and disk locations of disks 1(id:0) 
   (pre-installed Linux) and disks 4(id:3), so I could reinstall the new
   OSes without overwriting anything Dell installed that I might need 
   before I was done.
2. Used fdisk to repartition all disks (partition maps below). Planned 
   for installation of Windows on disks 1/3 and Linux on disks 2/4, plus 
   eventual use of partitions on all disks by both OSes for more 
   efficient disk access by Oracle to database-related files in data-
   oriented partitions. Plus I wanted to support eventual partition 
   mirroring in a flexible way. Reserved space at front of all disks for
   possible use by Dell OpenManage utilities.
3. Installed Windows 2000 Server. When time came to select partitions 
   for installation, I selected the partition I intended to install 
   Windows on, deleted it, then had the Windows installer recreate the
   partition (just to be anal about it) in the same spot, then install
   Windows in that partition. The installation went very smoothly. At
   the completion of Windows 2000 installation, I used the Windows
   update service to update the OS with all critical  updates from
   Microsofts site. New Windows storage management application showed
   ALL of the partitions I created on all disks. Everything looks good
   so far.
4. Installed Red Hat Linux 6.2 from CD-ROM. I selected the partitions
   on Disk 2 I originally allocated, set the mount points, formatted
   them and installed the OS. In the LILO installation parameters
   section, I DID install LILO in the Linux boot partition, according
   to the dual-boot HOWTO. The installation went very smoothly. Created
   boot floppy at the end.
5. Used the boot floppy to boot Linux. Checked out /lilo.conf and it
   looked OK (to me!) Here it is:

   boot=/dev/sdb2
   map=/boot/map
   install=/boot/boot.b
   prompt
   timeout=50
   default=Linux RH6.2

   image=/boot/vmlinuz-2.2.14-6.1.1smp
          label=Linux RH6.2
          initrd=/boot/initrd-2.2.14-6.1.1smp.img
          read-only
          root=/dev/sdb3

   image=/boot/vmlinuz-2.2.14-6.1.1
          label=Linux RH6.2-up
          initrd=/boot/initrd-2.2.14-6.1.1.img
          read-only
          root=/dev/sdb3

6. Copied the Linux initial boot sector to a floppy:

   dd if=/dev/sdb2 of=/bootsect.lnx bs=512 count=1
   mcopy /bootsect.lnx a:

7. Copied a:/bootsect.lnx to d: (See partition Map, D: is Windows 
   boot drive, since there was an extra partition before partition 
   where Windows was installed.)

8. Edited d:\boot.ini to add the new entry, resulting in:

   [boot loader]
   timeout=10
   default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
   [operating systems]
   multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Server"
/fastdetect
   d:\bootsect.lnx="Red Hat Linux 6.2"

9. Rebooted, then selected Linux in the Boot loader menu. Got error
   message listed above. Called Red Hat Installation Support, but they
   said they couldn't help me, since it was a problem with Windows
   files. (I really think they are dodging their responsibility with 
   that answer - I'll argue MOST of us trying/using Linux continue to
   need Windows on occasion, or like me, need to use it all the time.
   So its in their best interest to coexist with the appointed 
   successor to what runs on 90%+ of the PCs out there today) 

I can still boot Linux with the boot disk and Windows 2000 normally, 
so this is more of a nuisance than anything, but I'd like to get it to
work. The only on-line reference I could find was a tiny mention on
Caldera's site, which indicated it should work the same as NT 4.0.

Last but not least, here's the contents of /etc/fstab and the 
output of fdisk for the 4 disks, followed by some rationale/notes 
below:

/dev/sdb3       /               ext2    defaults        1 1
/dev/sdb2       /boot           ext2    defaults        1 2
/dev/sdb6       /home           ext2    defaults        1 2
/dev/cdrom      /mnt/cdrom      iso9660 noauto,owner,ro 0 0
/dev/sdb8       /tmp            ext2    defaults        1 2
/dev/sdb5       /usr            ext2    defaults        1 2
/dev/sdb7       /var            ext2    defaults        1 2
/dev/fd0        /mnt/floppy     auto    noauto,owner    0 0
none            /proc           proc    defaults        0 0
none            /dev/pts        devpts  gid=5,mode=620  0 0
/dev/sda8       swap            swap    defaults        0 0
/dev/sdb12      swap            swap    defaults        0 0
/dev/sdc8       swap            swap    defaults        0 0
/dev/sdd7       swap            swap    defaults        0 0

Disk /dev/sda: 255 heads, 63 sectors, 2213 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1             1         2     16033+  de  Unknown
/dev/sda3   *       129      1024   7197120    7  HPFS/NTFS
/dev/sda4          1025      2213   9550642+   5  Extended
/dev/sda5          1025      1536   4112608+   7  HPFS/NTFS
/dev/sda6          1537      2048   4112608+   7  HPFS/NTFS
/dev/sda7          2049      2176   1028128+   7  HPFS/NTFS
/dev/sda8          2177      2213    297171   82  Linux swap

Disk /dev/sdb: 255 heads, 63 sectors, 2213 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sdb2   *         3         6     32130   83  Linux
/dev/sdb3             7       128    979965   83  Linux
/dev/sdb4           129      2213  16747762+   5  Extended
/dev/sdb5           129       640   4112608+  83  Linux
/dev/sdb6           641       768   1028128+  83  Linux
/dev/sdb7           769       960   1542208+  83  Linux
/dev/sdb8           961      1024    514048+  83  Linux
/dev/sdb9          1025      1536   4112608+  83  Linux
/dev/sdb10         1537      2048   4112608+  83  Linux
/dev/sdb11         2049      2176   1028128+  83  Linux
/dev/sdb12         2177      2213    297171   82  Linux swap

Disk /dev/sdc: 255 heads, 63 sectors, 2213 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sdc1           129      1024   7197120    7  HPFS/NTFS
/dev/sdc2          1025      2213   9550642+   5  Extended
/dev/sdc5          1025      1536   4112608+   7  HPFS/NTFS
/dev/sdc6          1537      2048   4112608+   7  HPFS/NTFS
/dev/sdc7          2049      2176   1028128+   7  HPFS/NTFS
/dev/sdc8          2177      2213    297171   82  Linux swap

Disk /dev/sdd: 255 heads, 63 sectors, 2213 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sdd1             1         2     16033+  de  Unknown
/dev/sdd2             3       525   4200997+  83  Linux
/dev/sdd3   *       526       528     24097+  83  Linux
/dev/sdd4           529      2213  13534762+   5  Extended
/dev/sdd5           529       790   2104483+  83  Linux
/dev/sdd6           791       921   1052226   83  Linux
/dev/sdd7           922       987    530113+  82  Linux swap
/dev/sdd8           988      1053    530113+  83  Linux
/dev/sdd9          1054      1086    265041   83  Linux
/dev/sdd10         1087      2213   9052596   83  Linux

Notes:
- /dev/sda is boot disk for Windows 2000, in partition /dev/sda3 (7GB)
- /dev/sdb is boot disk for Linux, with /boot in /dev/sdb2 (slightly 
  less than 32MB), / in /dev/sdb3 (slightly less than 1GB) and /usr in
  /dev/sdb5 (4GB)
- Dell OpenManage installs a copy of the boot utilities in the first
  primary partition on the first two cylinders. To make sure I could
  install them again on other disks if I reconfigured this machine,
  moving disks around, I reserved the primary partition and first two
  cylinders for this on all disks.
- 128 Cylinders was pretty close to 1GB, so that's what I used
  when I wanted 1GB.
- I wanted to make some cylinder boundaries consistent across all four
  disks, primarily so I could set up software RAID mirroring on a 
  per-partition basis when needed. So the boundaries on sda and sdc
  match, and so do the boundaries on sdb and sdd, and except for a few
  small partitions, boundaries generally fall on a multiple of 128
  cylinders.
- I wanted to potentially mirror the primary OS disks used by Windows,
  so sda and sdc both have a partition of the same size and the same
  location as the third partition. I allocated a reserved partition
  in the second partition, so that I could have them start on a 1GB
  boundary, similar to the /usr partition on the Linux disks.
- With Linux, since I am following the FHS standard, I was not planning
  to mirror /usr, but might want to mirror /var or /. 
- Since I plan to run Oracle 8i, which loves to have a lot of spindles,
  I reserved the second half of each disk (starting at the 8GB boundary) 
  for data-oriented partitions which might be used by either OS. The
  layout of sda matches sdc, and the layout of sdb matches sdd to allow
  for software mirroring on a per-partition basis where needed for 
  redo-logs and other critical files.
- Currently the partition map for /dev/sdd makes me a liar. I still 
  haven't repartitioned this drive to support the strategy outlined
  above, since this still contains the original Dell factory install of
  Red Hat, which I intend to keep for a while until I've solved this
  and some other problems.

Bonus question: Does anyone know if the new Dynamic disks in Windows
2000 can peacefully coexist with non-Windows partitions on the drive? 
They've removed the ability to do per-partition software mirroring with
Windows NT style (basic) disks, bless their hearts $^%#$!

Answer: No - Windows 2000 must completely own all partitions on the 
drive before ANY partition on the drive can be used as part of a RAID
0, 1, 5 or 10 set. So you can't have Linux and W2K coexist on the same 
drive in such cases. This really SUCKS in my situation, as I was 
planning on having access to all 4 drives from BOTH systems to better
distribute I/O load for Oracle 8i database testing... This is what you
get with a monopoly - forced upgrades which remove features people 
depend on and nobody asked for... 

Copyright (c) 2000 Michael Crawford

> Michael Crawford
> Director of Technical Consulting
> iXL, Inc.
> San Francisco, CA  94111
> m x crawford ixl com -- remove ".x." to email



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]