Win7 on Fakeraid

Hi,

I installed OpenSuse few days ago, and since I can’t boot windows.
I have three disks, two on Fake raid 0 SATA, and one on IDE.
My Linux disk is /dev/sda and is the IDE, my Windows 7 is on the Fake Raid.

Ubuntu configured correctly grub, I was able to boot Windows but I forget to save the configuration …

Yast made me this :

Citation : device.map

cat /boot/grub/device.map
(hd1) /dev/disk/by-id/raid-nvidia_aeejjefb
(hd0) /dev/disk/by-id/ata-Maxtor_6Y200P0_Y69E5KSE

Citation : grub.conf

title Windows
map (hd1) (hd0)
map (hd0) (hd1)
rootnoverify (hd1,0)
makeactive
chainloader +1

Looks fine but it don’t works, I have bootmgr missing.
May be some special option for Win7 is missing ?
Once more, ubuntu configured it automatically and it worked, so, it is possible.

One more thing, is it realy impossible with OpenSuse to edit the entry in the menu.lst ?
With a real grub, I hit e and I can simply edit the options, but with OpenSuse I can’t find a way for that. I can off course add some options to the Linux entry but I can’t edit all the root lines, map lines …

Why not give us the output from a fdisk -l command. Open up a terminal session and run this command:

su -
password:
fdisk -l

Let me say that Windows 7 often creates two partitions, one small and one large and you then need to load the small one. Based on the info you posted below, Windows is on the drive: (hd1) /dev/disk/by-id/raid-nvidia_aeejjefb AND you must have your BIOS set to boot from (hd0) /dev/disk/by-id/ata-Maxtor_6Y200P0_Y69E5KSE where openSUSE must be installed.

Thank You,

I installed Win7 myself, only one partition.

fdisk -l

Disk /dev/sda: 203.9 GB, 203928109056 bytes
255 têtes, 63 secteurs/piste, 24792 cylindres, total 398297088 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d’E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x5351b8fb

Périphérique Amorce Début Fin Blocs Id Système
/dev/sda1 63 294728489 147364213+ 7 HPFS/NTFS/exFAT
/dev/sda2 * 294728490 295130114 200812+ 83 Linux
/dev/sda3 295131136 299227135 2048000 82 Linux swap / Solaris
/dev/sda4 299227136 398297087 49534976 83 Linux

Disk /dev/sdb: 150.0 GB, 150039945216 bytes
255 têtes, 63 secteurs/piste, 18241 cylindres, total 293046768 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d’E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0xbd4eb297

Périphérique Amorce Début Fin Blocs Id Système
/dev/sdb1 * 2048 586090495 293044224 7 HPFS/NTFS/exFAT

Disk /dev/sdc: 150.0 GB, 150039945216 bytes
255 têtes, 63 secteurs/piste, 18241 cylindres, total 293046768 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d’E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x00000000

Le disque /dev/sdc ne contient pas une table de partitions valable

Disk /dev/mapper/nvidia_aeejjefb: 300.1 GB, 300079775744 bytes
255 têtes, 63 secteurs/piste, 36482 cylindres, total 586093312 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d’E/S (minimale / optimale) : 65536 octets / 131072 octets
Identifiant de disque : 0xbd4eb297

          Périphérique Amorce  Début        Fin      Blocs     Id  Système

/dev/mapper/nvidia_aeejjefb1 * 2048 586090495 293044224 7 HPFS/NTFS/exFAT

Disk /dev/mapper/nvidia_aeejjefb_part1: 300.1 GB, 300077285376 bytes
255 têtes, 63 secteurs/piste, 36482 cylindres, total 586088448 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d’E/S (minimale / optimale) : 65536 octets / 131072 octets
Identifiant de disque : 0x4d544f4f

Cela ne ressemble pas à une table de partition.
Vous avez probablement sélectionné le mauvais périphérique.

                 Périphérique Amorce  Début        Fin      Blocs     Id  Système

/dev/mapper/nvidia_aeejjefb_part1p1 ? 218137203 2138359164 960110981 70 DiskSecure Multi-Boot
La partition 1 ne débute pas sur une frontière de cylindre physique.
/dev/mapper/nvidia_aeejjefb_part1p2 ? 544370800 2464669663 960149432 74 Inconnu
La partition 2 ne débute pas sur une frontière de cylindre physique.
/dev/mapper/nvidia_aeejjefb_part1p3 ? 225600882 769746299 272072709 82 Linux swap / Solaris
La partition 3 ne débute pas sur une frontière de cylindre physique.
/dev/mapper/nvidia_aeejjefb_part1p4 ? 2760638474 2760690110 25818+ 61 SpeedStor
La partition 4 ne débute pas sur une frontière de cylindre physique.

