ICPUG Home Page

 

Previous Page
PREVIOUS PAGE

 


Lin'N'WinNewB Page List
Lin'N'WinNewB
PAGE LIST

 

Next Page
NEXT PAGE

 

Lin'N'WinNewB Page List


21st September 2012

HOOKING THE LINUX BOOTLOADER INTO THE WINDOWS BOOTLOADER

Brian Grainger


 

When a Windows PC boots up it goes through a predefined sequence as follows:

  • The BIOS does a hardware check of the PC. This is called the POST, (Power On Self Test), sequence. It is usually visible by seeing indicator lights on the keyboard flashing and a memory counter display on the screen as the RAM memory is checked.

  • The disk to boot from is determined and its MBR, (Master Boot Record), is loaded into memory. A program within the MBR is then run.

  • The MBR program determines which disk partition to run from, loads its MBR into memory and then transfers control to the Windows bootloading sequence.

  • On a Windows 9x machine the underlying DOS system is loaded, command.com, and then config.sys and autoexec.bat are executed to provide user setup options. The last line of autoexec.bat usually starts up Windows 9x, which runs on top of DOS.

  • On a Windows XP system, the MBR program transfers control to a program on the C drive called ntldr. This has to determine how the disk is formatted, (usually NTFS but can be FAT32), in order that XP can be loaded appropriately. It then loads a file called boot.ini. This is the boot loader menu and allows you to choose which operating system to load. Normally, you will not see it, because you only have a choice of one operating system from Microsoft and they are not going to suggest you might be able to use something else. boot.ini will then start up Windows XP under normal circumstances. However, it will load up other operating systems if suitably modified.

  • On a Windows 7 system, the MBR program transfers control to a program on the boot partition called bootmgr.exe. The boot partition is usually hidden - it is NOT the C drive by default. Bootmgr.exe will then access the Boot Configuration Data (BCD) source to determine boot information. If the BCD source has more than one boot option a menu is displayed so that the user may choose what to boot. Normally, you will not see it, because you only have a choice of one operating system from Microsoft and they are not going to suggest you might be able to use something else. The BCD source will then start up Windows 7 under normal circumstances. However, it will load up other operating systems if suitably modified.

In order to boot into a Linux system we need to hook into the sequence above BEFORE Windows has a chance to load. We don't want to stop booting into Windows though, so the hook must be done in such a way as to provide a choice - Linux or Windows.

With Windows 9x it is not obvious what to do. If you read the MS-DOS manual carefully you will see that you can set up multiple configurations by modifying config.sys and optionally autoexec.bat. The Lin'N'WinNewB Project will just modify the config.sys and leave autoexec.bat alone.

With Windows XP the Lin'N'WinNewB Project will modify boot.ini to give us the choice we need.

With Windows 7 the Lin'N'WinNewB Project will modify the BCD source to give us the choice we need.

Click HERE if you have Windows 9x

Click HERE if you have Windows XP

Click HERE if you have Windows 7


 

 

 

 

Top
TOP