Jump to content











Photo
- - - - -

Drive letter disappeared on triple-boot install


  • Please log in to reply
16 replies to this topic

#1 Peter80

Peter80

    Frequent Member

  • Advanced user
  • 124 posts

Posted 21 August 2013 - 08:56 AM

I have Windows 7, Ubuntu and Windows XP installed. I first installed Windows 7 than Ubuntu and than Windows XP. My Windows 7 is on C drive, Ubuntu is on a logical drive in my extended partition and Windows xp is on a primary partition F. I have another primary partition E on which for some reason when i installed Windows XP it placed boot.int file on it. I am using grub to boot the three operating system.

Yesterday, i reinstalled Windows 7 and after the installation i saw that the drive letter from drive E was gone. I tried to restore but it was not available from the drop down menu in Computer Management and it is not assigned to any other drive. I had to assign another letter to make the drive visible in windows explorer.

My question is how to recover the letter E on this partition and why it is not available?

The other problem i have is Windows XP can't boot now and i think it some how related to this missing E drive letter.



#2 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 21 August 2013 - 09:38 AM

It is possible that *somehow* during the re-install you changed the DISK SIGNATURE.

Drive letter assignment is based on Registry entries in HKLM\SYSTEM\MountedDevices\DosDevices\ and it is based on the Disk Signature.

 

The "XP can't boot" is not a description of what happens.

What do you get?

You don't have anymore an entry for it in the bootmanager, you get a bluescreen of death (with which STOP ERROR), or what?

 

Check this (only SEEMINGLY unrelated):

http://www.911cd.net...showtopic=19663

 

:cheers:

Wonko



#3 Peter80

Peter80

    Frequent Member

  • Advanced user
  • 124 posts

Posted 21 August 2013 - 10:25 AM

The letter E was assigned to the CD-ROM during the installation. Somehow i missed to see it.

 

When i try to boot Windows XP it shows that the ntldr file is missing but the file is there. I guess the problem is in boot.ini. I will try the Repair Console to rebuild it.    



#4 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 21 August 2013 - 10:31 AM

 

When i try to boot Windows XP it shows that the ntldr file is missing but the file is there. I guess the problem is in boot.ini. I will try the Repair Console to rebuild it.    

Since NTLDR is what actually reads BOOT.INI, allow me to doubt that BOOT.INI is involved (it is simply "never reached").

 

If you are using BOOTMGR as your main bootloader, you should check the entries in the \boot\BCD with BCDEDIT or other BCD editor/viewer, first thing.

In which volume is NTLDR?