Les entrées de la table de partitions ne sont pas dans l’ordre du disque

Sorry, it’s in french but here are the things unusual I think :
Le disque /dev/sdc ne contient pas une table de partitions valable
Means that /dev/sdc don’t have a valid partitions table.

For the raid part1
Cela ne ressemble pas à une table de partition.
Vous avez probablement sélectionné le mauvais périphérique
Means that it don’t look like a valid partition table, probably selected the wrong device.

La partition x ne débute pas sur une frontière de cylindre physique.
Means the partition x don’t begin on a edge (or simply the start ?) of a physical cylinder.

And yes, I boot on hd0 (the IDE disk)
Thanks

So I see two NTFS partitions here.

/dev/sda1              63   294728489   147364213+   7  HPFS/NTFS/exFAT
/dev/sdb1   *        2048   586090495   293044224    7  HPFS/NTFS/exFAT

The first is on the same disk as openSUSE or hd0 and the second is on hd1 as I see it. Which one is the real Windows Partition? How did you load Windows 7, before or after you installed openSUSE? Normally, when Windows exists on a separate hard drive, you should be able to make it first in BIOS boot order and have it load on its own. If that does not work, then Windows is messed up in some way and will never work when run from the grub menu. There is a nice script that can locate bootable partitions for openSUSE and for Windows. You can download the file here:

http://unixversal.com/linux/openSUSE/findgrub301.tgz

You can read about findgrub here:

Looking for Grub and Windows bootloader in all partitions.

Here is generic info on disk partitioning you might find helpful:

Each hard drive can have up to four PRIMARY partitions, any of which could be marked active and bootable. No matter what you might hear, only one of the first four primary partitions can be booted from. That means you can boot from Primary partitions 1, 2, 3 or 4 and that is all. In order to boot openSUSE, you must load openSUSE and the grub boot loader into one of the first four partitions. Or, your second choice is to load the grub boot loader into the MBR (Master Boot Record) at the start of the disk. The MBR can be blank, like a new disk, it can contain a Windows partition booting code or generic booting code to boot the active partition 1, 2, 3, or 4. Or, as stated before, it can contain the grub boot loader. Why load grub into the MBR then? You do this so that you can “boot” openSUSE from a logical partition, numbered 5 or higher, which is not normally possible. In order to have more than four partitions, one of them (and only one can be assigned as extended) must be a extended partition. It is called an Extended Primary Partition, a container partition, it can be any one of the first four and it can contain one or more logical partitions within. Anytime you see partition numbers 5, 6 or higher for instance, they can only occur inside of the one and only Extended Primary partition you could have.

What does openSUSE want as far as partitions? It needs at minimum a SWAP partition and a “/” partition where all of your software is loaded. Further, it is recommended you create a separate /home partition, which makes it easier to upgrade or reload openSUSE without losing all of your settings. So, that is three more partitions you must add to what you have now. What must you do to load and boot openSUSE from an external hard drive? Number one, you must be able to select your external hard drive as the boot drive in your BIOS setup. Number two, you need to make sure that the external hard drive, perhaps /dev/sdb, is listed as the first hard drive in your grub device.map file and listed as drive hd0. I always suggest that you do not load grub into the MBR, but rather into the openSUSE “/” root primary partition which means a primary number of 1, 2, 3 or 4. If number one is used, then that will be out. You will mark the openSUSE partition as active for booting and finally you must load generic booting code into the MBR so that it will boot the openSUSE partition. I suggest a partition like this:

0. /dev/sda, Load MBR with generic booting code
1. /dev/sda1, Primary NTFS Partition for Windows
2. /dev/sda2, Primary SWAP (4 GB)
3. /dev/sda3, Primary EXT4 "/" openSUSE Partition Marked Active for booting (80-120 GB)
4. /dev/sda4, Primary EXT4 "/home" Your main home directory (Rest of the disk)

OR

0. /dev/sdb, Load MBR with generic booting code
1. /dev/sdb1, Primary NTFS Partition for Windows
2. /dev/sdb2, Primary SWAP (4 GB)
3. /dev/sdb3, Primary EXT4 "/" openSUSE Partition Marked Active for booting (80-120 GB)
4. /dev/sdb4, Primary EXT4 "/home" Your main home directory (Rest of the disk)

Thank You,

LC_ALL=C /sbin/fdisk -l

