Jump to content

dual booting DOS and Win7


aurgathor

Recommended Posts

I have a small, 1 Gig partitition (C:) , set active, and boots DOS (from 98SE) just fine. Then I install Win7 in custom mode onto the 2nd partition -- D:. After install the first partition is no longer visible (no drive letter is assigned to it); the 2nd partition is now C:, system only boots Win7, and there's no option to boot into Dos.

What do I need to do to to have a usable boot menu (à la mode WinXP) with the ability to boot into DOS? Also, I'd strongly prefer DOS on C:, and Win7 on the D: drive.

TIA

Link to comment
Share on other sites


There is something "queer" in the "custom" install. :unsure:

From what you report it seems like the Windows 7 install "decided" that the first partition was it's own "boot" partition (what MS calls "System) , and that the second partition is the windows 7 "System" partition (what MS calls "boot"), see here:

http://www.multibooters.co.uk/system.html

for the misnaming.

If you open Disk Management, you should be able to see the first partition alright, only it will have NOT a drive letter attributed.

You can manually assign a drive letter to that first partition, let's say that you assign to it "F:".

In theory it is possible to change the drive letter assigned to the second partition from the current "C:" to "D:", but in practice it is extremely complex and very much error prone (besides the procedures needed not having been tested or tested enough).

For these reason it is STRONGLY NOT advised to attempt doing it.

What you can do, once you have found which of the two partitions (I tend to believe first one) contains the files \BOOTMGR and \boot\BCD, is to create a DOS bootsector file for it and add to it a good ol' BOOT.INI file invoking that file.

To create the DOS bootsector (BTW which version of DOS?) there are a couple utilities available, while the BOOT.INI can be written with Notepad alright.

Bootpart:

http://www.winimage.com/bootpart.htm

should be able to create the bootsector in file directly (and run on 7 too).

As well MBRFIX will be able to create the bootsector (and surely runs under 7):

http://www.sysint.no/nedlasting/mbrfix.htm

but it can only update the "real" bootsector, so you will need another tool, like the dsfo of the dsfok toolkit:

http://members.ozemail.com.au/~nulifetv/freezip/freeware/index.html

to extract it to file (and then re-use MBRFIX to restore the Windows 7 bootsector).

The BOOT.INI should be something like:

[boot loader]Timeout=20default=C:\DOS\BOOTSECT.DAT[operating systems]C:\DOS\BOOTSECT.DAT="Microsoft DOS version x.xx"

This way DOS will become an entry in the BOOTMGR choices.

Or you can use a bootmanager like grub4dos.

If you wish to always boot to DOS and from it launch Windows 7, you can also use grub.exe (still part of grub4dos).

