Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account



Photo

dual booting DOS and Win7


  • Please log in to reply
20 replies to this topic

#1
aurgathor

aurgathor

    Junior

  • Member
  • Pip
  • 88 posts
  • Joined 24-January 06

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

 

 




How to remove advertisement from MSFN

#2
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,562 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

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.multiboot....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...ting/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.ozema...ware/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=20
default=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



#3
aurgathor

aurgathor

    Junior

  • Member
  • Pip
  • 88 posts
  • Joined 24-January 06

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,



#4
dencorso

dencorso

    Iuvat plus qui nihil obstat

  • Supervisor
  • 5,926 posts
  • Joined 07-April 07
  • OS:98SE
  • Country: Country Flag

Donator

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.



#5
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,562 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

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



#6
dencorso

dencorso

    Iuvat plus qui nihil obstat

  • Supervisor
  • 5,926 posts
  • Joined 07-April 07
  • OS:98SE
  • Country: Country Flag

Donator

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:



#7
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,562 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

 

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



#8
cdob

cdob

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,000 posts
  • Joined 29-September 05

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/...winntsetup-v23/

Choose able drive letter for the new Windows installation
/SaveDriveLetters - will save the current driveletter assaignment for the new windows installation



#9
aurgathor

aurgathor

    Junior

  • Member
  • Pip
  • 88 posts
  • Joined 24-January 06

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.



#10
helpdesk98

helpdesk98

    Junior

  • Member
  • Pip
  • 90 posts
  • Joined 15-September 08
  • OS:Windows 7 x64
  • Country: Country Flag

I thought Windows just took C no matter what partition you boot off? I currently boot W7, W8, and Server 08 when they boot they all take C. It might be different for older systems.



#11
bphlpt

bphlpt

    MSFN Addict

  • Member
  • PipPipPipPipPipPipPip
  • 1,798 posts
  • Joined 12-May 07
  • OS:none specified
  • Country: Country Flag

I think that is the default behavior.

 

Cheers and Regards


Posted Image


#12
cdob

cdob

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,000 posts
  • Joined 29-September 05

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.



#13
mariella

mariella
  • Member
  • 5 posts
  • Joined 05-January 10

The BOOT.INI should be something like:

[boot loader]
Timeout=20
default=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



#14
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,562 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

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.micro...y/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.pc.../bootini.htm#BP

 

jaclaz



#15
mariella

mariella
  • Member
  • 5 posts
  • Joined 05-January 10

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



#16
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,562 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

Well, maybe that tutorial said something slightly different and you don't remember it exactly.

This behaviour of BOOTMGR is not among the "most known" things, and as a matter of fact it has been AFAICR hinted for the first time here:

http://www.msfn.org/...ager-installer/

till then everyone was convinced that BOOTMGR loaded NTLDR (i.e. that an entry in \boot\BCD for the "previous OS" was needed) and that NTLDR loaded the BOOT.INI choices.

 

Further experiments confirmed that instead BOOTMGR reads directly BOOT.INI but selectively "chooses" only non-arcpath entries. :)

 

jaclaz



#17
mariella

mariella
  • Member
  • 5 posts
  • Joined 05-January 10

Thanks Jaclaz, I'll have a look at the MSFN thread you have indicated.

 

Maybe, has this anything to do with what described in the following pages (still under construction)

 

http://thestarman.pc...r/ntFAT32BR.htm

 

and

 

http://thestarman.pc...AT32xp7comp.htm

 

mariella



#18
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,562 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

Thanks Jaclaz, I'll have a look at the MSFN thread you have indicated.

 

Maybe, has this anything to do with what described in the following pages (still under construction)

 

mariella,

really I cannot understand you.

 

If you have a question, ask it :), but it has to be a definite question, my ESP powers are at a very low level, and my crystal ball is AGAIN :( in the shop for maintenance and tuning.

 

What is "this"? :w00t:

What is "what is described in the following pages"?

 

jaclaz



#19
mariella

mariella
  • Member
  • 5 posts
  • Joined 05-January 10

Jaclaz,

 

I meant that following the Win7 installation, an (already) existing FAT32 Boot Record results as being modified !

 

And this is pretty new for me.

 

mariella



#20
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,562 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

Jaclaz,

 

I meant that following the Win7 installation, an (already) existing FAT32 Boot Record results as being modified !

 

And this is pretty new for me.

 

mariella

Well, if you think a bit about it is "only too logical". :unsure:

 

The tasks that traditionally the bootsector (or PBR or VBR) code should perform is:

  1. set/check some parameters (the BPB or Bios Parameter Block)
  2. call/invoke the loader or system file (possibly passing to it some of these parameters)

it is evident that the bootsector code for each Operating System that uses a different loader or system file will be different:

  • all DOS bootsectors invoke IO.SYS
  • all FreeDOS bootsectors invoke KERNEL.SYS
  • all Windows NT up to XP/Server 2003 invoke NTLDR
  • all Windows NT starting from Vista :ph34r: invoke BOOTMGR

If you check the comparison here:

http://thestarman.pc...AT32xp7comp.htm

attentively you will see that the main "human readable difference" is that one has the string "NTLDR" and the other the string "BOOTMGR", there are other few differences in the BPB, and this is "normal", and as well there are some little differences in the CODE, but it is clear that one is an adaptation of the other pointing to a different system file.

 

The "problem" is that many years ago (with NT 3.x) the good MS guys decided that the TWO different operations that were required to make a bootable FileSystem in DOS:

  1. FORMAT <- create the filesystem bootsector, including the BPB BUT without writing any CODE
  2. SYS <- write the CODE to the bootsector AND transfer to the filesystem the system files (historically, i.e. up to DOS 6.22 in a given order)

which were already "merged" into the single "FORMAT /S" command somehow *needed* to be merged into the single FORMAT command :w00t:.

Of course they didn't really merged all of the SYS command functions :no:, but only the writing of the CODE to the bootsector.

 

So, any filesystem created with the FORMAT command under any DOS has NOT any CODE in the bootsector, whilst the FORMAT command under any NT based system includes some code, which is different in different versions of the NT OS.

 

jaclaz


Edited by jaclaz, 07 November 2013 - 10:56 AM.


#21
mariella

mariella
  • Member
  • 5 posts
  • Joined 05-January 10

Thanks Jaclaz.

 

Actually, while reading the article  I was so pernickety at the point I promptly saw the difference between the two strings NTLDR/BOOTMGR in the 2 cases.

 

Thanks again for your clear explanations, though.

 

mariella






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users