Hello James,
I have no idea how Linux itself handles the Windows Raid0 (on disks sdb and sdc in this example). So I seriously doubt findgrub would be of any help here. Obviously sdb and sdc are one ‘entity’. How is Grub supposed to know which HD’s bootsector it is supposed to chainload? Does it matter in a ‘fakeraid’? Would a different mapping, including the third disk, help? Or are the two SATA disks considered as a single disk in the fakeraid from the BIOS point of view. Well, I see that I ask more questions than I provide answers here. :frowning:

And one more question, @Ulrar, what’s in this NTFS partition on your IDE disk?

Thanks for the help.

The NTFS partition on my IDE disk is just a data partition, no OS on it.

The thing is, Windows installed it loader on my IDE disk, not in the raid stripe.
So even if I select the raid stripe in my boot menu, Windows can’t boot.
It is not broken, it always been that way …
But you are write, with XP it worked. But I have 7, not XP :/.

This time in english :

Disk /dev/sda: 203.9 GB, 203928109056 bytes
255 heads, 63 sectors/track, 24792 cylinders, total 398297088 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5351b8fb

Device Boot Start End Blocks Id System
/dev/sda1 63 294728489 147364213+ 7 HPFS/NTFS/exFAT
/dev/sda2 * 294728490 295130114 200812+ 83 Linux
/dev/sda3 295131136 299227135 2048000 82 Linux swap / Solaris
/dev/sda4 299227136 398297087 49534976 83 Linux

Disk /dev/sdb: 150.0 GB, 150039945216 bytes
255 heads, 63 sectors/track, 18241 cylinders, total 293046768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xbd4eb297

Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 586090495 293044224 7 HPFS/NTFS/exFAT

Disk /dev/sdc: 150.0 GB, 150039945216 bytes
255 heads, 63 sectors/track, 18241 cylinders, total 293046768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdc doesn’t contain a valid partition table

Disk /dev/mapper/nvidia_aeejjefb: 300.1 GB, 300079775744 bytes
255 heads, 63 sectors/track, 36482 cylinders, total 586093312 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 131072 bytes
Disk identifier: 0xbd4eb297

                  Device Boot      Start         End      Blocks   Id  System

/dev/mapper/nvidia_aeejjefb1 * 2048 586090495 293044224 7 HPFS/NTFS/exFAT

Disk /dev/mapper/nvidia_aeejjefb_part1: 300.1 GB, 300077285376 bytes
255 heads, 63 sectors/track, 36482 cylinders, total 586088448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 131072 bytes
Disk identifier: 0x4d544f4f

This doesn’t look like a partition table
Probably you selected the wrong device.

                         Device Boot      Start         End      Blocks   Id  System

/dev/mapper/nvidia_aeejjefb_part1p1 ? 218137203 2138359164 960110981 70 DiskSecure Multi-Boot
Partition 1 does not start on physical sector boundary.
/dev/mapper/nvidia_aeejjefb_part1p2 ? 544370800 2464669663 960149432 74 Unknown
Partition 2 does not start on physical sector boundary.
/dev/mapper/nvidia_aeejjefb_part1p3 ? 225600882 769746299 272072709 82 Linux swap / Solaris
Partition 3 does not start on physical sector boundary.
/dev/mapper/nvidia_aeejjefb_part1p4 ? 2760638474 2760690110 25818+ 61 SpeedStor
Partition 4 does not start on physical sector boundary.

Partition table entries are not in disk order

I don’t understand the layout of the _part1, but on my raid I have only one partition NTFS.
And It is mounted right now on my OpenSuse and working perfectly fine.

Except if the OpenSuse installer destroyed some file on my raid partition, the Windows installation is fine.

just to prove it, here is what I did :
I had gentoo, I used to to burn Ubuntu.
I installed Ubuntu, overwriting gentoo, and used it conf to boot on Windows (And it worked fine).
I used windows to burn OpenSuse, and installed it (overwriting ubuntu).
And then, can’t boot Windows.

I don’t understand the layout of the _part1, but on my raid I have only one partition NTFS.
And It is mounted right now on my OpenSuse and working perfectly fine.

Except if the OpenSuse installer destroyed some file on my raid partition, the Windows installation is fine.

just to prove it, here is what I did :
I had gentoo, I used to to burn Ubuntu.
I installed Ubuntu, overwriting gentoo, and used it conf to boot on Windows (And it worked fine).
I used windows to burn OpenSuse, and installed it (overwriting ubuntu).
And then, can’t boot Windows.
So in a case where Windows placed its boot loader onto another partition, then you must boot that one instead as so:


title Windows
rootnoverify (hd0,0)
chainloader +1                      

If the boot loader is no longer there, because you blew it away, you will need to reload Windows 7 or at least attempt to fix the Windows setup first before proceeding any further. Anything else will just be a waste of your time. I have seen Windows 7 place its boot loader on a separate hard drive before, often the one first in hardware order such as /dev/sda1. I hope you did not do away with that partition.

Thank You,

In this case - and your IDE disk is the first BIOS drive - you just need something like that:

title Windows
rootnoverify (hd0,0)
chainloader +1

DON’T use makeactive if you didn’t install Grub in MBR! Or you won’t be able to boot Linux anymore.

  • and findgrub would have helped indeed. So, James was right again*. :wink:

Actually updategrub](http://forums.opensuse.org/english/get-technical-help-here/how-faq-forums/advanced-how-faq-read-only/458238-updategrub-opensuse-legacy-grub-not-update-grub.html#post2329167) might have got it as well.

** and faster too.

@Ulrar,
Please, next time, use [noparse]

...

[/noparse] tags for the ouptut of files or commands. It is easier to read.

Okay sorry.

Thanks a lot, it worked fine using (hd0,0) !
It was a nightmare for years, thanks !

I can now boot on Windows and Linux :slight_smile:

Okay sorry.

Thanks a lot, it worked fine using (hd0,0) !
It was a nightmare for years, thanks !

I can now boot on Windows and Linux :slight_smile:
Yeah! Happy to hear that was the solution. Please note that I was able to beat please_try_again by four minutes with the right solution. Its pretty hard to beat him on anything that has to do with disks. I actually loaded Windows 7 a friends computer in which the target hard drive was not the first as in your case and with an existing NTFS partition that was present on the real first hard drive and sure enough, this become the Windows 7 boot drive even though Windows was loaded on the second hard drive. Your best bet when loading Windows, when there is more than one hard drive, is to just disconnect all but the target hard drive and reconnect them when the installation is complete.

Thank You,

yeah, well done ^^.

I didn’t knew Windows will use the first partition available but it’s good to know !

Glad it worked out for you, even it it took awhile. OP had a non standard set up, haveing Sata and IDE drives. I’ll bet alot of us have just SATA drives by now. And alot of us want to dual boot windows- for whatever reason. It can be done manageing a FakeRAID 0+1, but it required (for me) other live distros to set up the partitions, and alot of research, trial and error. After that, the grub /BOOT partition was on its own partition, but not the most stable. I’m no code monkey, and I had to spend ALOT of time getting it to work. So here is my recomendation for the nebies to Linux and dual booting… if you’re running Win7, you could/should be useing the readyboost feature, if you got bamboozled by ASUS like me and found expressgate doesn’t come on a RAM chip on the board, needs its own partition, and worst of all, CANNOT be modified to run even a simple terminal window- in spite of it being a Linux kernal- you might have a flash drive already plugged into the back of your box, constant, reliable and forgotten. So I got an 8GB Kingston drive, and use it for all three purposes.
Use Gparted- its got a live distro.

  1. Set up a 70~MB partiton at the begining of the drive- so you can take advantage of it being part of the MBR section of the drive. Use that for /boot and stop screwing with trying to get Suse’s installer to respect your wishes with how you want your FakeRaid controller to boot your system. Done. And you can coppy the partition, save it on any old flash drive you have lying around, and have a legit back up that is alot easier to reproduce than a partition on a FakeRAID partition.
  2. Use the remaining area for windows readyboost
  3. if you have (and use) Expressgate, make a small (less than 500MB works) partition to install expressgate.
    You have to tweak your BIOS to get desired opperation. They vary by board, but if you have the option for how BIOS interperates a USB device (floppy, FDD, HDD, Auto, ect) set your permanent flash drive to HDD, that way its seen on par with your software RAID. My mobo (asus M4a79XTD evo) has three options for each boot type (hard drive, removeable, ect.)
    I set my Kingston USB drive as HDD, and the hard drive boot order is : Kingston, RAID1, RAID 2). The overall boot order is Removeable disk, CD/DVD, then lastly Hard drive. That lets me set my box to boot to grub automatically, and on the ocasion I want to boot into a live distro, form USB or CD/DVD, I just shove it in and go without haveing to tweak BIOS settings.

There I go being long winded, but you did read it all, no? So long story short, if you are a newb, and like haveing a ready back up for your boot config on a second USB key, jsut skip booting from your RAID and use a thumb drive. Good luck.