Since DOS is unaffected by the Windows 7 drive lettering (and in any case it won't be able to see/access the Windows 7 partition, which I presume is NTFS), when you boot to DOS you will see only a drive letter/partition (C:\) corresponding to the first partition and when you boot to 7 you will see instead the second partition as C:\ and you can assign to the DOS partition any other letter.

jaclaz

Link to comment
Share on other sites

Thanks for the very informative post.

"You can manually assign a drive letter to that first partition, let's say that you assign to it "F:"

Yes, I've actually tried that even before posting, and it works. But I ran into a problem when I tried to change the drive letter assigned to the Win7 partition from C: to something else. That, obviously, didn't work.

"In theory it is possible to change the drive letter assigned to the second partition from the current "C:" to "D:", but in practice it is extremely complex and very much error prone (besides the procedures needed not having been tested or tested enough)."

Do you know the procedure, or have a link to it? The worse that can happen is that I need reformat/repartition the target disk.

TIA,

Link to comment
Share on other sites

I'm sure jaclaz can point you not to one but to several procedures to do so.

But be warned you're in for a lot of grief. At the end of the day, it's your choice, of course.

But I cannot simply read your thread and go away, without adding my warning to jaclaz's:

Windows loves to be at C: ... and is best left that way!

There's simply too many things that presume Windows actually * is at C: * and proceed accordingly without any checking...

You take it elsewhere, even if you do it right, it's bound to bite your hand someday in the future.

Link to comment
Share on other sites

Windows loves to be at C: ... and is best left that way!

There's simply too many things that presume Windows actually * is at C: * and proceed accordingly without any checking...

You take it elsewhere, even if you do it right, it's bound to bite your hand someday in the future.

No. :no:

Windows NT (and all NT based systems) were designed to NOT reside on C:.

One of the innovations was that the C: "remained" the active primary partition (for DOS and other real mode OS) and that Windows NT could be installed in a logical volume inside extended partition.

Since NT 3.51 times (that is 1993, i.e. 20 - twenty - years ago) I never had any of my systems have C: as the windows NT system drive letter, and I always installed any flavour of the NT faily inside a volume inside extended.

There is NO actual issue with any NT based system NOT being at C:, the issue is installing to C: and later change the drive letter associated to that volume.

@aurgathor

Really, it is not something that makes sense to change drive lettering of a system.

However, basically, you need to:

  1. change the bootmgr drive lettering <- this is specific to Vista :ph34r: and later and may not be needed, it would probably be better to re-build a \boot\BCD from scratch
  2. change the Dosdevices drive lettering in the Registry
  3. change each and every reference in the Registry to C:\ to (say) E: (or whatever letter)

In the good ol' times of 2K, I would make a copy of the whole "system" drive (an additional volume, made by shrinking the current system volume and creating a new one, to which each and every file is copied, while the system is offline, like through a further install or a PE), and have it mounted as (say) E:, then I would exchange in MountedDevices C: with E:, then I would run COA2 on the Registry changing all references from C:\ to E:\.

The second copy is because for some time during the operations the Windows may run "partly on C: and partly on E:".

Then I would have checked everything twice or thrice, reboot, make the "new copy" hidden and with crossed fingers, hope that everything worked.

With a "freshly installed" system it worked alright, never thought to do that on a "old, used a lot, with a zillion apps installed" one.

With Windows 7 I would expect all kind of issues with permissions, UAC, privileges, and something more. :ph34r:

jaclaz

Link to comment
Share on other sites

Windows loves to be at C: ... and is best left that way!

There's simply too many things that presume Windows actually * is at C: * and proceed accordingly without any checking...

You take it elsewhere, even if you do it right, it's bound to bite your hand someday in the future.

No. :no:

Windows NT (and all NT based systems) were designed to NOT reside on C:.

One of the innovations was that the C: "remained" the active primary partition (for DOS and other real mode OS) and that Windows NT could be installed in a logical volume inside extended partition.

Since NT 3.51 times (that is 1993, i.e. 20 - twenty - years ago) I never had any of my systems have C: as the windows NT system drive letter, and I always installed any flavour of the NT faily inside a volume inside extended.

There is NO actual issue with any NT based system NOT being at C:, the issue is installing to C: and later change the drive letter associated to that volume.

I, on the other hand, build all my multiboot systems so that the currently booted OS always gets C:, and the rest of the bootable partitions rearrange their letters accordingly, while the data partitions always keep the same (higher) letters constant.

:hello: Ciao, jaclaz! It's always refreshing to see your <"No."> reply below my most recent post on a thread... it tells me reality's hinges are holding strong, and that's a great way to start one's day! :w00t:

Link to comment
Share on other sites

I, on the other hand, build all my multiboot systems so that the currently booted OS always gets C:, and the rest of the bootable partitions rearrange their letters accordingly, while the data partitions always keep the same (higher) letters constant.

But that is a valid alternative theory/way of operation :), it doesn't matter whether right or wrong, the point is whether the one or the other is more dangerous/causes the most problems.

Among the reasons why NOT having the Windows system on C: is advised (by me) and the approach I personally use are:

  1. a whole range of badly coded programs and/or malware may have the C: hard coded and operate on system files on C:
  2. a whole range of badly coded programs and/or malware may delete the MBR partition table or the whole MBR (and having the system on a volume inside extended makes it much more easy to restore it.
  3. on a multiboot system I have the "same" partition/volume with the "same" drive letter no matter the OS in which I am booted

Having the currently booted OS always as C: and the data partition always as a "fixed, high" drive letter is a good strategy :) when multibooting, but limited to the "data" partitions volumes.

Usually the people using this approach also "hide" other partitions in normal operation, which also may be a good choice.

If you multiboot between DOS and a Windows NT system is more than enough.

When you start multibooting between, say Windows 9x and more than one NT based system, it starts to be a complication, and in any case normally in this kind of setup if you want to copy a file from the Windows NT partition to the DOS one, you have to copy it to the "data" partition, then reboot and "take it" from there or you need to (temporarily) unhide the DOS partition to write directly to it, and when you have more than one instance of the same NT based OS, sometimes (if all of them use C: ) it can be difficult (or prone to errors) to remember which system you are booted in (at least for me this has been an issue).