In which volume it is expected to be (according to settings in \boot\BCD?

 

:cheers:

Wonko



#5 Peter80

Peter80

    Frequent Member

  • Advanced user
  • 124 posts

Posted 21 August 2013 - 01:09 PM

I tried to use Repair Console from my Windows xp installation usb but i didn't get option to Repair so i guess it is not included in my XP install copy. I reinstalled Windows XP and now it placed the three files - boot.ini, ntldr and ntdetect.com on C drive where my Windows 7 install is.

This is what shows EasyBCD:
 

There are a total of 2 entries listed in the bootloader.
Path: C:\Boot\BCD

Default: Windows 7
Timeout: 30 seconds
Boot Drive: E:\

Entry #1
Name: Earlier Version of Windows
BCD ID: {ntldr}
Drive: E:\
Bootloader Path: \ntldr

Entry #2
Name: Windows 7
BCD ID: {default}
Drive: C:\
Bootloader Path: \Windows\system32\winload.exe


I don't know why it shows E drive as a boot drive when C drive is marked as active and GParted shows the boot flag on C drive.

This is also my boot configuration from Boot Repair:
 

http://paste.ubuntu.com/6010112/


#6 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 21 August 2013 - 01:25 PM

 

I don't know why it shows E drive as a boot drive when C drive is marked as active and GParted shows the boot flag on C drive.
 

Because, as you have been already told, you likely messed with Disk Signature, partitioning and drive letter assignments.

 

The situation in your report shows that your first partition is an Extended Partition, this is a non-standard situation that may affect the way drive letters are assigned automatically (though this should be not the actual issue you have).

 

You have three NTFS partitions (Primary), of which (seemingly):

  1. first one (sda2) is your "main" boot volume with BOOTMGR and the BCD
  2. second one (sda3) is "a suffusion of yellow", possibly a "data only" partition
  3. third one (sda4) is seemingly the partition on which you have XP installed

Try copying the files:

  • NTLDR
  • BOOT.INI
  • NTDETECT.COM

from first to third partition.

 

You should at least get to the BOOT.INI choices.

To this effect it is needed that your BOOT.INI contains at least TWO entries, example:



[boot loader]
Timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\grldr="grub4dos"

You can add the entry C:\grldr="grub4dos" even without actually having grldr anywhere, it is just a way to make sure that the BOOT.INI is found by NTLDR.

While you are editing the BOOT.INI, do check which arcpath the Windows XP install has, the "relevant" figure is:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

 

which, in your case should probably be 3.

 

:cheers:

Wonko



#7 Peter80

Peter80

    Frequent Member

  • Advanced user
  • 124 posts

Posted 21 August 2013 - 02:23 PM

I copy the three files on 3 partition and i edit the boot.ini but it still can't boot.

This is how the boot.ini file looks:
 

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\grldr="grub4dos"


And this is screenshot from Computer Management. The partitions without letters are one with Ubuntu and the other Linux Swap.

vat3.png



#8 Peter80

Peter80

    Frequent Member

  • Advanced user
  • 124 posts

Posted 21 August 2013 - 02:40 PM

I fixed it. I use EasyBCD and change the drive letter for "Earlier Version of Windows" from E to F and now Windows XP is booting.

 

But how can i get Windows XP entry to show in Grub menu? Now it shows only Windows 7 entry and when i select it shows two entries - Windows 7 and Earlier Version of Windows.

Before reinstalling Windows 7 the Windows xp entry was showing in Grub menu but now it is gone.



#9 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 21 August 2013 - 02:59 PM

And this is screenshot from Computer Management. The partitions without letters are one with Ubuntu and the other Linux Swap.

Yep, but that is the Computer management form the booted Xp or the one form the booted 7? (in any case compare with - or post - the "other" one).

 

As well, post your current GRUB2 configuration file.

 

The "rules" for automatic drive lettering are here (if needed):

http://support.micro...kb/234048/en-us

(they are still the same AFAIK)

 

  • Scan all fixed hard disks as they are enumerated, assign drive letters starting with any active primary partitions (if there is one), otherwise, scan the first primary partition on each drive. Assign next available letter starting with C:
  • Repeat scan for all fixed hard disks and removable (JAZ, MO) disks and assign drive letters to all logical drives in an extended partition, or the removable disk(s) as enumerated. Assign next available letter starting with C:.
  • Finally, repeat scan for all fixed hard disk drives, and assign drive letters to all remaining primary partitions. Assign next available letter starting with C:.
  • Floppy drives. Assign letter starting with A:
  • CD-ROM drives. Assign next available letter starting with D:.

so, that screenshot is seemingly conforming to the "automatic" drive lettering, but the "other" OS corresponding one may well be different.

 

:cheers:

Wonko



#10 Peter80

Peter80

    Frequent Member

  • Advanced user
  • 124 posts

Posted 21 August 2013 - 03:29 PM

This is a screenshot from Windows XP, the first one is from Windows 7. I will repartition my disk and create C drive as a first partition and install Windows 7 on it.

l0pr.png

I have noticed that if i copy only NTLDR and NTDETECT.COM from C to F drive without boot.ini Windows XP is still booting.


How to get Grub configuration file?  
 



#11 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 21 August 2013 - 04:02 PM

I have noticed that if i copy only NTLDR and NTDETECT.COM from C to F drive without boot.ini Windows XP is still booting.

Yes, it is possible that you are making use of a "failsafe" feature of XP, basically if NTLDR cannot find BOOT.INI on the same volume from which NTLDR is run, it attempts anyway to "default" to booting the \Windows\ install on that same volume.
 
 

How to get Grub configuration file?

It should be a file named grub.cfg (please always use GRUB2" when talking of GRUB2, no matter if their Authors decided to call it simply "GRUB", in order to avoid confusion with the "real" GRUB - now GRUB Legacy - or with grub4dos, also often abbreviated to "grub").
It should be - I believe - in \boot\grub\ directory on the sda6 volume

http://paste.ubuntu.com/6010112/

 

=> Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of
the same hard drive for core.img. core.img is at this location and looks
for (,msdos6)/boot/grub on this drive.

 

 

sda6/boot/grub/grub.cfg

 

 

:cheers:

Wonko



#12 Peter80

Peter80

    Frequent Member

  • Advanced user
  • 124 posts

Posted 21 August 2013 - 05:16 PM

This is the configuration file. I am net very familiar with linux yet. I recently installed Ubuntu and i still learning. Only have used Windows mostly.

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
set default="4"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root 9b548fee-766b-4e39-9848-9fad28971027
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos6)'
  search --no-floppy --fs-uuid --set=root 9b548fee-766b-4e39-9848-9fad28971027
  set locale_dir=($root)/boot/grub/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ]; then
  set timeout=10
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 44,0,30; then
  clear
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
    set gfxpayload="${1}"
    if [ "${1}" = "keep" ]; then
        set vt_handoff=vt.handoff=7
    else
        set vt_handoff=
    fi
}
if [ "${recordfail}" != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "${linux_gfx_mode}" != "text" ]; then load_video; fi
menuentry 'Ubuntu, with Linux 3.5.0-23-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root 9b548fee-766b-4e39-9848-9fad28971027
    linux    /boot/vmlinuz-3.5.0-23-generic root=UUID=9b548fee-766b-4e39-9848-9fad28971027 ro   quiet splash $vt_handoff
    initrd    /boot/initrd.img-3.5.0-23-generic
}
menuentry 'Ubuntu, with Linux 3.5.0-23-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root 9b548fee-766b-4e39-9848-9fad28971027
    echo    'Loading Linux 3.5.0-23-generic ...'
    linux    /boot/vmlinuz-3.5.0-23-generic root=UUID=9b548fee-766b-4e39-9848-9fad28971027 ro recovery nomodeset
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-3.5.0-23-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root 9b548fee-766b-4e39-9848-9fad28971027
    linux16    /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root 9b548fee-766b-4e39-9848-9fad28971027
    linux16    /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda2)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos2)'
    search --no-floppy --fs-uuid --set=root 8ED03C35D03C263D
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

 



