Click to See Complete Forum and Search --> : How to install and boot 145 operating systems in a PC
saikee 12-30-2006, 07:01 PM --- Updated 17 Sep 07, A warning added in Post #21 on 63 partitions in a Pata hard disk is no longer supported by Linux kernel newer than 2.6.20-------------------
--- Updated 20 Sep 07, a new nested Grub menu system + added Solaris and BSD systems showned in Post #32, #33 and #34 ----------------
Author's notes - This thread has picked up some interest from the Internet by readers who commented the title without reading its content. For this reason I summarize the information briefly as follow:-
(1) A simple howto procedure, which is applicable from 1 to 300+ systems, is described. (Let me know if there is anything simpler or easier)
(2) One standard Linux boot loader controls all the systems. (indirectly becasue every system has its own original boot loader preserved)
(3) The controlling boot loader is not attached to any operating system (This is my own choice. Grub can be attached to any OS, even in ntfs partition as work around available).
(4) 3 Dos, 5 Windows, 137 Linux (more Linux since added plus one Solaris and 2 BSD) using 3 Pata and 2 Sata hard disks) (The number is limited by the availability of partitions/hard disks)
(5) Every system is booted identically and universally by the same 3 lines of commands. No need to worry what OS it is. (using the exactly the method every Linux boots a Windows but on all other systems)
(6) The 145-system booting menu can be created ahead of the installation of the systems. (I believe this has not been tried before)
(7) A nested Grub menu system is showed (Showned in Post #32 to #34. This probably has not been tried before)
Although not indicated by the thread these points should be obvious to experienced PC users
(a) The described procedure is applicable to any boot loader. (Grub happens to be the easiest while the others may have various limitations or take too long or too much work to achieve the similar goal).
(b) Everything is standard, no new thing invented, no hacking involved and the technology has been there all the time (Anyone can do it. I am just the one who is willing to write about it)
(c) The arrangement makes every system suitable for booting manually, say by a Grub floppy or booted by any other boot loader(Every system is self sufficient with its own boot loader inside the boot sector of the residing partition)
----------------------------------------------------------------------------------------------------------
How to install and boot 145 operating systems in a PC
This is the "howto" I promised to write after this thread (http://www.justlinux.com/forum/showthread.php?threadid=143973).
The 145 systems are:-
3 Dos
5 Windows
137 Linux
I have also installed most of the PC-based BSD and Solaris together with a Darwin x86 too but these systems dislike to co-exist with a large number of other systems so I have to keep them off in another PC until I find a way to tackle the technical issues. (edited : latest arrangement in Post #32, #33 and #34)
There are only 3 steps in this howto.
Step 1 – A simple hardware scheme
An operating system needs to reside in a home. That is a partition to me. I used 2x300Gb Pata disk and 2x200 Sata Disk to set up 152 partitions. I always put one operating system in one partition. As an extended partition of each hard disk has no storage of its own, one data-only partition is needed for my personal data, another data-only partition to house the common boot loader and one Swap partition is needed for all the Linux I ended up losing 7 partitions leaving 145 partitions to house the 145 operating systems.
Step 2 – A simple boot scheme
I put Grub in a data-only partition, created a boot menu to boot all the partitions before any of the operating systems was installed. When a partition is filled the system inside becomes bootable instantly. This scheme is dead simple, technically sound, perfectly applicable is every situation but can be viewed unconventional to some PC users. For those who know nothing about Grub it is just one of the two boot loaders commonly used in Linux. The other one is called Lilo possibly used by less than 40% of the Linux distros at the begining of 2007.
In a nutshell I use this Grub to boot up the boot loader of any of the 145 systems that I choose to use. Afterward it is the duty of the second boot loader that brings up its master.
Step 3 – A simple installation scheme
It is really simple. I just installed each system inside a single partition. For MS systems there is more work as I had to install each as a stand alone system so that it always boot to a “C” drive. I then moved the disks with the MS systems to the final position and edit Grub's menu file to boot it back to a “C” drive status.
My scheme depends every system having a boot loader inside its root partition. This is inherent in every MS systems and other operating systems that rely on booting from a bootable primary partition. For Linux it is an optional choice.
Hardware used
The PC is a self-assembled unit using the cheap components available. Nothing to write home about. Just average for an ordinary PC user say 5 years behind the latest technology as this is all I can afford.
Motherboard : Asrock 939NF4G-SATA2
CPU : AMD 939 64 +3200
Ram :1025Mb
Video : Onboard integrated NV44 graphics DX9.0 VGA
Hard disk 2x300Gb Maxtor 133/Mb/s Pata Diamond Max 10
2x200Gb 150Mb/s Sata-I Maxtor Diamond Maxline III
Sound card : SoundBlaster 5.1
Network card : Generic Realtek 8139 10/100 Entrnet
Keyboard : Generic PS/2 keyboard
Mouse : Generic PS/2 mouse
Essential tools
(1) A bootable Grub floppy or a bootable Grub CD.
(2) A Linux Live CD. Ideally one that has Grub inside.
(3) A Dos 6 or above bootable floppy with fdisk.exe inside
(4) A Win2k or XP installation CD
For the production of the Item (1) above and how to use the rest see the last link of my signature.
Partition tables
Here is the details of the partitioning scheme as output by “fdisk-l” Linux command.
Warning: omitting partitions after #60.
They will be deleted if you save this partition table.
Disk /dev/hda: 300.0 GB, 300090728448 bytes
255 heads, 63 sectors/track, 36483 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 122 979933+ 16 Hidden FAT16
/dev/hda2 123 244 979965 16 Hidden FAT16
/dev/hda3 245 366 979965 16 Hidden FAT16
/dev/hda4 367 36483 290109802+ 5 Extended
/dev/hda5 367 609 1951866 82 Linux swap
/dev/hda6 610 1217 4883728+ 83 Linux
/dev/hda7 1218 1825 4883728+ 83 Linux
/dev/hda8 1826 2433 4883728+ 83 Linux
/dev/hda9 2434 3041 4883728+ 83 Linux
/dev/hda10 3042 3649 4883728+ 83 Linux
/dev/hda11 3650 4257 4883728+ 83 Linux
/dev/hda12 4258 4865 4883728+ 83 Linux
/dev/hda13 4866 5473 4883728+ 83 Linux
/dev/hda14 5474 6081 4883728+ 83 Linux
/dev/hda15 6082 6689 4883728+ 83 Linux
/dev/hda16 6690 7297 4883728+ 83 Linux
/dev/hda17 7298 7905 4883728+ 83 Linux
/dev/hda18 7906 8513 4883728+ 83 Linux
/dev/hda19 8514 9121 4883728+ 83 Linux
/dev/hda20 9122 9729 4883728+ 83 Linux
/dev/hda21 9730 10337 4883728+ 83 Linux
/dev/hda22 10338 10945 4883728+ 83 Linux
/dev/hda23 10946 11553 4883728+ 83 Linux
/dev/hda24 11554 12161 4883728+ 83 Linux
/dev/hda25 12162 12769 4883728+ 83 Linux
/dev/hda26 12770 13377 4883728+ 83 Linux
/dev/hda27 13378 13985 4883728+ 83 Linux
/dev/hda28 13986 14593 4883728+ 83 Linux
/dev/hda29 14594 15201 4883728+ 83 Linux
/dev/hda30 15202 15809 4883728+ 83 Linux
/dev/hda31 15810 16417 4883728+ 83 Linux
/dev/hda32 16418 17025 4883728+ 83 Linux
/dev/hda33 17026 17633 4883728+ 83 Linux
/dev/hda34 17634 18241 4883728+ 83 Linux
/dev/hda35 18242 18849 4883728+ 83 Linux
/dev/hda36 18850 19457 4883728+ 83 Linux
/dev/hda37 19458 20065 4883728+ 83 Linux
/dev/hda38 20066 20673 4883728+ 83 Linux
/dev/hda39 20674 21281 4883728+ 83 Linux
/dev/hda40 21282 21889 4883728+ 83 Linux
/dev/hda41 21890 22497 4883728+ 83 Linux
/dev/hda42 22498 23105 4883728+ 83 Linux
/dev/hda43 23106 23713 4883728+ 83 Linux
/dev/hda44 23714 24321 4883728+ 83 Linux
/dev/hda45 24322 24929 4883728+ 83 Linux
/dev/hda46 24930 25537 4883728+ 83 Linux
/dev/hda47 25538 26145 4883728+ 83 Linux
/dev/hda48 26146 26753 4883728+ 83 Linux
/dev/hda49 26754 27361 4883728+ 83 Linux
/dev/hda50 27362 27969 4883728+ 83 Linux
/dev/hda51 27970 28577 4883728+ 83 Linux
/dev/hda52 28578 29185 4883728+ 83 Linux
/dev/hda53 29186 29793 4883728+ 83 Linux
/dev/hda54 29794 30401 4883728+ 83 Linux
/dev/hda55 30402 31009 4883728+ 83 Linux
/dev/hda56 31010 31617 4883728+ 83 Linux
/dev/hda57 31618 32833 9767488+ 83 Linux
/dev/hda58 32834 34049 9767488+ 83 Linux
/dev/hda59 34050 34657 4883728+ 83 Linux
/dev/hda60 34658 35265 4883728+ 83 Linux
Disk /dev/hdc: 300.0 GB, 300090728448 bytes
255 heads, 63 sectors/track, 36483 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdc1 1 122 979933+ 16 Hidden FAT16
/dev/hdc2 123 730 4883760 1c Hidden W95 FAT32 (LBA)
/dev/hdc3 731 3162 19535040 17 Hidden HPFS/NTFS
/dev/hdc4 3163 36483 267650932+ 5 Extended
/dev/hdc5 3163 3770 4883728+ 83 Linux
/dev/hdc6 3771 4378 4883728+ 83 Linux
/dev/hdc7 4379 4986 4883728+ 83 Linux
/dev/hdc8 4987 5594 4883728+ 83 Linux
/dev/hdc9 5595 6202 4883728+ 83 Linux
/dev/hdc10 6203 6810 4883728+ 83 Linux
/dev/hdc11 6811 7418 4883728+ 83 Linux
/dev/hdc12 7419 8026 4883728+ 83 Linux
/dev/hdc13 8027 8634 4883728+ 83 Linux
/dev/hdc14 8635 9242 4883728+ 83 Linux
/dev/hdc15 9243 9850 4883728+ 83 Linux
/dev/hdc16 9851 10458 4883728+ 83 Linux
/dev/hdc17 10459 11066 4883728+ 83 Linux
/dev/hdc18 11067 11674 4883728+ 83 Linux
/dev/hdc19 11675 12282 4883728+ 83 Linux
/dev/hdc20 12283 12890 4883728+ 83 Linux
/dev/hdc21 12891 13498 4883728+ 83 Linux
/dev/hdc22 13499 14106 4883728+ 83 Linux
/dev/hdc23 14107 14714 4883728+ 83 Linux
/dev/hdc24 14715 15322 4883728+ 83 Linux
/dev/hdc25 15323 15930 4883728+ 83 Linux
/dev/hdc26 15931 16538 4883728+ 83 Linux
/dev/hdc27 16539 17146 4883728+ 83 Linux
/dev/hdc28 17147 17754 4883728+ 83 Linux
/dev/hdc29 17755 18362 4883728+ 83 Linux
/dev/hdc30 18363 18970 4883728+ 83 Linux
/dev/hdc31 18971 19578 4883728+ 83 Linux
/dev/hdc32 19579 20186 4883728+ 83 Linux
/dev/hdc33 20187 20794 4883728+ 83 Linux
/dev/hdc34 20795 21402 4883728+ 83 Linux
/dev/hdc35 21403 22010 4883728+ 83 Linux
/dev/hdc36 22011 22618 4883728+ 83 Linux
/dev/hdc37 22619 23226 4883728+ 83 Linux
/dev/hdc38 23227 23834 4883728+ 83 Linux
/dev/hdc39 23835 24442 4883728+ 83 Linux
/dev/hdc40 24443 25050 4883728+ 83 Linux
/dev/hdc41 25051 25658 4883728+ 83 Linux
/dev/hdc42 25659 26266 4883728+ 83 Linux
/dev/hdc43 26267 26874 4883728+ 83 Linux
/dev/hdc44 26875 27482 4883728+ 83 Linux
/dev/hdc45 27483 28090 4883728+ 83 Linux
/dev/hdc46 28091 28698 4883728+ 83 Linux
/dev/hdc47 28699 29306 4883728+ 83 Linux
/dev/hdc48 29307 29914 4883728+ 83 Linux
/dev/hdc49 29915 30522 4883728+ 83 Linux
/dev/hdc50 30523 31130 4883728+ 83 Linux
/dev/hdc51 31131 31738 4883728+ 83 Linux
/dev/hdc52 31739 32346 4883728+ 83 Linux
/dev/hdc53 32347 32954 4883728+ 83 Linux
/dev/hdc54 32955 33562 4883728+ 83 Linux
/dev/hdc55 33563 34170 4883728+ 83 Linux
/dev/hdc56 34171 34778 4883728+ 83 Linux
/dev/hdc57 34779 35386 4883728+ 83 Linux
/dev/hdc58 * 35387 35994 4883728+ 83 Linux
/dev/hdc59 35995 36483 3927861 83 Linux
Disk /dev/sda: 203.9 GB, 203928109056 bytes
255 heads, 63 sectors/track, 24792 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 5099 40957686 7 HPFS/NTFS
/dev/sda2 5100 6315 9767520 83 Linux
/dev/sda3 6316 6923 4883760 83 Linux
/dev/sda4 6924 24792 143532742+ 5 Extended
/dev/sda5 6924 7531 4883728+ 83 Linux
/dev/sda6 7532 8139 4883728+ 83 Linux
/dev/sda7 8140 8747 4883728+ 83 Linux
/dev/sda8 8748 9355 4883728+ 83 Linux
/dev/sda9 9356 9963 4883728+ 83 Linux
/dev/sda10 9964 10571 4883728+ 83 Linux
/dev/sda11 10572 11179 4883728+ a9 NetBSD
/dev/sda12 11180 11787 4883728+ 83 Linux
/dev/sda13 * 11788 12395 4883728+ 83 Linux
/dev/sda14 12396 23916 92542401 c W95 FAT32 (LBA)
/dev/sda15 23917 24792 7036438+ 83 Linux
Disk /dev/sdb: 203.9 GB, 203928109056 bytes
255 heads, 63 sectors/track, 24792 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 1216 9767488+ 7 HPFS/NTFS
/dev/sdb2 1217 1338 979965 1b Hidden W95 FAT32
/dev/sdb3 1339 1460 979965 83 Linux
/dev/sdb4 1461 24792 187414290 f W95 Ext'd (LBA)
/dev/sdb5 1461 2676 9767488+ 83 Linux
/dev/sdb6 2677 3892 9767488+ 83 Linux
/dev/sdb7 3893 6324 19535008+ 83 Linux
/dev/sdb8 6325 8756 19535008+ 83 Linux
/dev/sdb9 8757 11188 19535008+ 83 Linux
/dev/sdb10 11189 13620 19535008+ 83 Linux
/dev/sdb11 13621 16052 19535008+ 83 Linux
/dev/sdb12 16053 18484 19535008+ 83 Linux
/dev/sdb13 18485 20916 19535008+ 83 Linux
/dev/sdb14 20917 23348 19535008+ 83 Linux
/dev/sdb15 23349 24792 11598898+ 83 Linux
My hda has partitions hda61, hda62 and hda63 but they are not shown by fdisk program.
Continued with next post
saikee 12-30-2006, 07:02 PM Here is the Grub menu.lst that boots 145 systems
#Grub menu booting 3 Dos, 5 Windows & 100+ Linux----------------------------
color white/green black/light-gray
title You are now booting from hda3 data-only partition
boot
title DOS 6.22 (FAT16) @ hda1
root (hd0,0)
unhide (hd0,0)
makeactive
chainloader +1
title Win 3.11 @ hda2
root (hd0,1)
hide (hd0,0)
unhide (hd0,1)
makeactive
chainloader +1
#hda3 is the data-only partition hosting Grub to boot all other systems
#hda4 is the extended partition
#hda5 is the common swap partition for all Linux
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
#Starting point of another hard disk----------------------------
title DOS 7.1 @ hdc1
root (hd1,0)
hide (hd0,0)
hide (hd0,1)
hide (hd0,2)
unhide (hd1,0)
makeactive
map (hd1) (hd0)
map (hd0) (hd1)
chainloader +1
title Win98 @ hdc2
root (hd1,1)
hide (hd0,0)
hide (hd0,1)
hide (hd0,2)
hide (hd1,0)
unhide (hd1,1)
makeactive
map (hd1) (hd0)
map (hd0) (hd1)
chainloader +1
title Vista @ hdc3
root (hd1,2)
hide (hd0,0)
hide (hd0,1)
hide (hd0,2)
hide (hd1,0)
hide (hd1,1)
unhide (hd1,2)
makeactive
map (hd1) (hd0)
map (hd0) (hd1)
chainloader +1
#hdc4 is the extended partition
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
#Starting point of another hard disk----------------------------
title XP Pro @ sda1
root (hd2,0)
hide (hd0,0)
hide (hd0,1)
hide (hd0,2)
hide (hd1,0)
hide (hd1,1)
hide (hd1,2)
unhide (hd2,0)
makeactive
map (hd2) (hd0)
map (hd0) (hd2)
chainloader +1
title Xenoppix 3.03 @ sda2
root (hd2,1)
chainloader +1
title Musix 0.39 @ sda3
root (hd2,2)
chainloader +1
#sda4 is the extended partition
title GeoLivre 5 @ sda5
root (hd2,4)
chainloader +1
title Ututu x2 2005.1 @ sda6
root (hd2,5)
chainloader +1
title Helix 1.7 @ sda7
root (hd2,6)
chainloader +1
title MagicLinux 2 rc2 @ sda8
root (hd2,7)
chainloader +1
title Zenwalk 1.2 @ sda9
root (hd2,8)
chainloader +1
title MedianLinux 4.0 @ sda10
root (hd2,9)
chainloader +1
title NetBSD i386 3.0 @ sda11
root (hd2,10)
chainloader +1
title Arabian 0.6 rc1 @ sda12
root (hd2,11)
chainloader +1
title Mepis 3.3.2 @ sda13
root (hd2,12)
chainloader +1
#sda14 is Fat32 partition holding personal data
title Slamd64 11 @ sda15
root (hd2,14)
chainloader +1
#Starting point of another hard disk----------------------------
title Win 2k @ sdb1
root (hd3,0)
hide (hd0,0)
hide (hd0,1)
hide (hd0,2)
hide (hd1,0)
hide (hd1,1)
hide (hd1,2)
hide (hd2,0)
unhide (hd3,0)
hide (hd3,1)
makeactive
map (hd3) (hd0)
map (hd0) (hd3)
chainloader +1
title FreeDos @ sdb2
root (hd3,1)
hide (hd0,0)
hide (hd0,1)
hide (hd0,2)
hide (hd1,0)
hide (hd1,1)
hide (hd1,2)
hide (hd2,0)
hide (hd3,0)
unhide (hd3,1)
makeactive
map (hd3) (hd0)
map (hd0) (hd3)
chainloader +1
title System Rescue CD 2.1.6 @ sdb3
root (hd3,2)
chainloader +1
#sdb4 is the extended partition
title Xfld 2.0 @ sdb5
root (hd3,4)
chainloader +1
title Kanotix 2006-1 @ sdb6
root (hd3,5)
chainloader +1
title Paipix 5.00 2006-3 @ sdb7
root (hd3,6)
chainloader +1
title Frugalware 0.4 @ sdb8
root (hd3,7)
chainloader +1
title Sabayon x86_64 3.0 @ sdb9
root (hd3,8)
chainloader +1
title Quantian 0.7.9.1 @ sdb10
root (hd3,9)
chainloader +1
title Suse 10.1 x86 64 @ sdb11
root (hd3,10)
chainloader +1
title Slackware 11 @ sdb12
root (hd3,11)
chainloader +1
title Knoppix 4.0.2 @ sdb13
root (hd3,12)
chainloader +1
title Mandriva 2006 0.4 @ sdb14
root (hd3,13)
chainloader +1
title Fedora Core 6 @ sdb15
root (hd3,14)
chainloader +1
I know I know this page is boring unless you are interested in the details. So how about these statistics
No
of
disros Country
2 Argentina
1 Asia
4 Australia
1 Austria
1 Belgium
4 Brazil
1 Bulgaria
5 Canada
3 China
2 Czech
2 Europe
7 France
14 Germany
3 Global
1 Hungary
1 India
2 Iran
1 Ireland
5 Isle of Man
3 Israel
5 Italy
5 Japan
1 Nepal
2 Netherland
1 New Zealand
4 Norway
1 Philippines
2 Poland
2 Portugal
2 Puerto Rico
1 S Korea
1 Sweden
2 Switzerland
1 Syria
1 Taiwan
1 Thailand
1 Turkey
5 UK
44 USA
145 Total
39 countries are contributing the operating systems.
The 3 Dos are Dos 6.22, Dos 7.1 and Freedos.
The 5 Windows are Win 3.11, Win98, Win2k, XP home and Vista
There are 114 unique systems as 17 of then have more two versions, 3 of them have 3 different versions and 2 have 5 versions. For example I have kept Fedora core for ver. 2, 3, 4, 5 and 6.
I only paid for all the MS systems except the free downloadable experimental Vista. All Linux are free downable systems.
A Linux can be freely downloadable from many Internet sites as an iso file that can be burn into a bootable CD. Once the CD booted up a user can follow the instruction to install the system as quickly as 10 to 12 minutes.
Many Linux distros also produce Live CD with which a user can have a full operating system without being installed into a hard disk.
Continued with next post
saikee 12-30-2006, 07:02 PM Technical details
Hard disk considerations
Most MS systems are designed to reside in a primary partition and there can be a maximum of four of 4 primaries in each hard disk. To get more partition a user “must” give up one primary to turn it into an extended partition. In Linux a Pata (or IDE) disk can have 63 partitions maximum and the limit of a Sata or SCSI disk is 15.
The number of partition plus the whole disk itself make up 64 and 16 devices repeactively.
(Updated note: Since the publication of this thread Linux kernel 2.6.20 and newer have ceased to support Pata disk names and the 63 partitions limit, stated in the blue text above, is no longer supported. Please read Post #21 for further explanation)
An extended partition also consume a device name but cannot be used for storage because it is just the border defining the beginning and the finishing points of the logical partitions.
Linux can be installed and booted from either a primary or a logical partition so it pays to give the primaries to MS systems that dependent on them.
Linux always name the first logical partition as the 5th partition in any hard disk. Therefore theoretically in a Pata disk, say a hda, the maximum usage is hda1, hda2 and hda3 as the primaries, hda4 being the extended partition holding a maximum 59 logical partitions inside (from hda5 to hda63).
In practice some Linux programs stop to display beyond the 60th partition and some distros, like those from the Red Hat family, do not show partitions beyond the 15th, even the distros itself has been installed beyond this limit.
The maximum number of partition one can get out of 2 Pata and 2 Sata is 2*(63+15)= 156. Thus I could have 4 partitions more if I want.
The partitioning scheme
I let the MS systems to have all the primary partitions and Linux are house mainly in logical partitions. One swap, also in a logical partition, to serve all the Linux. For BSD and Solaris systems I use separate hard disks.
As a rule I always install an operating system in a single partition. It is easier to maintain, to boot and to understand. It may not the optimum solution but it works in every Linux I installed.
Here are the partition sizes I allocate to each system
(a) Dos in 1 or 2Gb (primary, type fat16 or fat32)
(b) XP and Vista in 25Gb and 20Gb (primary, type NTFS)
(c) For Win2k I used 15Gb (primary, type NTFS)
(d) For Win98 I used 5Gb (primary, type fat32)
(e) Linux 5Gb (majority) and 10Gb ( say for a few for big distros) (logical, either Ext3 or Reiserfs filing types)
(f) One swap 1 Gb common to all Linux
(g) Personal data 95Gb large fat32
Actual sizes can be seen in the fdisk -l output in Post #1.
I use exclusively one Linux partitioning tool “cfdisk” and use “fdisk” as a second check. Both programs are standard tools in a Linux Live CD. I specify the partition type number of 83, 82, 6, c and 7 for native Linux, swap, fat16, fat32 and ntfs partitions respectively. In using cfdisk for partitioning the partition type is 83 by default and this is recognised by every Linux installer.
I never format the partitions myself as every installer wouldn’t trust me and likes to format its own home.
At a later date I started to use a free partitioning tool called “gparted” which has been branched into “Parted Magic”. They are available as free downable iso files that could burn into a CD.
I believe it is a good strategy to have the partition ready and in the correect partition type so that it is recognised by the system installer. If you you make life easier for the installer. In return it will give musch less trouble.
The mother of all booting schemes - Grub in a data-only partition
This is really my suggestion and is completely unnecessary to a normal Linux user, who can lay his/her hand on the first Grub he/she comes across and make this Grub to do all the things I say below. However my proposal carries the following advantages if taken up
(1) Grub is not attached to any operating system and so it can be used manually as a mini operating system.
(2) Every operating system can be booted indirectly (known as chain loading) using an identical set of commands with only difference in the partition reference. It works for all the operating systems regardless it is a Dos, Windows, Linux, BSD or Solaris.
(2) Every MS system and Linux can control Grub if it is installed in a partition, say type fat16 or fa32, which every system can read, write and alter its boot menu.
(3) Grub is the only boot loader that can be arranged to boot a partition even before its is created, formatted and installed with an operating system. That has to be the coolest thing in booting.
(4) The data-only partition, where Grub resides, has no operating system inside but can be booted by any Linux. Any Dos or Windows MBR can also boot this Grub if it is housed in a “primary” partition with the bootable flag set active.
It should be understood that I propose to install Grub “WITHOUT” being attached to any operating system! Grub cannot read a ntfs filing system so it should be installed into a fat16 or fat32 partition. I put it in the 3nd partition of my 1st Pata disk. In Linux it is known as hda3, as my 1st, 2nd, 3rd and 4th disks are hda, hdc, sda and sdb respectively.
To install Grub into a data-only partition involving the following steps
(A) Format the data partition first say in fat16 format. Best way is boot up a Linux Live CD, click terminal mode and issue the command for formatting a partition hda3 in fat16
mkdosfs –F16 /dev/hda3
Alternatively the partition can be formatted by a Dos floppy, downloadable from Bootdisk.com, in a Dos command prompt with command
format c:/, assuming any partition before hda3 is non-Dos or hidden.
The use of Fat16 is deliberate because with such a filing system a Dos cannot address hard disk beyond 2Gb, cannot recognise a Sata but we can still use Grub there to boot 145 systems in the PC.
(B) The next task is to get hold of 3 files Grub needs for installation. They are called stage1, stage1.5 and stage2, which are held together in a directory, and are available in any Linux Live CD that supports Grub. So just boot up a Live CD and ask Linux to report to you their position by command
find / -name stage1
you will find these files are typically held in the following directories
Red Hat, Fedora C2 to C6
/usr/share/grub/x86_64-redhat/stage1
/usr/share/grub/i386-redhat/stage1
Mandriva
/lib/grub/i386-mandriva/stage1
Mandrake
/usr/local/lib/grub/i386-pc/stage1
/usr/lib/grub/i386-pc/stage1
Suse
/usr/lib/grub/i386-suse/stage1
Gentoo, Knoppix, Mepis, Xubuntu, Ubuntu, Kubuntu, Debian
/lib/grub/i386-pc/stage1
Frugalware, Kanotix
/usr/lib/grub/i386-pc/stage1
Next stage is to create a temporary directory in the directory /mnt of the boot-up Live CD Linux, mount the data-only hda3 partition, create /boot/grub directory inside it, copy all the Grub’s stage1, stage1.5 and stage2 files into it, invoke a Grub shell, setup Grub in the MBR and exit. Using Ubuntu CD as an example the commands would be
mkdir /mnt/hda3
mount /dev/hda3 /mnt/hda3
mkdir /mnt/hda3/boot
mkdir /mnt/hda3/boot/grub
cp /lib/grub/i386-pc/* /mnt/hda3/boot/grub
grub
root (hd0,2)
setup (hd0)
quit
On a reboot the hda3 will be booted to a Grub prompt and nothing else. This indicates Grub is now in charge of the MBR, linked to partition hda3 and is controllable by the configurator file always named “menu.lst” if there is one in the /boot/grub or /boot directory of hda3. When Grub can't find it it defaults to a Grub prompt.
Note some versions of Grub, especially in the Red Hat family, can be modified to read "Grub.conf" instead.
Although the Grub Manual does not claim it but it is in my experience no PC operating system cannot be booted by a Grub prompt. It doesn’t look much at the first sight but there is seldom something so simple can be so powerful.
(C) Now is the time to write a menu to boot 145 systems. It is just a text file must named menu.lst to be stored in the subdirectory /boot/grub. Grub boots each system iy 3 lines as follow:-
A “title” statement to display the name of the system in the screen. Any ttext after the word "title" is displayed and has consequence to the booting except to remind you what the system is.
A “root” statement specifies the root of the operating system. This means the partition the target system residing. Grub counts everything from 0 so to boot a system at the 9th partition of the 2nd disk is “root (hd1,8)”. Similarly (hd0,0) mean the 1st partition of the 1st disk.
A “chainloader” statement which always ends with “+1”.
So you see there is nothing to it. Even a simpleton like me can cope with this.
Being lazy I wrote a small program to generate the booting menu because it is just doing 4 loops, each loop per hard disk in my case.
Therefore my menu.lst initially will look like this
title Empty @ hda1
chainloader (hd0,0)+1
title Empty @ hda2
chainloader (hd0,1)+1
title Empty @ hda3
chainloader (hd0,2)+1
title Empty @ hda4
chainloader (hd0,3)+1
and so on
The menu is edited whenever I wish to update it with the name of the operating system replacing the word “Empty”. Life could be so simple except the MS systems which needs extra work. That I shall go into later.
The simplified installation scheme
Linux is easy to install so I describe it first.
Linux rarely need to defrag its filing system because it makes use of a scratch area call swap. Thus a swap partition is needed for the first Linux system. Thereafter all the other Linux will proceed to use it without saying a thank you. There is nothing needed done except to create it using the Linux cfdisk program, to the size about twice the physical memory, and select it partition type as 82. Every Linux installer will know how to use it. Some insist on checking it, others ask you for permission to format it and many don’t even tell you what they do with it. I create one in partition hda5 so whenever an installer asks for it I just respond with “hda5”.
In the installation of every Linux we can “instruct” the installer to place Linux in any partition we want. This is done by nominating a single partition to mount the root or “/” of the Linux. If no more than one partition is given to an installer it will place a Linux's directories of /boot, /home, /usr…..as subdirectories to "/" inside the single partition, stacking them back to back so that you only need to worry only if the accummulative content starts to excced the overall partition capacity.
The choice of the boot loader, usually either Lilo or Grub, is immaterial to the proposed scheme.
When it comes to the location of the boot loader it is another matter. Every Linux installer would let the boot loader installed either in (a) the MBR or (b) the root partition of the Linux being installed. My proposed scheme “ONLY” works if the latter is chosen. Some naughty Linux could omit giving you a choice and steals the MBR position. You could also having tea and press the wrong button to lose the MBR. In such a case you can claim the original MBR back again by booting up the Live CD (with Grub inside), click terminal and fire these commands to restore Grub
root (hd0,2)
Setup (hd0)
which literally asking Grub to “source” the necessary file from the specified root and install itself in the whole of disk (hd0) and that could only be the MBR.
A word of caution on Linux’s ability to be installed/booted at high-number partitions or beyond 137Gb barrier in a hard disk
The systems that I arranged can all be booted as per menu.lst. Some older distros will have difficulties to recognise partitions higher than 16, not anticipating device names for high-number partitions and can’t access beyond 137 Gb in the hard disk. These distros have to be installed at the lower-number partitions and inside the first 137Gb of the hard disk. If you find a distro refuses to boot or install take a look at my menu.lst and check the partition position it is known to work.
Dos and Windows systems
There are many ways to install MS systems. For simplicity, ease of control and maintenance I recommend each system to be installed in a “C” drive as a stand-alone independent system. This is to say no dual booting among the MS systems by NTLDR. I have a mobile rack system so I can pull out all the other hard disks and leave only one to install a MS system. Thus every MS system in my case was installed as the first bootable disk. Once installed I do not change its partition position but can put hard disk in other positions. Grub has a facility to re-map the hard disk order on-the-fly and gives back the first bootable disk status to a MS system.
To install a MS system in a “C” drive means there should be no partition recognised by the installer except the partition for installation so it can rightfully claim the first partition status. If there is a partition the MS can recognised, say a Dos partition, then this can be overcome by hiding it, using the Live CD again. If one wants to hide the first disk’s 1st partition, unhide the 2nd partition and make it bootable for a MS system the command in Grub prompt are
hide (hd0,0)
Unhide (hd0,1)
Makeactive
Hiding a partition in a PC doesn’t physically hide the partition away. It just alters its partition type number. Normally a digit “1” is added. Thus if a fat32 and ntfs partition with type c and 7 will become invisible to a MS system when the type number is altered to 1c and 17 respectively. To unhide it is to strip off the digit “1”. It is the oldest trick in a PC, invented at the time Dos was the de facto operating system, to allow a user to bootmore than one operating system.
A MS system may need its own MBR for an installation. It has come to my notice that the MS systems share a common MBR. This MBR's function is to search each of the 4 primary partitions and load the one with the booting flag switched on.
As an example these are brief steps of how I installed Windows Vista in hdc3
Removed disk hda, sda and sdb disks and slide hdc into the rack previously occupied by hda. The original hdc3 partition is know as (hd0,2) to Grub.
Boot up a Dos floppy and restore the MS MBR into the hard disk by command
fdisk /mbr
Boot up a Grub floppy and hide the first two partitions and then check disk geometry
hide (hd0,0)
Hide (hd0,1)
Geometry (hd0)The geometry command is to check everything is in order before installation. Hda3 should have already been created with sufficient space in type 7 for ntfs filing system.
Install Windows Vista and select the 3rd partition for its home.
Check Vista working satisfactory on a reboot after installation.
Power down the PC, add the hard disk that is intended for the permanent home for the Vista, say this is a slave drive called hdc already has in the third primary position a partition with identical size as hda3, insert a Live CD, boot up the system and clone the Vista system across by root terminal command
dd if=/dev/hda3 of=/dev/hdc3 bs=32768
I then power down again, restore all the hard disk, boot up a Live CD again and use it to amend the /boot/grub/menu.lst in hda3 with the following entries for booting hdc3 partition
title Vista @ hdc3
root (hd1,2)
hide (hd0,0)
hide (hd0,1)
hide (hd0,2)
hide (hd1,0)
hide (hd1,1)
unhide (hd1,2)
makeactive
map (hd1) (hd0)
map (hd0) (hd1)
chainloader +1
The two map statement instructed Grub to swap the (hd0) and (hd1) position so that when Vista boots it will find itself still in the first bootable disk as per the original installation. The 5 hide statements are necessary to hide the 5 Dos and Windows partitions which if Vista picks up can upset its “C” drive status.
I used the same principle on every other MS systems and managed to get 3 Versions of Dos and 5 versions of Windows in the same PC. More MS systems can be accommodated but these are all I got.
Ending notes
My original intention was to learn Linux, understand how it work and be able to boot it. It was a huge surprise to see how easy and logical in a Linux world. It almost seems everything I could not understand how a computer works, after all these years with MS systems, suddenly become comprehensible in Linux when the inner working of the system is a published public knowledge.
People can say anything they like about Linux but my 2.5 years with it has taught me using one of the oldest partition (fat16) to house an obsolete boot loader (as the Grub described here is known as the Grub legacy that the GNU/Grub maintainers had already declared cesation of support to move their effort to the new Grub 2 at the time I started Linux) to boot the 145 operating systems I can access. The scheme is laughingly simple.
I am hugely indebted to many GNU/Linux volunteers who unselfishly maintain and develop the open source software. I come to know some of them could risk litigations from the money-grabbing corporation because their effort has reduced our dependency on the commercial software.
From the 2.5 years into Linux I witnessed a huge leap in functionalties and user-friendliness in Linux. I am also inspired by so many nations contributing efforts in bringing this operating system to the public. Many of their distros are technically outstanding.
saikee 12-30-2006, 07:06 PM Explanatory notes of the booting scheme.
(1) Under the normal circumstance a Linux user can take the first Grub available from any distro and uses its menu.lst for booting all the remaining 144 systems.
(2) Standard Grub implementation uses menu.lst as the menu file stored either in /boot or /boot/grub directory. A very small number of distros especially those belonging to the Red Hat family make a symbolic link to Grub.conf. I have only come across one or two distros that has no menu.lst and use Grub.conf exclusively.
(3) The simple Grub booting scheme makes any operating system instantly bootable on completion of its installation, as long as a boot has been implanted inside the root partition. Some earlier distros like Suse and Debian operate a two-stage installation when a reboot is needed to complete an install. This installation method does not affect the proposed booting scheme. Just boot the required partition after the first stage and the installer will finish the remainder of the procedure.
(4) The proposed booting scheme is a good demonstration of how booting works in general and Grub in particular.
(5) It is not possible to use NTLDR, a boot loader used for the NT Windows like Win2k and XP, to boot the number of Dos and Windows in my list, let alone the number of Linux involved as Windows boot,ini has a static screen for a maximum of 10 entries. I haven’t tried and so cannot comment on Vista’s new boot loader which I understand is different to NTLDR.
(6) It is also technically impossible to employ Lilo for such a booting scheme because (a) Lilo checks every booting entry and refuses implementation if it is not a valid bootable partition so no hope for Lilo to accept an empty partition for booting. (b) Lilo also uses a static booting screen permitting a maximum of 27 images. Thus if one wants to boot a large number of systems Grub is the only choice.
(7) Grub have different characteristics according the version releases. It is advisable to implement the latest Version 0.97 for the booting scheme. Grub can fail if you ask a lower version to “chainload” a later version.
(8) Grub is most robust boot loader when being used in the proposed simple booting scheme. This is because the booting process is totally independent of any system including the Linux kernel. Once Grub is built inside a Linux, say when being called up as a Grub shell in Bash terminal, it would suffer the deficiencies whatever the kernel might bring. As an example before a Linux is booted Grub can see all the partition devices obtainable from the Bios. However when an old Linux is booted its kernel may not anticipate high-number partitions, would not load all the devices and so that leaves Grub with no access to the high-number Bios-drives. Thus a user wishing to restore Grub inside a high-number partition of say hda60 this Linux command may fail
grub-install /dev/hda60
Whereas booting up Grub from a floppy the same task would invariably yield success by commands
root (hd0,59)
setup (hd0,59)
(9) The booting scheme as proposed can be executed by a floppy.
(10) Like a Dos Grub currently suffers from the inability to recognise a USB device and I am not aware any Grub has been able to boot from a USB device. Remember when Grub is loaded it does not have access to a kernel and as such it cannot detect removable devices without substantially increasing its code. The computer code for Grub is apparently among the biggest by the boot loader standard.
(10) If for any reason the boot loader is faulty or improperly installed in the root partition it can be restored with reference to this link. (http://www.justlinux.com/forum/showthread.php?t=144294) An installer has probably more bugs than the operating system itself.
Explanatory notes of the installation scheme.
(a) One of the problems of installing a large number of distros in the same hard disk can surprise some Linux as their installers can go to pieces. This is especially true for older distros that seem to have a limit on the device names . For example many has partition name stop at hda20 or hda24 or hda32.
(b) It is possible in extreme cases to install a Linux on a separate disk with no more than 15 partitions ( because Linux supports SCSI/Sata which has a maximum 15 partition) and migrate it to the final position in another hard disk, using Linux's "dd" or "tar" command. However the partition reference should be updated in the boot loader configuration file, which is either menu.lst or lilo.conf, and the system file /etc/fstab. To get a Linux to expand it /dev list check this thread (http://www.justlinux.com/forum/showthread.php?threadid=147954) and follow the advice by Exodus2001 and bwkaz.
zheepeez 09-14-2007, 03:07 AM I registered a membership at this forum for the sole purpose of asking...
why?
saikee 09-14-2007, 03:33 AM zheepeez,
Welcome to Justlinux.
This thread is to show how booting is laughingly simple in Linux.
It also demonstrates that Grub can boot all of them identically with the same commands regarless the type of the operating system. Grub can do this without the need of being installed inside an operating system, although for most users it is simpler just to use Grub available from any Linux or Solaris.
As part of the same system I also have some BSD and Solaris booted but have not included them because the arrangement is slightly complicated as I have to nest several Grub menus and hide the whole extended partitions to avoid complaints by the Linux systems.
This thread is a bit dated now that Linux has stopped to use Pata disk device names and so the 63 partitions in a Pata disk is no longer supported by the kernel newer than 2.6.20. All SCSI/Sata/Pata/USB disks can only have 15 partitions and special arrangement is needed to get 44 partitions out of a hard disk. One can go with LVM but that may not be friendly to non-Linux systems.
The current thread is sort of "Howto" as answers to questions raised in a thread posted 12 months earlier describing a Grub menu booting 100+ systems. The earlier thread has generated some interest in the Internet and forced me to find a simple way to explain how to install and boot a large number of systems. I eventually decided the minimum amount of work for me to by explaining operating system is booted by chainloading. Thus I can show that a Grub menu can be written first even before installing any of the 145 systems.
Since nearly all Linux, BSD and some Solaris are free there is a trend of increasing number of Linux users booting more than one system. I hope my thread can allay fear of handling multiple systems.
JustLinux has this "How I did it" subforum allowing me to post the above information. I started learning Linux here on the date I joined Justlinux in June 2004. The moderators and member stook me by the hand to boot 4 systems after the first month. I see myself as a live example of how a beginner can learn Linux with help from a forum.
There may be things difficult in Linux but I don't think booting is one of them.
chinhnt2k3 09-14-2007, 11:25 AM It's cool man!
Would be great if you can show off some pics :D
Or better make some videos and YouTube :D
You'll be a penguin hero in no time!
saikee 09-14-2007, 01:08 PM chinhnt2k3,
Welcome to JustLinux.
I am merely documenting the steps. I think the partition tables and the Grub menu.lst are sufficient to define my systems.
I started to learn Linux on the day I joined Justlinux and have written a few threads. These threads document that as an absolute beginner I learned from JustLinux to multiboot 4 systems in 19 days, 19 systems in 60 days, 30 systems in 129 days and 100+ systems in 550 days. The current thread is to document the simplest way a user can multiboot a modest number of systems. I am just passing/summarizing the knowledge people in Justlinux have taught me.
Kaliatri 09-14-2007, 07:17 PM Holy mackarel you're an OS god!
saikee 09-14-2007, 07:24 PM Kaliatri,
Welcome to JustLinux.
Kaliatri 09-14-2007, 07:28 PM Thanks, I came here from Digg - that's amazing, although sorta pointless, but still amazing.
saikee 09-14-2007, 07:56 PM There are a couple of uncommon features, which are useful to demonstrate how Grub works, in the thread
The boot loader Grub can be arranged first to boot all 145 systems before any of them is installed.
Every system is booted identically by the same 3 lines of Grub commands regardless it is a Dos, Windows and Linux (also BSD and Solaris, although not shown but are in the PC).
Grub in the MBR was installed in a data-only partition which has no operating system inside.
Otherwise everything is standard, no hacking, just arrange the systems the way they would behave normally.
alpha754293 09-14-2007, 08:28 PM I came here from Digg as well. Interesting. You left out the UNIX flavors though. :(
Albeit you could have accomplished the task probably a heck of a lot easier using virtualization (if say...you want to develop cross-platform software, and retaining legacy code/kernel for compatibilty checks), or perhaps on a Sun workstation with a PC-on-a-card as an add-on. (Although you probably won't be able to run Vista on it, but I don't think too many people would miss it if they're running 145 distros of Linux).
saikee 09-15-2007, 06:20 AM alpha754293,
Welcome to Justlinux.
The XP in the above 145 systems has VMware and a couple of LInux as guest systems inside.
VMware, or at least my free version, is a disappointment because it must assign a portion of the ram to run each each guest system making the every system terribly slow. The Linux in such a case is also boxed in a virtual partition and cannot communicate with the outside except to the host. In other word I haven't been able to mount it between the guest systems. The guest also has no boot loader of its own as it is not booted. Not all guest systems can be installed because their installers may not have been written with residing in a virtual machine in mind. The VMware document does not recommend more than 4 guests because by that time each system has about only 1/4 of the usable ram. VMware does not recommend more than 4 systems to be run at any one time, though this may be partly compensated by keep adding ram until the limit in the mobo is breached. So yes I tried virtual machine layer too but not impressed by it.
The above 145 systems can access each other's data if the relevant partition is mounted. One Linux can access the Bash shell of another by using "chroot" and in some cases can operate another X-windows too. I have not investigated in this area but it appears one Linux may "chroot" about 3 other fellow systems to run their Desktop simultaneously, though not always successfully.
Unix-like systems use BSD-subparts and sub-slices which are detected as logical partitions by Linux. This conflict makes BSD and Solaris systems objectionable to Linux systems. Also some Unix systems cannot accept 63 partitions in a Pata hard disk and will not installed (same for Linux with kernel newer than 2.6.20). Systems like FreeBSD can be installed if there is no hard disk with such a large number of partition but will refuse to boot as soon as such a hard disk is inserted.
I have actually developed a way to run Unix-like systems and operate them in the PC with 145 systems which has since had another 23 systems added and an extra Pata disk introduced. I have intended to published this technique which has been used in this thread. (http://www.justlinux.com/forum/showthread.php?t=149956) showing how to hide the entire extended partition and nest a series of Grub menus.
in answering some of the questions people raised on my thread on a Grub menu booting 100+ systems published Dec 2005 I wrote the current thread showing the simplest and easiest way to installed and boot a large number of OSs, In so doing I had to migrate the original 100+ systems to another PC, tried different methods and then documented the simplest way to install and boot them while the number of systems increased over a period of 12 months.
The current thread was published in the Justlinux forum in Dec2006 and is already 9 months ago today! Readers in Digg mistaken it as a current "claim" on the number of systems but it is really about "one of the the easiest and simplest ways to install a large number of operating systems".
I am running 3 PC using a KVM switch which allows me to access different operating systems both physically and virtually (the latter by running XP with VMware). A virtual machine operates by physically grabbing a portion of the system memory so both the host and guest suffer the performance losses. I find such system response is no match to running it in an old PC hooked up by a KVM. Virtual machine management layer has its place but in my limited experience it does not appear to be the universal cure.
The method described by the current thread works equally well for just 1 system or another additional 200 systems. The 145 is just an example!
alpha754293 09-15-2007, 09:43 AM I didn't know that you were trying to concurrently boot into the various distros.
Although I would agree with you that unless you have a centralized, off-host (SAN/NAS/separate file server) that you wouldn't be able to see/utilize data across platforms.
I haven't used VMWare in probably at least 3 years or so, and there's supposed to be a lot of improvements to it since then. I haven't gotten around to testing them though.
I wasn't particularly impressed with VMWare back then because of the dog slow performance. I suppose that it would work great for enterprise computing where RAM is made more widely available.
I also know that in the latest release of Solaris, there is a way to run Linux natively within Solaris via Solaris Containers for Linux. Unfortunately, this is still limited to 32-bit Linux applications and I have not tested this either to find out what its nuiances are and the performance differences between an native Linux distro on the host system as a separate install.
On the PC-on-a-card though (like the Sun PCi II Co-processor card), with the possible exception of Vista, and the 64-bit OSes, you can also switch between each fully isolated distro, and again with a shared data pool, treated as an external file server (I haven't figured out how to make it talk to a data pool contained on the host system without having to route through the network) by changing the hard drive image to boot the co-processor card to.
I'm currently controlling 6 PCs via KVM, 7th via a separate attachment to my monitor (13W3), mouse and keyboard (Sun Type 5). 8th and 9th are offline. 10th is arriving within the week. And two separate laptops.
4 are file servers (1 offline, 8th), 1 is a compute node (only), 1 "normal use/daily use", 2 workstations, 1 general server (9th), 1 more fileserver incoming (10th), with a total of 30 (or so) processors total, 60 hard drives, 80 GFLOPS of total computing power.
saikee 09-15-2007, 10:48 AM alpha754293,
Looks like you are in a hardware paradise with 30 processors. I get confused when starting to work on the 3rd system.
The Solaris Container for Linux, is it a open source?
chinabiue 09-15-2007, 12:38 PM You are my idol! :eek:
clw54 09-15-2007, 01:18 PM After reading this, I've learned enough to try Grub next time instead of Lilo. I've been using Lilo out of habit all this time. Thanks for this thread, saikee.
saikee 09-15-2007, 01:19 PM chinabiue
Welcome to JustLinux.
--------------------------------------------------------------
clw54
Lilo is about 2 to 3 times harder than Grub to deploy. Operational wise there is little to choose between the two. Grub does have the following advantages over Lilo.
(1) Lilo needs a revalidation every time its /etc/lilo.conf is amended. Grub never needs such attention.
(2) Lilo checks every partition it is asked to boot and refuses to implement it if there is an error. Grub is totally different. The above thread shows that none of the operating systems needs to be installed before Grub's menu.lst is written out.
(3) Lilo is "Linux Loader". As such it cannot survive outside Linux. Grub can be installed without any operating system attached to it.
(4) Lilo works only after a Linux has been booted. Grub can operate as a mini operating system before any operating system is booted and hence can be used to boot any system manually.
(5) Lilo uses a static screen which has space for just 27 entries. Grub uses a scrolling screen and the sky is the limit as far as the number of booting entries is concerned.
(6) To restore Lilo one has to use another Linux to change root to the original Linux to access its Bash shell, although using a different Bash shell is also possible. Grub can be restored by a Grub prompt without booting up an operating system. Thus one can restore Grub for several distros in one operation regardless the location of the distros which could be in any internal or external disk or even USB device.
(7) Lilo works only on hard disks but Grub has component (stage2_eltorito) for booting from a CDrom too. Grub is equally at home booting USB thumb drives.
Lilo does have the advantage of being a lot smaller and able to fit into the boot sector. Thus if one nuke the Linux Lilo can be still operational from the boot sector for booting other systems. Grub is very big and nuking the Linux will cripple Grub.
I have seriously considered to write an alternative Lilo booting menu system for the above 145 systems as I am pretty sure we can do relays with any boot loaders. This is to say menu1 boots the first 27 images with the 27th Linux opens up another 27 images and so on. The work will be at least 50 times more than using one Grub. Thus I did NOT think the effort worth to pursue.
alpha754293 09-15-2007, 07:33 PM alpha754293,
Looks like you are in a hardware paradise with 30 processors. I get confused when starting to work on the 3rd system.
The Solaris Container for Linux, is it a open source?
Uh.....I could always use more processors/systems. :D
Whether power, cooling, space, (and finances) will support it is a whole 'nother question.
Solaris Containers for Linux IS an open source project (via OpenSolaris.org) http://www.opensolaris.org/os/community/brandz/.
It has been officially rolled into the "mainstream" Solaris (the part open-part closed source Solaris now) although more and more stuff is being rolled in from the OpenSolaris initiative.
I don't think of it as proprietary/non-proprietary - but more along the lines of OpenSolaris and Solaris Express are like beta Solarises (and they'd constantly be in beta stage for various projects), while the official releases are the stable builds, and rolled in with the rest of the OS/installer, which makes it easy for non-programmers like me to use/install/configure, etc.
It isn't "bad". With regards to Linux, it probably (still, almost certainly) has it's limitations. For Apache, MySQL, PHP (AMP), it's supposed to be great. I don't know, I've only used it for Apache and Samba (SMB) before (still using it for SMB and as my giant file servers with ZFS). (Even then, ZFS has it's own quirks). Ultimately, it depends on what you use it for I guess. To each their own.
saikee 09-17-2007, 06:04 AM ----An update 17 Sep 2007 ----
Warning
Since Feb 2007 Linux kernel 2.6.20 and later have incorporated the Pata disk names into the SCSI/Sata/USB disk family and so in future Pata disks will all be called sda, sdb, sdc... etc. This makes a Pata disk incapable of having more than 15 partitions.
The current thread was written in Dec 2006 when the kernel version was 2.6.18 and 63 partitions in a Pata disk were supported. With the new kernels a hard disk with more than 15 partitions could be ignored by Linux and may be treated as a raw disk. Some new kernels still support Pata names but the trend is to go with the SCSI/Sata/USB convention controlled by the libATA driver.
The implication is unless you use a set of old distros that have kernels older than 2.6.20, you may now need a lot more hard disks to repeat what I have done in this thread, because I could use 63 partitions in a Pata disk then but not now.
However I have been working on a method to get as many partition out of a hard disk and 44 partitions out of a SCSI/Sata/Pata/USB disk is technically possible. I have reported it in this thread (http://www.justlinux.com/forum/showthread.php?t=149956). The other alternative is to use a LVM to accomondate the large number of Linux. I am currently runing satisfactorily a 44-partition Sata nearly filled with Linux.
The 44-partition thread also shows how to "nest" a group of Grub menus together. Thus BSD and Solaris can be booted together with Dos, Windows and Linux in the same PC. If there is any conflict just use the Grub menus to hide the partitions that causes problems before booting up the chosen distro. One can hide the entire extended partition in the same way of hiding a logical or primary partition. I have summarized a few tips of partition hiding in this thread. (http://www.justlinux.com/forum/showthread.php?t=149828&highlight=hidden)
The latest Grub menu system of this thread has been posted in Post #32 to #34 where Solaris and BSD systems have since been included.
alpha754293 09-17-2007, 06:17 AM ----An update 17 Sep 2007 ----
Warning
Since Feb 2007 Linux kernel 2.6.20 and later have incorporated the Pata disk names into the SCSI/Sata/USB disk family and so in future Pata disks will all be called sda, sdb, sdc... etc. This makes a Pata disk incapable of having more than 15 partitions.
The current thread was written in Dec 2006 when the kernel version was 2.6.18 and 63 partitions in a Pata disk were supported. With the new kernels a hard disk with more than 15 partitions could be ignored by Linux and may be treated as a raw disk. Some new kernels still support Pata names but the trend is to go with SCSI/Sata/USB convention.
The implication is unless you use a set of old distros that have kernels older than 2.6.20, you may now need a lot more hard disks to repeat what I have done in this thread, because I could use 63 partitions in a Pata disk then but not now.
However I have been working on a method to get as many partition out of a hard disk and 44 partitions out of a SCSI/Sata/Pata/USB disk is technically possible. I have reported it in this thread (http://www.justlinux.com/forum/showthread.php?t=149956). The other alternative is to use a LVM to accomondate the large number of Linux. I am currently runing satisfactorily a 44-partition Sata nearly filled with Linux.
The 44-partition thread also shows how to "nest" a group of Grub menus together. Thus BSD and Solaris can be booted together with Dos, Windows and Linux in the same PC. If there is any conflict just use the Grub menus to hide the partitions that causes problems before booting up the chosen distro. One can hide the entire extended partition in the same way of hiding a logical or primary partition. I have summarized a few tips of partition hiding in this thread. (http://www.justlinux.com/forum/showthread.php?t=149828&highlight=hidden)
Question: MUST the individual Linux installs be on separate partitions?
For example, is it possible to clump all Linuxes that work/run on ext3 into one giant ext3 partition, and only separate the boot information/files by moving them into different directories?
i.e.
Fedora Core 2
/boot/FC2
Fedora Core 3
/boot/FC3
??? Just thinking out loud...
If it works, it would eliminate the need for LVM, and the OSes would be grouped by fstype.
saikee 09-17-2007, 07:09 AM As far as Grub is concerned there are two hard disk addresses needed to boot a Linux. One is in the "root" statement to find the Linux kernel. The other one is for the kernel to find the root filing system. The latter is a kernel parameter to be passed during boot time.
The basic deal is Grub load the kernel with the first hard disk address and buggers off.
The loaded kernel will then fetch files according to the specified root location. The syntax of the latter is "root=/dev/sda?". Therefore it is always a device name and not a folder name. This does not get changed if the partition is identified by the by-label or by-uuid method.
Therefore I don't think storing several Linux in a same device or partition is acceptable to the Linux boot loader because Lilo also use the similar "root=" statement for a device.
At a working level, say if one does manage to put several Linux into the same root filing system the structure of Linux will prohibit mixing of system pararmeters with another distro. In fact if a Linux user re-installs the newer version of the same distro over an existing filing system there is a risk the kernel panics over some parameters not properly updated. Therefore adding additional different Linux to the same root filing system would be inadvisble even if it is technically possible.
Furthermore sharing even the same /home directory over several Linux is a difficult feat because different ways the different distros use the common programs and storing their own different settings.
I have avoided the LVM up to now because I could see extra maintenance work but little if any real benefit. May be I should exhaust this option. I know for a fact that we can't house non-Linux systems inside and managing different kernel and initrd files is going to be pig's job in one per /boot.
In the 145 systems above one does have the benefit of keeping the kernel, initrd and boot loader intact for each system in the location arranged by the original installer. The availablity of 145 boot loaders and how they were arranged taught me how I can simplify and standardise every system with Grub.
Putting one system in one partition is "a lot" easier to control, to boot, to mount, to remove, to maintain, to resize and ultimately to migrate.
alpha754293 09-17-2007, 07:13 AM Good point. I'm probably worse off than you are because I prefer to separate different OSes at the BIOS level. There'd be no way that I'd be able to convince my BIOS to take 145 (different) installations.
Luckily, I don't use more than 2 on any given system.
saikee 09-17-2007, 07:44 AM As a joke often after solving a problem and receiving thanks I would ask the Linux user to chop his/her hand and send it to me after he/she got into the trouble by fiddling with the booting queue in the Bios. I would tell him I have collected enough meat to open a sauage factory.
Both Lilo and Grub can alter the Bios setting "on-the-fly" during the booting process and to me that is a boot loader's job. Example of Grub and Lilo using "map" statement for this purpose are showed in Section A here (http://www.justlinux.com/forum/showthread.php?s=&threadid=130715).
In the 3 Dos and 5 Winodws I run in the 145 systems I always installed each MS system on its own into a "C" drive and moved the disk to the final position by using Grub to "re-map" its original installed booting position. To keep one MS system interfering with another I hide all MS systems ahead of the booting queue to the one I wish to boot.
I truly believe fiddling with the Bios for the purpose of booting is a worst respect a Linux user can show to a Linux boot loader because it is a lack of truct of what a Linux boot loader is made for.
alpha754293 09-17-2007, 08:40 AM However, the idea behind using the BIOS to control the boot order also means that the installations are completely independent of each other. Therefore, even if LILO or GRUB fails (and/or the hard drive with the LILO/GRUB dies), it does not prevent the other OS (on a physically separate drive) from booting, espectially if told to do so via the BIOS.
Also as far as I know, most Linux distros cannot write to NTFS partitions, which is almost a requirement for partitions > 32 GB (IIRC). (My smallest NTFS partition (on a boot drive) is 73 GB and largest is 146 GB). Therefore, using GRUB (unless GRUB for Windows is explicitly available) (or Linux with LILO/GRUB) for the sole purpose of controlling boot order may not work for partitions > 32 GB, and also makes it dependent on the host system/drive with the bootloader.
If, for example, in Windows, and the Windows and/or the drive dies, (presuming that user data resides on a separate drive), then it is a simple matter of reinstalling (the drive) and Windows.
For a dead Linux drive, booting may become tricky, if at all possible pre- or post-boot drive resuscitation.
(Yes, I've had GRUB die on my WITH the OS (and data) installed into a 4-drive RAID5 array. And no, I have absolutely no idea how to bring it back to life. :( (Host OS is Redhat 9, I forget the kernel version). I was planning on building a test system such that nearly identical, and performing tests/practicing how to bring it back to life while leaving the data intact because on that system, being able to bring the array safely back online is of the utmost importance. I just lack the experience on disaster recovery with Linux.
saikee 09-17-2007, 10:58 AM Personally I have not run into any partition size-related problem from the Linux boot loader Lilo and Grub. If Lilo and Grub can address to the 63th partition of a 500Gb Pata disk it would be booting to the last 10Gb of that disk and I have used one 320Gb fat32 partition for data is accessible by all systems. In fact I am stilling using one 500Gb ntfs partition for storing iso files and even use Linux, with ntfs-3g support, to write the download files onto this disk.
I would say even when I started entering Linux some 3.5 years ago Lilo had already no problem addressing large hard disk, as I was reading the 1024 cylinders barrier in the Lilo related literature but could not find it in practice with the kernel versions then. I have tested the oldest Grub 0.91 in my possession and found it didn't has any fear of large hard disk either.
If a Windows dies in my system I can remove all the other hard disks in seconds, as they are all mounted on mobile racks and caddies, and reinstall the system if needed. For booting, as long as I know the disk it was installed, normally the first one and known to Grub as (hd0) I can sert it anywhere say as the 4th disk (hd3) and boot it with two extra statements in Grub
map (hd0) (hd3)
map (hd3) (hd0)
This procedure works for every Windows of Win9x, Win2k, XP and Vista.
For simplicity I have satyed away from the Raid systems. The last time I used a stripped Raid (Raid 0 I think) I believe the boot loader was actrually located in first disk. Thus if the Raid is arranged by Bios then any Grub should be able to boot it but I do not have practical experince to back this up. It depends on how the Raid is set up and can be transparaent to the OS by a management layer. If I remember it correctly Grub is in only on one disk and the loaded kernel looks after the filing systems in the Raid (from information off the Bios).
You may consider starting a thread on this problem. Some of the forum members are pretty switched on with Raids.
Someone has too much time on his hands :-D
Hah! Well done!
(registered only to congratulate, and mayhap later bother the local residents with anoying newbie questions on ubuntu)
zheepeez: Well, you should be asking the question Why not? ;-)
David
alpha754293 09-17-2007, 01:28 PM Oops, *edit*. FAT32 partitions is a cannot address more than 127 GB. I guess that it's different if Linux configures the FAT32 partition rather than Windows.
For the current generation Windows to run with FAT32 isn't as good as if it were to run on NTFS.
I may start the thread at a later time. I don't know yet. Waiting for my 9th system to arrive so that I would be able to test the procedure with that.
晕!装145个系统有意思吗?把时间都用在了选系统上,真的没啥意思!
saikee 09-19-2007, 04:43 AM 薛一琦 ,
Welcome to JustLinux.
I hope you would excuse me not replying your question in Chinese. Possibly because 3 out of the 145 systems were "sourced" from China I notice the current thread has been translated into Chinese in one of the web site.
Yes the installations did take time but since Linux can be moved from partition to partition and hard disk to hard disk so a system once installed takes no more time.
At the later stage I started to install the iso file directly from the hard disk and the fast time I clocked is 6 minutes for installing Sidux. A modern Linux generally takes less than 15 minutes to install.
I do hellp others on booting problems. The large number generally covers whatever systems a member would have so it is reassuring to him/her that at least "one" solution is readily available.
The threads does have some unusual features, like having a Grub manual before installing the systems, there is no operating system controlling the Grub in the MBR (so every system can alter it), that every system is booted identically regardless of operation type, etc.
At a personal level finding a way to write a "howto" install and boot 145 systems and able to keep it even simpler than installing 2 or 3 systems is not easy. Also as a Linux users, and a beliver in the principle in open source, trying out distros from 39 countries is an experience, especially dealing with a foreign installer. I survived only by the common knowledge I have in Linux and after installation to alter the language and keyboard back to English and UK. Thus the time I spent has been worthwile to me, especially for the appreciation of Linux as an international operating system. It is one of the rare things in life the people in different countries and in different religions can work together and have something in common and in agreement.
saikee 09-19-2007, 06:54 PM In view of the number of readers interested in the Grub menu of booting 145 systems I now post my current nested system of 5 Grub menus (spread into Post #32, #33 & #34 due to a maximum of 2000 characters permitted in each post). The original one long menu.lst in Post #1 has been superseded since.
menu.lst is the master menu that boots up 4 submenus for "Frequently used", "Dos/Windows only", "Linux only" and "Solaris/BSD only".
menuFreq.lst contains Linux I frequently use
menuWin.lst contains booting entries of 2 Dos and 5 Windows (Dos 7.10 temporarily dropped)
menulin.lst contains all the Linux
menuBSD.lst contains one Solaris and 2 BSD systems
A Grub menu is just a text file that every PC user can create for himself/herself. It should be apparent that more menus can be introduced if desired, like breaking the booting chices into Red Hat famiy, Debian family, Slackware family etc.
Since the publication of the current thread 9 months ago I have since move Vista from hdc3 to hdc1 when upgrading the disk to 500Gb. Thus the displaced Dos 7.10 cannot be installed into the vacanted hdc3 because hdc1 is now 28Gb and Dos 7.10 in a fat16 partition is unable to address beyond 2Gb in a hard disk.
In order to add BSD and Solaris I have added another Pata hard disk hdd which also has 63 partitions. The 4th being the extended partition and so hdd1, hdd2 and hdd3 have been used for installing Solaris 10, PCBSD and FreeBSD. This 5th disk is partially filled with another 23 Linux systems. Thus the total number of bootable systems in the box is about 165.
I have mentioned a few times that BSD and Solaris when co-existing with Linux in extended partition can cause conflicts. Yoiu can see in Post #34 the hard disk hdd, between partition hdd2 and hdd2, an error message has been reported for this type of corruption problem which currently does not stop the operation of the systems. A few veteran Solaris users have indicated the corruption in the partition table does not necessarily harm either the Solaris or the Linux systems. However a hard disk such such error/conflict can become incresingly difficult to handle with time.
Every time I boot a BSD or a Solaris system I hide the entire extended partition to avoid conflicts. The arrangement is detailed in my nested Grub menus. When I boot the Linux I hide the BSD and Solaris partitions and unhide the extended partition.
Since kernel 2.6.20 and newer cease to support Pata disk names I find it increasingly difficult to add new Linux to this PC because the installer cannot cope with a hard disk with more than 15 partitions.
Anyway for those interested here are my Grub menu systems.
(1) Master menu.lst
color black/green yellow/cyan
title This is the Master menu controlling all systems
boot
title Frequently used
unhide (hd0,3)
unhide (hd1,3)
unhide (hd2,3)
#unhide (hd3,3)
#unhide (hd4,3)
unhide (hd2,0) #Solaris unhide=hide
hide (hd2,1)
hide (hd2,2)
root (hd0,2) #(hd0,2)
configfile /boot/grub/menufreq.lst
title Dos/Windows-only sub-menu
root (hd0,2) #(hd0,2)
configfile /boot/grub/menuwin.lst
title Linux-only sub-menu
unhide (hd0,3)
unhide (hd1,3)
unhide (hd2,3)
#unhide (hd3,3)
#unhide (hd4,3)
unhide (hd2,0) #Solaris unhide=hide
hide (hd2,1)
hide (hd2,2)
root (hd0,2) #(hd0,2)
configfile /boot/grub/menulin.lst
title BSD-only sub-menu
hide (hd0,3)
hide (hd1,3)
hide (hd2,3)
#hide (hd3,3)
#hide (hd4,3)
configfile /boot/grub/menubsd.lst
title floppy on (fd0)
rootnoverify (fd0)
chainloader (fd0)+1
title Super MS-DOS 7.10 Boot Disk (requires Dos 7.10 floppy in the drive)
root (fd0)
chainloader /boot/msdos.bs
title Boot from CD Drive (requires Dos 7.10 floppy in the drive)
root (fd0)
chainloader /boot/cdboot.bs
title Power down computer
halt
The main ussage of this master menu are
To break up the booting choices in to groups
To hide the Solaris and BSD partitions while running Linux and vice versa (to avoid partition table corruption)
(2) Frequently used Linux menuFreq.lst
color red/brown black/light-gray
title This is the frequently use Linux booting menu
boot
title Return to Master menu
root (hd0,2)
configfile /boot/grub/menu.lst
title Puppy 1.0.6 @ hda6
root (hd0,5)
chainloader +1
title PCLinuxos 0.92 @ hda40
root (hd0,39)
chainloader +1
title Suse 10 @ hda43
root (hd0,42)
chainloader +1
title Foresight 0.93 @ hda47
root (hd0,46)
chainloader +1
title Klax 3.5 @ hda50
root (hd0,49)
chainloader +1
title Whax 3.0 @ hda55
root (hd0,54)
chainloader +1
title Troppix 1.2 @ hda56
root (hd0,55)
chainloader +1
title Slax 5.1.8 @ hda62
root (hd0,61)
chainloader +1
title Sam 2006-1 @ hdc26
root (hd1,25)
chainloader +1
title Kanotix 64 2005-4 @ hdc29
root (hd1,28)
chainloader +1
title Gentoo 2006.1 @ hdc40
root (hd1,39)
chainloader +1
title Underground 2.2 @ hdc42
root (hd1,41)
chainloader +1
title Ubuntu 7.04 @ hdc46
root (hd1,45)
chainloader +1
title Mandriva 2007 @ hdc48
root (hd1,47)
chainloader +1
title Ubuntu 6.06 @ hdc54
root (hd1,53)
chainloader +1
title Wolvix 1.0.5 @ hdc59
root (hd1,58)
chainloader +1
title Musix 0.39 @ sda3
root (hd3,2)
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
(3) Dos/Windows only menuWin.lst
color yellow/black yellow/light-gray
title You are now booting from hda3 data-only partition
boot
title Return to Master menu
root (hd0,2) #(hd0,2)
configfile /boot/grub/menu.lst
title DOS 6.22 (FAT16) @ hda1
root (hd0,0)
unhide (hd0,0)
makeactive
chainloader +1
title Win 3.11 @ hda2
root (hd0,1)
hide (hd0,0)
unhide (hd0,1)
makeactive
chainloader +1
title Vista @ hdc1
root (hd1,0)
hide (hd0,0)
hide (hd0,1)
hide (hd0,2)
unhide (hd1,0)
makeactive
map (hd1) (hd0)
map (hd0) (hd1)
chainloader +1
title Win98 @ hdc2
root (hd1,1)
hide (hd0,0)
hide (hd0,1)
hide (hd0,2)
hide (hd1,0)
unhide (hd1,1)
makeactive
map (hd1) (hd0)
map (hd0) (hd1)
chainloader +1
#title Vista @ hdc3 (Has a problem with hdd inserted)
# hdc3 currently not used
title XP Pro @ sda1
root (hd3,0)
hide (hd0,0)
hide (hd0,1)
hide (hd0,2)
hide (hd1,0)
hide (hd1,1)
hide (hd1,2)
unhide (hd3,0)
makeactive
map (hd3) (hd0)
map (hd0) (hd3)
chainloader +1
title Win 2k @ sdb1
root (hd4,0)
hide (hd0,0)
hide (hd0,1)
hide (hd0,2)
hide (hd1,0)
hide (hd1,1)
hide (hd1,2)
hide (hd2,0)
hide (hd2,13) # need to hide data partition
unhide (hd4,0)
hide (hd4,1)
makeactive
map (hd4) (hd0)
map (hd0) (hd4)
chainloader +1
title FreeDos @ sdb2
root (hd4,1)
hide (hd0,0)
hide (hd0,1)
hide (hd0,2)
hide (hd1,0)
hide (hd1,1)
hide (hd1,2)
hide (hd2,0)
hide (hd3,0)
unhide (hd4,1)
makeactive
map (hd4) (hd0)
map (hd0) (hd4)
chainloader +1
To be continued with the next post
saikee 09-19-2007, 06:54 PM Continue from previous post
(4) Linux only menulin.lst
color purple/black red/light-gray
title This is Linux only booting menu
boot
title Return to Master menu
root (hd0,2)
configfile /boot/grub/menu.lst
#hda3 is the data-only partition hosting Grub to boot all other systems
#hda4 is the extended partition
#hda5 is the common swap partition for all Linux
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
#Starting point of another hard disk----------------------------
#hdc4 is the extended partition
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
#Starting point of another hard disk----------------------------
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 (as a Live CD)
root (hd2,54)
chainloader +1
title Parted Magic 1.3 @ hdd56 (Live CD need choose hdd to boot)
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
# hdd63 is a data only partition
# Start of 4th disk (hd3)
title Xenoppix 3.0.3 @ sda2
root (hd3,1)
chainloader +1
title Musix 0.39 @ sda3
root (hd3,2)
chainloader +1
#sda4 is the extended partition
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
#sda14 is Fat32 partition holding personal data
title Slamd64 11 @ sda15
root (hd3,14)
chainloader +1
title System Rescue CD 2.1.6 @ sdb3
root (hd4,2)
chainloader +1
#sdb4 is the extended partition
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
The above menus show that partitions hdd10 to hdd48 have been arranged to be booted even though they are currently empty. As soon an operating system is installed in any one of them and has a boot loader installed in the root partition then the occupied partition will be bootable immediately.
(4) |