But of course everyone is perfectly free to choose the setup that he/she likes the better. :hello:

jaclaz

Link to comment
Share on other sites

Do you know the procedure, or have a link to it? The worse that can happen is that I need reformat/repartition the target disk.

Try WinNTSetup

http://www.msfn.org/board/topic/149612-winntsetup-v23/

Choose able drive letter for the new Windows installation

/SaveDriveLetters - will save the current driveletter assaignment for the new windows installation

Link to comment
Share on other sites

Among the reasons why NOT having the Windows system on C: is advised (by me) and the approach I personally use are:

1) a whole range of badly coded programs and/or malware may have the C: hard coded and operate on system files on C:

2) a whole range of badly coded programs and/or malware may delete the MBR partition table or the whole MBR (and having the system on a volume inside extended makes it much more easy to restore it.

3) on a multiboot system I have the "same" partition/volume with the "same" drive letter no matter the OS in which I am booted

These are pretty much the reasons why I want my main OS on D: instead of C:. As a matter of fact, I normally create an empty directory structure on C: that mimics the actual OS on D: ;)

Additional reasons:

4) If I need to restore a partition, a small FAT32 partition is much faster than my main partition, and I usually don't need to worry about backup or data loss. (I'm a very heavy user of ghost -- once I reach a stable point, just create an image)

5) It's much easier to find 'cuckoo eggs' in a mostly empty partition.

Link to comment
Share on other sites

I thought Windows just took C no matter what partition you boot off?

Yes, C is the default letter. No, not matter off.

Given that C is already used, then another letter is used.

Mentioned WinNTSetup does work: Windows 7 get letter D.

Link to comment
Share on other sites

The BOOT.INI should be something like:

[boot loader]Timeout=20default=C:\DOS\BOOTSECT.DAT[operating systems]C:\DOS\BOOTSECT.DAT="Microsoft DOS version x.xx"

This way DOS will become an entry in the BOOTMGR choices.

jaclaz

@ Jaclaz,

I'm trying to find the simplest way to have a FAT32 first partition (for installing MS-DOS -7.x or later), togheter with other NTFS primary partitions on an external USB HD.

The method you indicated could be very interesting in my case, so I wonder if by using it I will end to have a real entry in the BOOTMGR choices (as you said) or, per default (and just due to its behaviour), normally the BOOTMGR loader will look for an active partition to start (through the created Boot.ini) and if it's not found it will look inside the BCD store.

Thx,

mariella

Link to comment
Share on other sites

I am not sure to have understood your question (actually I am pretty sure I have not understood it :w00t:).

See if this helps:

The behaviour of a BOOTMGR is the following:

  1. start booting
  2. look for a file \boot\BCD in the SAME partition the BOOTMGR is booted from
  3. parse it's contents
  4. look for a file \BOOT.INI in the SAME partition the BOOTMGR is booted from
  5. parse it's contents and discard each and every entry that is an arcpath and consider ONLY those that are direct links to a bootsector file
  6. display as user boot menu options the entries found in the \boot\BCD and the ones not discarded found in \BOOT.INI
  7. boot/chainload the *whatever* the user chose

Arc path reference:

http://technet.microsoft.com/en-us/library/cc977184.aspx

The ARC names in the file Boot.ini are similar to the following:

Multi(W)disk(X)rdisk(Y)partition(Z)\%systemroot%


Scsi(W)disk(X)rdisk(Y)partition(Z)\%systemroot%

Signature(8b467c12)disk(1)rdisk(0)partition(2)%systemroot%=description

Direct bootsector entry reference:

http://thestarman.pcministry.com/asm/mbr/bootini.htm#BP

jaclaz

Link to comment
Share on other sites

The behaviour of a BOOTMGR is the following:

...............

Jaclaz, OK.

With the BOOTMGR process flow you attached you responded to my question. So that BOOTMGR looks for the \boot\BCD section, at first, and then it looks for the BOOT.INI part.

The reason for my question was that on some thread/tutorial (I'm not able to remember any reference about it), I read that once the BOOT.INI file presence is confirmed, BOOTMGR skip to look for the BCD store section, directly taking into consideration only the entries in the BOOT.INI.

Thx.

mariella

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...