Rune Morling
2009-Aug-08 12:09 UTC
[syslinux] Chainloading from Vista x64 bootloader to Extlinux?
Hi syslinux list, Some months ago, hpa was kind enough to help me troubleshoot booting Extlinux in a system with the following particulars: * Windows Vista x64 bootloader in the MBR and Vista installed in /dev/sda1 * Extlinux 3.72 installed in the first sector of /dev/sda2 and Foresight Linux installed in /dev/sda2 (at the time I tried, 3.72 was the default bootloader in Foresight) The problem was that chainloading did not work from Vista x64 to Extlinux, but _did_ work from Vista x64 to GRUB (and hence I'm currently forced to use GRUB). At the time I don't think hpa went much deeper into it than muttering something about Vista 'having changed its boot protocol' or something along those lines. Now, I read with interest the "Syslinux.exe 64 bits Windows thread" and was wondering if someone knowledgeable would know if the points brought up in that thread is the underlying reason that I couldn't boot via chainloading from the Vista x64 bootloader? Being able to chainload Extlinux (preferrably w/ext4 support of course ;) via the Vista x64 boatloader would be awesome, since I'd much rather use Extlinux. Also, it'd make the dual boot part of the Foresight setup much slicker. If this is already possible then I apologize for missing the memo. Btw, I should probably mention that this is my work laptop and that the reason I'm not using Extlinux in the MBR is that this breaks the assumptions of the tools Vista use to manage its boot settings, which makes it impossible for me to update the boot settings particular to Vista with e.g. EasyBCD[1] (which I use and which supports GRUB natively). I suspect that the above also applies to the x64 versions of Windows Server 2008, 2008 R2 and Windows 7. [1]: http://neosmart.net/dl.php?id=1 Kind Regards, -ermo
Miller, Shao
2009-Aug-08 20:31 UTC
[syslinux] Chainloading from Vista x64 bootloader to Extlinux?
Good day Rune, Regarding your challenge chain-loading to an Ext[2|3]FS partition containing EXTLINUX from a Vista 64-bit Windows installation's boot-loader: Do you happen to know what code is on the MBR? Is it good ol' standard MBR code? Was it installed by Windows? Was it Syslinux' mbr.bin? Did some other OS put code there? If you search for string in it, what do you see? dd if=/dev/sda of=~/sda_mbr.bin count=1 strings ~/sda_mbr.bin I would expect there to be BCD boot-code installed on the Windows partition's first sector (often simply called "boot sector"). I was not aware that BCD boot-code went into the MBR, so this is an interesting challenge. If H. Peter muttered something about MS changing the boot protocol, it might have to do with how the registers are filled upon chain-loading another partition's boot-sector. Things like the DL register might be critical. Regarding the previous discussion of SYSLINUX.EXE for Windows 64-bit: I don't think any of that information is relevant to your situation, Rune. That discussion concerned installing SYSLINUX from a 64-bit Windows environment, if I recall correctly. If you are able to boot Linux and install EXTLINUX from Linux, then you needn't worry about installing SYSLINUX from a 64-bit Windows. - Shao Miller
H. Peter Anvin
2009-Aug-08 21:15 UTC
[syslinux] Chainloading from Vista x64 bootloader to Extlinux?
On 08/08/2009 05:09 AM, Rune Morling wrote:> > Being able to chainload Extlinux (preferrably w/ext4 support of course ;) > via the Vista x64 boatloader would be awesome, since I'd much rather use > Extlinux. Also, it'd make the dual boot part of the Foresight setup much > slicker. >Hi, I don't know why chainloading from the Vista bootloader doesn't work. It sounds like they might be passing invalid information in DS:SI, which Grub doesn't rely on as far as I know. I might be able to look into this at some point, but I have a very long backlog right now so I don't quite know when. -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf.
Apparently Analagous Threads
- PV-GRUB chainloading Grub2
- Cannot chainload a formerly working Linux system
- SYSLINUX 3.07-pre1: chainloading fix
- localboot.lua: a lua.c32 script that uses DMI data to decide between localboot/chainloading
- chainloading syslinux from an EFI partition to an ext4