[syslinux] Chainloading from Vista x64 bootloader to Extlinux?

Michael D. Setzer II mikes at kuentos.guam.net
Sat Aug 8 20:38:31 PDT 2009


On 9 Aug 2009 at 4:54, Rune Morling wrote:

Date sent:	Sun, 9 Aug 2009 04:54:34 +0200
From:	Rune Morling <rune.morling at gmail.com>
To:	For discussion of Syslinux and tftp-hpa <syslinux at zytor.com>
Subject:	Re: [syslinux] Chainloading from Vista x64 bootloader to Extlinux?
Send reply to:	For discussion of Syslinux and tftp-hpa <syslinux at zytor.com>
	<mailto:syslinux-request at zytor.com?subject=unsubscribe>
	<mailto:syslinux-request at zytor.com?subject=subscribe>

> Shao,
> 
> Thank you for the quick reply!
> 
> 2009/8/8 Miller, Shao <Shao.Miller at yrdsb.edu.on.ca>
> 
> > 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
> >
> 
> [ermo at gizmo ~]$ sudo dd if=/dev/sda of=~/sda_mbr.bin count=1
> [sudo] password for ermo:
> 1+0 records in
> 1+0 records out
> 512 bytes (512 B) copied, 0.000142969 s, 3.6 MB/s
> [ermo at gizmo ~]$ strings sda_mbr.bin
> t&fh
> TCPAu2
> r,fh
> fSfSfUfh
> Invalid partition table
> Error loading operating system
> Missing operating system
> [ermo at gizmo ~]$
> 
> I believe that the code in the MBR is from Vista. I have attached a copy of
> the code to this message for you to examine, should you so desire. Whether
> that piece of code (from the MBR) is 'standard', I have no idea.
> 
> 
> >
> > 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.
> >
> 
> My understanding of the specifics of the Vista booting process is limited to
> what I've read in Microsoft kb 919529[1], a MS document called "Boot
> Configuration Data in Windows Vista"[2] and "Inside the Vista Kernel: Part
> 2"[3] by Mark Russinovich of Sysinternals fame. Reading through these
> documents, however, it is clear that you are correct and that the BCD code
> is indeed installed in the first visible sector on the partition where
> Windows is installed (the 'boot sector'). My apologies for clouding the
> issue with my imprecise use of terms.
> 
> From kb 919529[1]:
> 
> "When Windows Vista starts on a BIOS-based computer, the BIOS loads the MBR
> and then loads the boot sector. However, boot code loads the new Windows
> Boot Manager program (Bootmgr). The Windows Boot Manager program parses the
> Boot Configuration Data file, enumerates the installed operating systems,
> and then displays the boot menu. If an earlier version of the Windows
> operating system is installed in a dual-boot configuration with Windows
> Vista, the Windows Boot Manager program transfers control to the Ntldr
> program for the earlier version of the Windows operating system."
> 
> Hence it would appear that the solution to the mystery lies in understanding
> the interaction between Bootmgr.exe and Extlinux, if I understand the above
> correctly?
> 
> [1] http://support.microsoft.com/kb/919529
> [2] http://www.microsoft.com/whdc/system/platform/firmware/bcd.mspx
> [3] http://technet.microsoft.com/en-us/magazine/2007.03.vistakernel.aspx
> 
> 
> 
> >
> > 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
> >
> 
> Then I guess I'll just 'stop worrying and learn to love the bomb' as they
> say :)
> 
> Thanks again.
> 
>  -ermo
> 

Don't have access to Vista, but have noted that RIPLinux has a text file that 
has a processes using grub4dos to replace the vista bootmgr with the grdldr.

From: http://rip.7bf.de/current/linux.txt
Just a section
----------------- If you have Windows Vista/7, do this. ------------------

Under Windows Vista/7 you will probably need administrator privilege
to see and rename bootmgr.

C:\> attrib -h -s -r bootmgr
C:\> ren bootmgr bootmgr_vista
C:\> attrib +h +s +r bootmgr_vista 
C:\> ren grldr bootmgr
C:\> attrib +h +s +r bootmgr 

----------------------------------------------------------------

The menu.lst then contains an option to then run the bootmgr_vista.

With XP, the grdldr is added as an option in boot.ini.



+----------------------------------------------------------+
  Michael D. Setzer II -  Computer Science Instructor      
  Guam Community College  Computer Center                  
  mailto:mikes at kuentos.guam.net                            
  mailto:msetzerii at gmail.com
  http://www.guam.net/home/mikes
  Guam - Where America's Day Begins                        
+----------------------------------------------------------+

http://setiathome.berkeley.edu (Original)
Number of Seti Units Returned:  19,471
Processing time:  32 years, 290 days, 12 hours, 58 minutes
(Total Hours: 287,489)

BOINC at HOME CREDITS
SETI 8,314,905.8355 | EINSTEIN 2,806,514.5109 | ROSETTA 
1,087,077.1721




More information about the Syslinux mailing list