saikee
11-04-2007, 03:41 PM
This is possibly the laziest thing I have ever done ----> I did everything by a python script.
I have a PC with 150+ LInux inside spreading over 5 hard disks; hda, hdc, hdd, sda and sdb. It is pre-libATA era where Pata disk device names were used in Linux and a Pata disk could have 63 partitions. I got Dos, Windows, BSD and Solaris too in the same PC but they need special steps, like hiding and unhiding partitions, re-mapping disk order etc, which are beyond the capability of Vista boot loader. Thus I settled for just booting the 150+ Linux inside, as a way to stretch Vista's boot loader.
The booting of the systems is handled by Grub. I have a sub-menu, called Asrock.lst, for the Linux systems listed below
title Puppy 1.0.6 @ hda6
root (hd0,5)
chainloader +1
title Videolinux 2.0 @ hda7
root (hd0,6)
chainloader +1
title Mandrake 9.2 @ hda8
root (hd0,7)
chainloader +1
title Turbo Linux V7 @ hda9
root (hd0,8)
chainloader +1
title elive 0.3 @ hda10
root (hd0,9)
chainloader +1
title Red Hat 9 @ hda11
root (hd0,10)
chainloader +1
title Lycoris 4 @ hda12
root (hd0,11)
chainloader +1
title Libranet 2.8.1 @ hda13
root (hd0,12)
chainloader +1
title Mandrake 10 @ hda14
root (hd0,13)
chainloader +1
title Debian Woody 3.0 @ hda15
root (hd0,14)
chainloader +1
title Yoper 2.0.0 @ hda16
root (hd0,15)
chainloader +1
title Knoppix 3.6 @ hda17
root (hd0,16)
chainloader +1
title Buffalo 1.5 @ hda18
root (hd0,17)
chainloader +1
title Kanotix 9.2004 @ hda19
root (hd0,18)
chainloader +1
title Kalango 3.2 @ hda20
root (hd0,19)
chainloader +1
title Blag 30001 @ hda21
root (hd0,20)
chainloader +1
title Fedora Core 4 @ hda22
root (hd0,21)
chainloader +1
title Debian Sarge @ hda23
root (hd0,22)
chainloader +1
title Red Flag 4.1 @ hda24
root (hd0,23)
chainloader +1
title Linare Ed 2 @ hda25
root (hd0,24)
chainloader +1
title Tiny Sofa 2.0 @ hda26
root (hd0,25)
chainloader +1
title Slackware 10 @ hda27
root (hd0,26)
chainloader +1
title Xandros 201 @ hda28
root (hd0,27)
chainloader +1
title Vine 3.2 @ hda29
root (hd0,28)
chainloader +1
title Specifix 0.15 @ hda30
root (hd0,29)
chainloader +1
title Ubunto 5.04 @ hda31
root (hd0,30)
chainloader +1
title PCLinuxos 0.91 @ hda32
root (hd0,31)
chainloader +1
title Asian Linux 2.0 @ hda33
root (hd0,32)
chainloader +1
title Ubuntu 6.04 Dapper @ hda34
root (hd0,33)
chainloader +1
title Wolvix 1.0.4 @ hda35
root (hd0,34)
chainloader +1
title Mepis 3.4.2 RC2 @ hda36
root (hd0,35)
chainloader +1
title DreamLinux 1.0 @ hda37
root (hd0,36)
chainloader +1
title Slampp 1.1 @ hda38
root (hd0,37)
chainloader +1
title Slax 5.0.6 @ hda39
root (hd0,38)
chainloader +1
title PCLinuxos 0.92 @ hda40
root (hd0,39)
chainloader +1
title Netsecl 2.0 @ hda41
root (hd0,40)
chainloader +1
title Vector 5.1 @ hda42
root (hd0,41)
chainloader +1
title Suse 10 @ hda43
root (hd0,42)
chainloader +1
title Kororaa 2005 Beta 2 @ hda44
root (hd0,43)
chainloader +1
title smgl 0.95 @ hda45
root (hd0,44)
chainloader +1
title Lunar 1.6 rc3 @ hda46
root (hd0,45)
chainloader +1
title Foresight 0.93 @ hda47
root (hd0,46)
chainloader +1
title SkoleLinux Sarge @ hda48
root (hd0,47)
chainloader +1
title Nepalinux 1.0 @ hda49
root (hd0,48)
chainloader +1
title Klax 3.5 @ hda50
root (hd0,49)
chainloader +1
title SciLinux 2005 @ hda51
root (hd0,50)
chainloader +1
title Progeny 2.0 @ hda52
root (hd0,51)
chainloader +1
title grml 0.6 @ hda53
root (hd0,52)
chainloader +1
title Karamad 1.4.2 @ hda54
root (hd0,53)
chainloader +1
title Whax 3.0 @ hda55
root (hd0,54)
chainloader +1
title Troppix 1.2 @ hda56
root (hd0,55)
chainloader +1
title TopologLinux 6.0 @ hda57
root (hd0,56)
chainloader +1
title Haansoft 2006 WS @ hda58
root (hd0,57)
chainloader +1
title Fedora Core 3 @ hda59
root (hd0,58)
chainloader +1
title ScientificLinux 4.0 @ hda60
root (hd0,59)
chainloader +1
title Slynux 2.0 @ hda61
root (hd0,60)
chainloader +1
title Slax 5.1.8 @ hda62
root (hd0,61)
chainloader +1
title Elive 2 @ hda63
root (hd0,62)
chainloader +1
title B2D Pure KDE 2005 @ hdc5
root (hd1,4)
chainloader +1
title CollegeLInux @ hdc6
root (hd1,5)
chainloader +1
title Berry 0.76 @ hdc7
root (hd1,6)
chainloader +1
title Morphix 0.4 @ hdc8
root (hd1,7)
chainloader +1
title Feather 0.74 @ hdc9
root (hd1,8)
chainloader +1
title Buffalo 1.7.3.9 @ hdc10
root (hd1,9)
chainloader +1
title Cento 4.1 @ hdc11
root (hd1,10)
chainloader +1
title Vector 4.3 @ hdc12
root (hd1,11)
chainloader +1
title Tao Linux 4 @ hdc13
root (hd1,12)
chainloader +1
title Fedora Core 2 @ hdc14
root (hd1,13)
chainloader +1
title Agnula Demudi 1.2 @ hdc15
root (hd1,14)
chainloader +1
title Damn Small Linux 2.1 @ hdc16
root (hd1,15)
chainloader +1
title Monoppix 1.1.8 @ hdc17
root (hd1,16)
chainloader +1
title Sympony A4 beta @ hdc18
root (hd1,17)
chainloader +1
title Pocket Linux 1.2 @ hdc19
root (hd1,18)
chainloader +1
title UltimaLInux 4.0 @ hdc20
root (hd1,19)
chainloader +1
title Vlos 1.2 @ hdc21
root (hd1,20)
chainloader +1
title Tinny Sofa Ceara @ hdc22
root (hd1,21)
chainloader +1
title 64 Studio 0.6 @ hdc23
root (hd1,22)
chainloader +1
title KateOS 2.2 @ hdc24
root (hd1,23)
chainloader +1
title Rubix 1.0 @ hdc25
root (hd1,24)
chainloader +1
title Sam 2006-1 @ hdc26
root (hd1,25)
chainloader +1
title Parsix 0.85 @ hdc27
root (hd1,26)
chainloader +1
title Foxdesktop 1.0 @ hdc28
root (hd1,27)
chainloader +1
title Kanotix 64 2005-4 @ hdc29
root (hd1,28)
chainloader +1
title Pardus 1.0 @ hdc30
root (hd1,29)
chainloader +1
title rPath 0.99.2 @ hdc31
root (hd1,30)
chainloader +1
title Stx 1.0 rc2 @ hdc32
root (hd1,31)
chainloader +1
title Stux 0.9.2 @ hdc33
root (hd1,32)
chainloader +1
title StartCom 4.0.4 Raam @ hdc34
root (hd1,33)
chainloader +1
title Slackware 10.2 @ hdc35
root (hd1,34)
chainloader +1
title Foresight 0.9 @ hdc36
root (hd1,35)
chainloader +1
title Xandros 3.0 @ hdc37
root (hd1,36)
chainloader +1
title Ubuntu 5.10 @ hdc38
root (hd1,37)
chainloader +1
title Kubuntu Dapper @ hdc39
root (hd1,38)
chainloader +1
title Gentoo 2006.1 @ hdc40
root (hd1,39)
chainloader +1
title LinuxTLE 8.0 @ hdc41
root (hd1,40)
chainloader +1
title Underground 2.2 @ hdc42
root (hd1,41)
chainloader +1
title DreamLinux 2.1 @ hdc43
root (hd1,42)
chainloader +1
title Linux Mint 2.1 @ hdc44
root (hd1,43)
chainloader +1
title Pioneer 1125 @ hdc45
root (hd1,44)
chainloader +1
title Ubuntu 7.04 @ hdc46
root (hd1,45)
chainloader +1
title Bayanihan 4 @ hdc47
root (hd1,46)
chainloader +1
title Mandriva 2007 @ hdc48
root (hd1,47)
chainloader +1
title Freespire 1.1.73 @ hdc49
root (hd1,48)
chainloader +1
title Caixa Majica 11 @ hdc50
root (hd1,49)
chainloader +1
title Ehad 2006 classic @ hdc51
root (hd1,50)
chainloader +1
title Vlos 1.3 @ hdc52
root (hd1,51)
chainloader +1
title Backtrack 2006-2 @ hdc53
root (hd1,52)
chainloader +1
title Ubuntu 6.06 @ hdc54
root (hd1,53)
chainloader +1
title Blag 30002 @ hdc55
root (hd1,54)
chainloader +1
title Fedora Core 5 @ hdc56
root (hd1,55)
chainloader +1
title Suse 9.1 Professional @ hdc57
root (hd1,56)
chainloader +1
title Vine 4.0 @ hdc58
root (hd1,57)
chainloader +1
title Wolvix 1.0.5 @ hdc59
root (hd1,58)
chainloader +1
title Empty @ hdc60
root (hd1,59)
chainloader +1
title Empty @ hdc61
root (hd1,60)
chainloader +1
title Empty @ hdc62
root (hd1,61)
chainloader +1
title Mepis 6.0.4 @ hdc63
root (hd1,62)
chainloader +1
title Wolvix 1.0.5 @ hdd5
root (hd2,4)
chainloader +1
title System Rescue CD 2.1.6 @ hdd6
root (hd2,5)
chainloader +1
title Knoppix 5.1.1.1 @ hdd7
root (hd2,6)
chainloader +1
title DSL 3.2 RC3 @ hdd8
root (hd2,7)
chainloader +1
title Grafpup 2000 @ hdd9
root (hd2,8)
chainloader +1
title Empty @ hdd10
root (hd2,9)
chainloader +1
title Empty @ hdd11
root (hd2,10)
chainloader +1
title Empty @ hdd12
root (hd2,11)
chainloader +1
title Empty @ hdd13
root (hd2,12)
chainloader +1
title Empty @ hdd14
root (hd2,13)
chainloader +1
title Empty @ hdd15
root (hd2,14)
chainloader +1
title Empty @ hdd16
root (hd2,15)
chainloader +1
title Empty @ hdd17
root (hd2,16)
chainloader +1
title Empty @ hdd18
root (hd2,17)
chainloader +1
title Empty @ hdd19
root (hd2,18)
chainloader +1
title Empty @ hdd20
root (hd2,19)
chainloader +1
title Empty @ hdd21
root (hd2,20)
chainloader +1
title Empty @ hdd22
root (hd2,21)
chainloader +1
title Empty @ hdd23
root (hd2,22)
chainloader +1
title Empty @ hdd24
root (hd2,23)
chainloader +1
title Empty @ hdd25
root (hd2,24)
chainloader +1
title Empty @ hdd26
root (hd2,25)
chainloader +1
title Empty @ hdd27
root (hd2,26)
chainloader +1
title Empty @ hdd28
root (hd2,27)
chainloader +1
title Empty @ hdd29
root (hd2,28)
chainloader +1
title Empty @ hdd30
root (hd2,29)
chainloader +1
title Empty @ hdd31
root (hd2,30)
chainloader +1
title Empty @ hdd32
root (hd2,31)
chainloader +1
title Empty @ hdd33
root (hd2,32)
chainloader +1
title Empty @ hdd34
root (hd2,33)
chainloader +1
title Empty @ hdd35
root (hd2,34)
chainloader +1
title Empty @ hdd36
root (hd2,35)
chainloader +1
title Empty @ hdd37
root (hd2,36)
chainloader +1
title Empty @ hdd38
root (hd2,37)
chainloader +1
title Empty @ hdd39
root (hd2,38)
chainloader +1
title Empty @ hdd40
root (hd2,39)
chainloader +1
title Empty @ hdd41
root (hd2,40)
chainloader +1
title Empty @ hdd42
root (hd2,41)
chainloader +1
title Empty @ hdd43
root (hd2,42)
chainloader +1
title Empty @ hdd44
root (hd2,43)
chainloader +1
title Empty @ hdd45
root (hd2,44)
chainloader +1
title Empty @ hdd46
root (hd2,45)
chainloader +1
title Empty @ hdd47
root (hd2,46)
chainloader +1
title Empty @ hdd48
root (hd2,47)
chainloader +1
title Mutagenix 2.6.18.6.2 @ hdd49
root (hd2,48)
chainloader +1
title Sidux 6.0 Live CD @ hdd50
root (hd2,49)
chainloader +1
title PCLinuxOS 2007 Test 2 @ hdd51
root (hd2,50)
chainloader +1
title Suse 10.3 Alpha 1 @ hdd52
root (hd2,51)
chainloader +1
title Mandriva 2007 @ hdd53
root (hd2,52)
chainloader +1
title Symphony 2006-12 @ hdd54
root (hd2,53)
chainloader +1
title SLax 6.0.0 @ hdd55
root (hd2,54)
chainloader +1
title Parted Magic 1.3 @ hdd56
root (hd2,55)
chainloader +1
title lg3d 3.0 @ hdd57
root (hd2,56)
chainloader +1
title SaxenOS 1.1 @ hdd58
root (hd2,57)
chainloader +1
title Sidux 2007-01 @ hdd59
root (hd2,58)
chainloader +1
title Mepies 6.0.4 @ hdd60
root (hd2,59)
chainloader +1
title Backtrack 2.0 @ hdd61
root (hd2,60)
chainloader +1
title Sam 2007 -T1 @ hdd62
root (hd2,61)
chainloader +1
title Xenoppix 3.0.3 @ sda2
root (hd3,1)
chainloader +1
title Musix 0.39 @ sda3
root (hd3,2)
chainloader +1
title GeoLivre 5 @ sda5
root (hd3,4)
chainloader +1
title Ututu x2 2005.1 @ sda6
root (hd3,5)
chainloader +1
title Helix 1.7 @ sda7
root (hd3,6)
chainloader +1
title MagicLinux 2 rc2 @ sda8
root (hd3,7)
chainloader +1
title Zenwalk 1.2 @ sda9
root (hd3,8)
chainloader +1
title MedianLinux 4.0 @ sda10
root (hd3,9)
chainloader +1
title NetBSD i386 3.0 @ sda11
root (hd3,10)
chainloader +1
title Arabian 0.6 rc1 @ sda12
root (hd3,11)
chainloader +1
title Mepis 3.3.2 @ sda13
root (hd3,12)
chainloader +1
title Slamd64 11 @ sda15
root (hd3,14)
chainloader +1
title System Rescue CD 2.1.6 @ sdb3
root (hd4,2)
chainloader +1
title Xfld 2.0 @ sdb5
root (hd4,4)
chainloader +1
title Kanotix 2006-1 @ sdb6
root (hd4,5)
chainloader +1
title Paipix 5.00 2006-3 @ sdb7
root (hd4,6)
chainloader +1
title Frugalware 0.4 @ sdb8
root (hd4,7)
chainloader +1
title Sabayon x86_64 3.0 @ sdb9
root (hd4,8)
chainloader +1
title Quantian 0.7.9.1 @ sdb10
root (hd4,9)
chainloader +1
title Suse 10.1 x86 64 @ sdb11
root (hd4,10)
chainloader +1
title Slackware 11 @ sdb12
root (hd4,11)
chainloader +1
title Knoppix 4.0.2 @ sdb13
root (hd4,12)
chainloader +1
title Mandriva 2006 0.4 @ sdb14
root (hd4,13)
chainloader +1
title Fedora Core 6 @ sdb15
root (hd4,14)
chainloader +1
You will note I have arranged every Linux to be booted by chainloading as I arranged everyone to keep its boot loader inside its root partition. In other word the boot loader, which can either by a Lilo or a Grub, for sda5 is in the boot sector of sda5. Boot loader for hda63 in in the boot sector of partition hda63.
If an operating system has a boot loader in its boot sector that system is chainloadable by another operating system. In chainloading one use one operating to boot the boot loader of another system. Every boot loader in the trade does it, including NTLDR, Lilo, Grub and boot loaders of BSD.
To get Vista to boot a Linux I need to supply the following 4 items of information to its program BCDedit.exe
(1) Name of the Linux so that an identifier is issued by BCDedit.
(2) Declare the given identifier to be used as a device boot.
(3) Submit the filename containling the first sector (512 bytes) of the Linux partition.
(4) Decide the booting order of the Linux in the booting queue.
The way I arrange each Linux to be booted has all the information in the "title" statement. For example the first Puppy Linux in hda6 of the Grub menu the red bit can satisfy the Item (1) above and the purple bit can be used for Item (3). Thus all I need to do is to write a script file to strip the two pieces of data for each Linux to be booted.
The script needs to be interactive because BCDedit.exe on receiving input from Item (1) hands out an identifier with which I have to abstract and used for Item (2), (3) and (4).
Basically to boot each Linux (using Pupply in hda6 as an example) I need to run Command Prompt as an administrator and issue the command for Item (1)
bcdedit /create /d "Puppy 1.0.6" /application BOOTSECTOR
BCDedit.exe will respond with something like
The entry {938e68ef-8ae5-11dc-8bf6-00138f511089} was successfully created.I then can use the given identifier {938e68ef-8ae5-11dc-8bf6-00138f511089} and use it on Item (2), (3) and (4) as follow
bcdedit /set {938e68ef-8ae5-11dc-8bf6-00138f511089} device boot
bcdedit /set {938e68ef-8ae5-11dc-8bf6-00138f511089} PATH \hda6.bin
bcdedit /displayorder {938e68ef-8ae5-11dc-8bf6-00138f511089} /addlastThe file hda6.bin contains the first sector of partition hda6 and can be copied out by a Linux command "dd" at the terminal
dd if=/dev/hda6 of=/hda6.bin bs=512 count=1
The above are the key steps for booting one Linux. To boot 150+ Linux is just repetitions best handled by a script.
Since Solaris, BSD and MS systems need primary partitions for installation I put all Linux in logical partitions which start at the 5th position. The Linux distros, always installed one Linux per partition, in the 5 disks were
Pata disk hda - 63 partitions, hda6 to hda63 fully filled, sda5 is the common swap
Pata disk hdc - 63 partitions, hdc5 to hdc63 fully filled
Pata disk hdd - 63 partitions, hdd5 to hdd63 partially filled, hdd10 to hdd48 are empty & hdd93 used for data.
Sata disk sda - 63 partitions, sda5 to sda15 fully filled
Sata disk sdb - 63 partitions, sdb5 to sdb15 fully filled
I don't keep a record of how many distros but the Vista boot menu shows up 158 booting entries, so there should be one Vista plus 157 Linux.
To be continued with the next post
I have a PC with 150+ LInux inside spreading over 5 hard disks; hda, hdc, hdd, sda and sdb. It is pre-libATA era where Pata disk device names were used in Linux and a Pata disk could have 63 partitions. I got Dos, Windows, BSD and Solaris too in the same PC but they need special steps, like hiding and unhiding partitions, re-mapping disk order etc, which are beyond the capability of Vista boot loader. Thus I settled for just booting the 150+ Linux inside, as a way to stretch Vista's boot loader.
The booting of the systems is handled by Grub. I have a sub-menu, called Asrock.lst, for the Linux systems listed below
title Puppy 1.0.6 @ hda6
root (hd0,5)
chainloader +1
title Videolinux 2.0 @ hda7
root (hd0,6)
chainloader +1
title Mandrake 9.2 @ hda8
root (hd0,7)
chainloader +1
title Turbo Linux V7 @ hda9
root (hd0,8)
chainloader +1
title elive 0.3 @ hda10
root (hd0,9)
chainloader +1
title Red Hat 9 @ hda11
root (hd0,10)
chainloader +1
title Lycoris 4 @ hda12
root (hd0,11)
chainloader +1
title Libranet 2.8.1 @ hda13
root (hd0,12)
chainloader +1
title Mandrake 10 @ hda14
root (hd0,13)
chainloader +1
title Debian Woody 3.0 @ hda15
root (hd0,14)
chainloader +1
title Yoper 2.0.0 @ hda16
root (hd0,15)
chainloader +1
title Knoppix 3.6 @ hda17
root (hd0,16)
chainloader +1
title Buffalo 1.5 @ hda18
root (hd0,17)
chainloader +1
title Kanotix 9.2004 @ hda19
root (hd0,18)
chainloader +1
title Kalango 3.2 @ hda20
root (hd0,19)
chainloader +1
title Blag 30001 @ hda21
root (hd0,20)
chainloader +1
title Fedora Core 4 @ hda22
root (hd0,21)
chainloader +1
title Debian Sarge @ hda23
root (hd0,22)
chainloader +1
title Red Flag 4.1 @ hda24
root (hd0,23)
chainloader +1
title Linare Ed 2 @ hda25
root (hd0,24)
chainloader +1
title Tiny Sofa 2.0 @ hda26
root (hd0,25)
chainloader +1
title Slackware 10 @ hda27
root (hd0,26)
chainloader +1
title Xandros 201 @ hda28
root (hd0,27)
chainloader +1
title Vine 3.2 @ hda29
root (hd0,28)
chainloader +1
title Specifix 0.15 @ hda30
root (hd0,29)
chainloader +1
title Ubunto 5.04 @ hda31
root (hd0,30)
chainloader +1
title PCLinuxos 0.91 @ hda32
root (hd0,31)
chainloader +1
title Asian Linux 2.0 @ hda33
root (hd0,32)
chainloader +1
title Ubuntu 6.04 Dapper @ hda34
root (hd0,33)
chainloader +1
title Wolvix 1.0.4 @ hda35
root (hd0,34)
chainloader +1
title Mepis 3.4.2 RC2 @ hda36
root (hd0,35)
chainloader +1
title DreamLinux 1.0 @ hda37
root (hd0,36)
chainloader +1
title Slampp 1.1 @ hda38
root (hd0,37)
chainloader +1
title Slax 5.0.6 @ hda39
root (hd0,38)
chainloader +1
title PCLinuxos 0.92 @ hda40
root (hd0,39)
chainloader +1
title Netsecl 2.0 @ hda41
root (hd0,40)
chainloader +1
title Vector 5.1 @ hda42
root (hd0,41)
chainloader +1
title Suse 10 @ hda43
root (hd0,42)
chainloader +1
title Kororaa 2005 Beta 2 @ hda44
root (hd0,43)
chainloader +1
title smgl 0.95 @ hda45
root (hd0,44)
chainloader +1
title Lunar 1.6 rc3 @ hda46
root (hd0,45)
chainloader +1
title Foresight 0.93 @ hda47
root (hd0,46)
chainloader +1
title SkoleLinux Sarge @ hda48
root (hd0,47)
chainloader +1
title Nepalinux 1.0 @ hda49
root (hd0,48)
chainloader +1
title Klax 3.5 @ hda50
root (hd0,49)
chainloader +1
title SciLinux 2005 @ hda51
root (hd0,50)
chainloader +1
title Progeny 2.0 @ hda52
root (hd0,51)
chainloader +1
title grml 0.6 @ hda53
root (hd0,52)
chainloader +1
title Karamad 1.4.2 @ hda54
root (hd0,53)
chainloader +1
title Whax 3.0 @ hda55
root (hd0,54)
chainloader +1
title Troppix 1.2 @ hda56
root (hd0,55)
chainloader +1
title TopologLinux 6.0 @ hda57
root (hd0,56)
chainloader +1
title Haansoft 2006 WS @ hda58
root (hd0,57)
chainloader +1
title Fedora Core 3 @ hda59
root (hd0,58)
chainloader +1
title ScientificLinux 4.0 @ hda60
root (hd0,59)
chainloader +1
title Slynux 2.0 @ hda61
root (hd0,60)
chainloader +1
title Slax 5.1.8 @ hda62
root (hd0,61)
chainloader +1
title Elive 2 @ hda63
root (hd0,62)
chainloader +1
title B2D Pure KDE 2005 @ hdc5
root (hd1,4)
chainloader +1
title CollegeLInux @ hdc6
root (hd1,5)
chainloader +1
title Berry 0.76 @ hdc7
root (hd1,6)
chainloader +1
title Morphix 0.4 @ hdc8
root (hd1,7)
chainloader +1
title Feather 0.74 @ hdc9
root (hd1,8)
chainloader +1
title Buffalo 1.7.3.9 @ hdc10
root (hd1,9)
chainloader +1
title Cento 4.1 @ hdc11
root (hd1,10)
chainloader +1
title Vector 4.3 @ hdc12
root (hd1,11)
chainloader +1
title Tao Linux 4 @ hdc13
root (hd1,12)
chainloader +1
title Fedora Core 2 @ hdc14
root (hd1,13)
chainloader +1
title Agnula Demudi 1.2 @ hdc15
root (hd1,14)
chainloader +1
title Damn Small Linux 2.1 @ hdc16
root (hd1,15)
chainloader +1
title Monoppix 1.1.8 @ hdc17
root (hd1,16)
chainloader +1
title Sympony A4 beta @ hdc18
root (hd1,17)
chainloader +1
title Pocket Linux 1.2 @ hdc19
root (hd1,18)
chainloader +1
title UltimaLInux 4.0 @ hdc20
root (hd1,19)
chainloader +1
title Vlos 1.2 @ hdc21
root (hd1,20)
chainloader +1
title Tinny Sofa Ceara @ hdc22
root (hd1,21)
chainloader +1
title 64 Studio 0.6 @ hdc23
root (hd1,22)
chainloader +1
title KateOS 2.2 @ hdc24
root (hd1,23)
chainloader +1
title Rubix 1.0 @ hdc25
root (hd1,24)
chainloader +1
title Sam 2006-1 @ hdc26
root (hd1,25)
chainloader +1
title Parsix 0.85 @ hdc27
root (hd1,26)
chainloader +1
title Foxdesktop 1.0 @ hdc28
root (hd1,27)
chainloader +1
title Kanotix 64 2005-4 @ hdc29
root (hd1,28)
chainloader +1
title Pardus 1.0 @ hdc30
root (hd1,29)
chainloader +1
title rPath 0.99.2 @ hdc31
root (hd1,30)
chainloader +1
title Stx 1.0 rc2 @ hdc32
root (hd1,31)
chainloader +1
title Stux 0.9.2 @ hdc33
root (hd1,32)
chainloader +1
title StartCom 4.0.4 Raam @ hdc34
root (hd1,33)
chainloader +1
title Slackware 10.2 @ hdc35
root (hd1,34)
chainloader +1
title Foresight 0.9 @ hdc36
root (hd1,35)
chainloader +1
title Xandros 3.0 @ hdc37
root (hd1,36)
chainloader +1
title Ubuntu 5.10 @ hdc38
root (hd1,37)
chainloader +1
title Kubuntu Dapper @ hdc39
root (hd1,38)
chainloader +1
title Gentoo 2006.1 @ hdc40
root (hd1,39)
chainloader +1
title LinuxTLE 8.0 @ hdc41
root (hd1,40)
chainloader +1
title Underground 2.2 @ hdc42
root (hd1,41)
chainloader +1
title DreamLinux 2.1 @ hdc43
root (hd1,42)
chainloader +1
title Linux Mint 2.1 @ hdc44
root (hd1,43)
chainloader +1
title Pioneer 1125 @ hdc45
root (hd1,44)
chainloader +1
title Ubuntu 7.04 @ hdc46
root (hd1,45)
chainloader +1
title Bayanihan 4 @ hdc47
root (hd1,46)
chainloader +1
title Mandriva 2007 @ hdc48
root (hd1,47)
chainloader +1
title Freespire 1.1.73 @ hdc49
root (hd1,48)
chainloader +1
title Caixa Majica 11 @ hdc50
root (hd1,49)
chainloader +1
title Ehad 2006 classic @ hdc51
root (hd1,50)
chainloader +1
title Vlos 1.3 @ hdc52
root (hd1,51)
chainloader +1
title Backtrack 2006-2 @ hdc53
root (hd1,52)
chainloader +1
title Ubuntu 6.06 @ hdc54
root (hd1,53)
chainloader +1
title Blag 30002 @ hdc55
root (hd1,54)
chainloader +1
title Fedora Core 5 @ hdc56
root (hd1,55)
chainloader +1
title Suse 9.1 Professional @ hdc57
root (hd1,56)
chainloader +1
title Vine 4.0 @ hdc58
root (hd1,57)
chainloader +1
title Wolvix 1.0.5 @ hdc59
root (hd1,58)
chainloader +1
title Empty @ hdc60
root (hd1,59)
chainloader +1
title Empty @ hdc61
root (hd1,60)
chainloader +1
title Empty @ hdc62
root (hd1,61)
chainloader +1
title Mepis 6.0.4 @ hdc63
root (hd1,62)
chainloader +1
title Wolvix 1.0.5 @ hdd5
root (hd2,4)
chainloader +1
title System Rescue CD 2.1.6 @ hdd6
root (hd2,5)
chainloader +1
title Knoppix 5.1.1.1 @ hdd7
root (hd2,6)
chainloader +1
title DSL 3.2 RC3 @ hdd8
root (hd2,7)
chainloader +1
title Grafpup 2000 @ hdd9
root (hd2,8)
chainloader +1
title Empty @ hdd10
root (hd2,9)
chainloader +1
title Empty @ hdd11
root (hd2,10)
chainloader +1
title Empty @ hdd12
root (hd2,11)
chainloader +1
title Empty @ hdd13
root (hd2,12)
chainloader +1
title Empty @ hdd14
root (hd2,13)
chainloader +1
title Empty @ hdd15
root (hd2,14)
chainloader +1
title Empty @ hdd16
root (hd2,15)
chainloader +1
title Empty @ hdd17
root (hd2,16)
chainloader +1
title Empty @ hdd18
root (hd2,17)
chainloader +1
title Empty @ hdd19
root (hd2,18)
chainloader +1
title Empty @ hdd20
root (hd2,19)
chainloader +1
title Empty @ hdd21
root (hd2,20)
chainloader +1
title Empty @ hdd22
root (hd2,21)
chainloader +1
title Empty @ hdd23
root (hd2,22)
chainloader +1
title Empty @ hdd24
root (hd2,23)
chainloader +1
title Empty @ hdd25
root (hd2,24)
chainloader +1
title Empty @ hdd26
root (hd2,25)
chainloader +1
title Empty @ hdd27
root (hd2,26)
chainloader +1
title Empty @ hdd28
root (hd2,27)
chainloader +1
title Empty @ hdd29
root (hd2,28)
chainloader +1
title Empty @ hdd30
root (hd2,29)
chainloader +1
title Empty @ hdd31
root (hd2,30)
chainloader +1
title Empty @ hdd32
root (hd2,31)
chainloader +1
title Empty @ hdd33
root (hd2,32)
chainloader +1
title Empty @ hdd34
root (hd2,33)
chainloader +1
title Empty @ hdd35
root (hd2,34)
chainloader +1
title Empty @ hdd36
root (hd2,35)
chainloader +1
title Empty @ hdd37
root (hd2,36)
chainloader +1
title Empty @ hdd38
root (hd2,37)
chainloader +1
title Empty @ hdd39
root (hd2,38)
chainloader +1
title Empty @ hdd40
root (hd2,39)
chainloader +1
title Empty @ hdd41
root (hd2,40)
chainloader +1
title Empty @ hdd42
root (hd2,41)
chainloader +1
title Empty @ hdd43
root (hd2,42)
chainloader +1
title Empty @ hdd44
root (hd2,43)
chainloader +1
title Empty @ hdd45
root (hd2,44)
chainloader +1
title Empty @ hdd46
root (hd2,45)
chainloader +1
title Empty @ hdd47
root (hd2,46)
chainloader +1
title Empty @ hdd48
root (hd2,47)
chainloader +1
title Mutagenix 2.6.18.6.2 @ hdd49
root (hd2,48)
chainloader +1
title Sidux 6.0 Live CD @ hdd50
root (hd2,49)
chainloader +1
title PCLinuxOS 2007 Test 2 @ hdd51
root (hd2,50)
chainloader +1
title Suse 10.3 Alpha 1 @ hdd52
root (hd2,51)
chainloader +1
title Mandriva 2007 @ hdd53
root (hd2,52)
chainloader +1
title Symphony 2006-12 @ hdd54
root (hd2,53)
chainloader +1
title SLax 6.0.0 @ hdd55
root (hd2,54)
chainloader +1
title Parted Magic 1.3 @ hdd56
root (hd2,55)
chainloader +1
title lg3d 3.0 @ hdd57
root (hd2,56)
chainloader +1
title SaxenOS 1.1 @ hdd58
root (hd2,57)
chainloader +1
title Sidux 2007-01 @ hdd59
root (hd2,58)
chainloader +1
title Mepies 6.0.4 @ hdd60
root (hd2,59)
chainloader +1
title Backtrack 2.0 @ hdd61
root (hd2,60)
chainloader +1
title Sam 2007 -T1 @ hdd62
root (hd2,61)
chainloader +1
title Xenoppix 3.0.3 @ sda2
root (hd3,1)
chainloader +1
title Musix 0.39 @ sda3
root (hd3,2)
chainloader +1
title GeoLivre 5 @ sda5
root (hd3,4)
chainloader +1
title Ututu x2 2005.1 @ sda6
root (hd3,5)
chainloader +1
title Helix 1.7 @ sda7
root (hd3,6)
chainloader +1
title MagicLinux 2 rc2 @ sda8
root (hd3,7)
chainloader +1
title Zenwalk 1.2 @ sda9
root (hd3,8)
chainloader +1
title MedianLinux 4.0 @ sda10
root (hd3,9)
chainloader +1
title NetBSD i386 3.0 @ sda11
root (hd3,10)
chainloader +1
title Arabian 0.6 rc1 @ sda12
root (hd3,11)
chainloader +1
title Mepis 3.3.2 @ sda13
root (hd3,12)
chainloader +1
title Slamd64 11 @ sda15
root (hd3,14)
chainloader +1
title System Rescue CD 2.1.6 @ sdb3
root (hd4,2)
chainloader +1
title Xfld 2.0 @ sdb5
root (hd4,4)
chainloader +1
title Kanotix 2006-1 @ sdb6
root (hd4,5)
chainloader +1
title Paipix 5.00 2006-3 @ sdb7
root (hd4,6)
chainloader +1
title Frugalware 0.4 @ sdb8
root (hd4,7)
chainloader +1
title Sabayon x86_64 3.0 @ sdb9
root (hd4,8)
chainloader +1
title Quantian 0.7.9.1 @ sdb10
root (hd4,9)
chainloader +1
title Suse 10.1 x86 64 @ sdb11
root (hd4,10)
chainloader +1
title Slackware 11 @ sdb12
root (hd4,11)
chainloader +1
title Knoppix 4.0.2 @ sdb13
root (hd4,12)
chainloader +1
title Mandriva 2006 0.4 @ sdb14
root (hd4,13)
chainloader +1
title Fedora Core 6 @ sdb15
root (hd4,14)
chainloader +1
You will note I have arranged every Linux to be booted by chainloading as I arranged everyone to keep its boot loader inside its root partition. In other word the boot loader, which can either by a Lilo or a Grub, for sda5 is in the boot sector of sda5. Boot loader for hda63 in in the boot sector of partition hda63.
If an operating system has a boot loader in its boot sector that system is chainloadable by another operating system. In chainloading one use one operating to boot the boot loader of another system. Every boot loader in the trade does it, including NTLDR, Lilo, Grub and boot loaders of BSD.
To get Vista to boot a Linux I need to supply the following 4 items of information to its program BCDedit.exe
(1) Name of the Linux so that an identifier is issued by BCDedit.
(2) Declare the given identifier to be used as a device boot.
(3) Submit the filename containling the first sector (512 bytes) of the Linux partition.
(4) Decide the booting order of the Linux in the booting queue.
The way I arrange each Linux to be booted has all the information in the "title" statement. For example the first Puppy Linux in hda6 of the Grub menu the red bit can satisfy the Item (1) above and the purple bit can be used for Item (3). Thus all I need to do is to write a script file to strip the two pieces of data for each Linux to be booted.
The script needs to be interactive because BCDedit.exe on receiving input from Item (1) hands out an identifier with which I have to abstract and used for Item (2), (3) and (4).
Basically to boot each Linux (using Pupply in hda6 as an example) I need to run Command Prompt as an administrator and issue the command for Item (1)
bcdedit /create /d "Puppy 1.0.6" /application BOOTSECTOR
BCDedit.exe will respond with something like
The entry {938e68ef-8ae5-11dc-8bf6-00138f511089} was successfully created.I then can use the given identifier {938e68ef-8ae5-11dc-8bf6-00138f511089} and use it on Item (2), (3) and (4) as follow
bcdedit /set {938e68ef-8ae5-11dc-8bf6-00138f511089} device boot
bcdedit /set {938e68ef-8ae5-11dc-8bf6-00138f511089} PATH \hda6.bin
bcdedit /displayorder {938e68ef-8ae5-11dc-8bf6-00138f511089} /addlastThe file hda6.bin contains the first sector of partition hda6 and can be copied out by a Linux command "dd" at the terminal
dd if=/dev/hda6 of=/hda6.bin bs=512 count=1
The above are the key steps for booting one Linux. To boot 150+ Linux is just repetitions best handled by a script.
Since Solaris, BSD and MS systems need primary partitions for installation I put all Linux in logical partitions which start at the 5th position. The Linux distros, always installed one Linux per partition, in the 5 disks were
Pata disk hda - 63 partitions, hda6 to hda63 fully filled, sda5 is the common swap
Pata disk hdc - 63 partitions, hdc5 to hdc63 fully filled
Pata disk hdd - 63 partitions, hdd5 to hdd63 partially filled, hdd10 to hdd48 are empty & hdd93 used for data.
Sata disk sda - 63 partitions, sda5 to sda15 fully filled
Sata disk sdb - 63 partitions, sdb5 to sdb15 fully filled
I don't keep a record of how many distros but the Vista boot menu shows up 158 booting entries, so there should be one Vista plus 157 Linux.
To be continued with the next post