#13 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 22 August 2013 - 09:08 AM

The good guys that created GRUB2 must have had some envy for the good MS guys that created BOOTMGR+ \boot\BCD (senselessly complicating the BOOT:INI plain syntax and format) and decided to make the plain, simple syntax of GRUB (and grub4dos) menu.lst a highly sophisticated (and complex) conditional language (and the good guys at Ubuntu must have taken advantage on that) and currently the grub.cfg is a merge of other "base" files through a script (but for tests you can edit grub.cfg directly alright).

 

An entry like this (add it at the END of you grub.cfg), might do :unsure::

menuentry "Windows XP (loader) (on /dev/sda4)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos4)'
chainloader +1
}

Though also this should do :unsure::

menuentry "Windows XP (loader) simple (on /dev/sda4)" { 
set root=(hd0,4)
chainloader +1 
}

:cheers:

Wonko



#14 Peter80

Peter80

    Frequent Member

  • Advanced user
  • 124 posts

Posted 22 August 2013 - 11:11 AM

I used another method: I use EasyBCD to delete the Windows XP entry, then i run this command from Ubuntu - sudo update-grub, and now both entries of Windows 7 and Windows XP are showing in Grub2 menu and booting directly from it.

By the way, why Windows 7 didn't reset the remaining trial time back to 30 days after i reinstall it? I deleted the partition, then reformat it. How it still can keep the trial period data after this?



#15 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 22 August 2013 - 12:41 PM

I used another method: I use EasyBCD to delete the Windows XP entry, then i run this command from Ubuntu - sudo update-grub, and now both entries of Windows 7 and Windows XP are showing in Grub2 menu and booting directly from it.

Good :), how about posting the entry for Windows XP that was added to your grub.cfg?
This way it may be useful to anyone else wanting to add it "manually".
 

By the way, why Windows 7 didn't reset the remaining trial time back to 30 days after i reinstall it? I deleted the partition, then reformat it. How it still can keep the trial period data after this?

Probably because it is INTENDED to be a 30 day trial, and information about working around that provision would constitute IMNSHO "cracking".
The trial can be however legally "re-armed" (up to 4 times):
http://www.howtogeek...30-to-120-days/


:cheers:
Wonko

#16 Peter80

Peter80

    Frequent Member

  • Advanced user
  • 124 posts

Posted 22 August 2013 - 01:25 PM

This is the entry for Windows XP in grub.cfg:
 

menuentry "Microsoft Windows XP Professional (on /dev/sda4)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos4)'
    search --no-floppy --fs-uuid --set=root BCCC0246CC01FC00
    drivemap -s (hd0) ${root}
    chainloader +1



I am just curious where Windows 7 stores the data for the trial period, because during the install all data on the partition is wiped out.

One other question: From where i can download some good Windows LiveCD? I tried MiniXP from Hiren BootCD but most of my portable application that are on my hard disk couldn't run and it didn't recognize my wireless card so i couldn't connect to internet.



#17 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 22 August 2013 - 06:28 PM

One other question: From where i can download some good Windows LiveCD? I tried MiniXP from Hiren BootCD but most of my portable application that are on my hard disk couldn't run and it didn't recognize my wireless card so i couldn't connect to internet.

I won't support you in *any* way where WAREZ :ph34r: or however unauthorized re-distribution is involved. :frusty:

You can read however the Tutorial here:
http://reboot.pro/to...-to-find-warez/

:cheers:
Wonko




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users