Hmmm . . . I think there is more here than meets the eye
. . . the following may be useful data re the rootnoverify question. However, while investigating this, I stumbled across some things about Vista which are of real concern. So this has ended up getting rather long; apologies but good to know re Vista anyway . . .
First, I conducted a series of SuSE-to-Vista chainloading tests on 3 different machines. On the 1st, the Windows “system volume” is the first partition with Vista BCD installed, dual-booting XP; formatted FAT32. The 2nd machine has the same setup, except using NTFS. On the 3rd machine I did a clean install of Vista, using Vista to wipe the disk, create/format its partition; followed by a new openSUSE installation. For comparison I also conducted these tests on a 4th machine with W2K (identical boot to XP) chainloaded by SuSE.
In all of the tests the menu.lst stanza had the command “chainloader (hd0,0)+1” preceded by a “rootnoverify (hd0,0)”. In the tests I changed the rootnoverify pointer to other partitions, used the same pointers but with the root command instead, and removed the line altogether. In every case, it had no effect on the boot (except when root was used to point to an NTFS partition, grub threw a “filesystem not found” soft error but still chainloaded successfully). The root command is definitely required, either separately or embedded in the chainloader command (as above). But the “noverify” option was not required.
Why then would rootnoverify sometimes make a difference? I can’t say for sure, but I can offer one educated guess. In addition to locating the boot sector, the root command also “attempts to mount [the partition] to get the partition size for passing the partition descriptor . . .” It is possible that if the grub calculation fails, or if grub encounters an unexpected condition in the table data that the pgm was not written to handle, conceivably that could cause the grub code to fail. This might explain why the “noverify” may resolve a grub problem, but doesn’t explain why grub doesn’t always need it.
Then I stumbled across this re Vista partitioning: It is using a different method to create partitions. From the best analysis I could find at Multibooters - Dual/Multi Booting With Vista:
“Vista is placing partitions on the hard drive using different starting and ending positions from the recognised conventions . . . if you partition or image or clone your drive or have a dual/multiboot configuration with OSes other than Vista, then there are various serious problems that can arise . . . Vista created partitions can ‘mis-align’ with other partitions, which is not a good situation on multiboot machines.”
There are Microsoft kb’s citing problems caused by this Vista change, such as Vista or XP partitions being destroyed by the other, disk read errors, errors loading the OS, unmounted boot volume, etc. The key points are that (a) Vista uses a different partition boundary and freespace calculation, (b) the calculation result is a variable, depending on registry settings, and (c) there can also be issues specific to “certain bios firmware” or bios disk settings.
I used the Symantec disk editor to look at the table on the Vista partitioned machine; it found what it thought were numerous geometry errors. I then tried to resize the partition with Parted (which SuSE, qtparted, gparted all use); it failed on read and write errors. Grub found the Vista boot sector, but it is using the kernel and not directly accessing the table. Still, after looking at the technical details discussed at the above site, it’s clear that there are a number of potential multi-boot problems with Vista.
So . . . as far as rootnoverify", I found at least one plausible reason that noverify could fix a grub Vista boot problem. But clearly the condition is not constant. That may be due to Vista’s new variable method of creating partitions, or related bios factors. It appears to be harmless to use rootnoverify, so it should probably be used by default. But there are other potential grub Vista boot issues that it will not resolve.
Further, from the above it certainly seems unwise to try to resize a Vista created partition with any tool not expressly for that purpose. In the SuSE install on my 3rd machine above, the installer offered to size down the Vista partition; that would have failed, as it did in my Parted test. But it could corrupt the table, making the entire system unbootable. In other cases it will not be a problem, again depending on how Vista has created the partition. (It should not fail if Vista has been installed on a partition first created with XP or a commercial tool.) Note that there are other differences in how Vista is using the partition table (involving the disk signature and the offset, discussed at the site above) that could result in Vista being unbootable, if the boot partition is written to the table by another tool. Seems like a lot of risk.
Finally, IMHO a strong argument can be made to not install grub in the MBR on a Vista disk, as long as openSUSE’s root is on a primary partition, thus avoiding any issues with grub reading the Vista created table. Interestingly, in the openSUSE install above, the installer actually recommended exactly that - install grub to the root partition boot sector and set that partition’s boot flag (making it the active primary), the Vista-supplied IPL then transparently chainloads the SuSE grub. (The “generic MBR code” that YaST can optionally install will do exactly the same thing.) This also provides the easiest method of getting back to booting Vista if something goes awry; all that is required is to re-set the Vista partition boot flag which can easily be done in rescue mode, with a live-CD, and other ways.
Hope some of this is useful.
Cheers.