How to install and boot 145 operating systems in a PC


Page 1 of 12 1234511 ... LastLast
Results 1 to 15 of 177

Thread: How to install and boot 145 operating systems in a PC

  1. #1
    Join Date
    Jun 2004
    Location
    Newcastle upon Tyne
    Posts
    2,978

    How to install and boot 145 operating systems in a PC

    --- Updated 4 Jun 10 - The gpt partitioning scheme can have 128 partitions inside. No good for the 32-bit MS Windows but alright for Linux with Grub2. More details available here.

    --- Updated 8 Apr 09, Good news! kernel 2.6.28 and newer have finally decided to support large partitions. A report is here. I have managed to run a Ubuntu from sda130! Currently I am trying a 1.5 TB hard disk with 60 partitions and will report the progress later. The new kernel 2.6.28 is not universally available in every Linux and many teething troubles will have to overcome before a user can install a large number of operating systems into a hard disk but it is coming this way.

    --- 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.

    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.
    Code:
    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
    Last edited by saikee; 06-04-2010 at 08:19 PM.
    Linux user started Jun 2004 - No. 361921
    Using a Linux live CD to clone XP
    To install Linux and keep Windows MBR untouched
    Adding extra Linux & Doing it in a lazy way
    A Grub menu booting 100+ systems & A "Howto" to install and boot 145 systems
    Just cloning tips Just booting tips A collection of booting tips

    Judge asked Linux "You are being charged murdering Windoze by stabbing its heart with a weapon, what was it?" Replied Linux "A Live CD"

  2. #2
    Join Date
    Jun 2004
    Location
    Newcastle upon Tyne
    Posts
    2,978
    Here is the Grub menu.lst that boots 145 systems
    Code:
    #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
    Last edited by saikee; 01-01-2007 at 04:45 PM.
    Linux user started Jun 2004 - No. 361921
    Using a Linux live CD to clone XP
    To install Linux and keep Windows MBR untouched
    Adding extra Linux & Doing it in a lazy way
    A Grub menu booting 100+ systems & A "Howto" to install and boot 145 systems
    Just cloning tips Just booting tips A collection of booting tips

    Judge asked Linux "You are being charged murdering Windoze by stabbing its heart with a weapon, what was it?" Replied Linux "A Live CD"

  3. #3
    Join Date
    Jun 2004
    Location
    Newcastle upon Tyne
    Posts
    2,978
    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)

    Latest 8 Apr 09 - Kernel 2.6.28 and later have decided to breach the maximum 15 partitions per hard disk. The number of partitioins is currently open-ended. This is because the number of logical partition in a hard disk, since Dos era, is also bottomless. However the individual software has not yet been updated to cope with the new changes. The 130+ partitions have not been rejected by MS systems and Linux with the new kernel. More information will be offered later.

    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
    Code:
    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
    Code:
    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
    Code:
    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
    Code:
    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
    Code:
    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
    Code:
    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
    Code:
    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
    Code:
    fdisk /mbr
    Boot up a Grub floppy and hide the first two partitions and then check disk geometry
    Code:
    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
    Code:
    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
    Code:
    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.
    Last edited by saikee; 04-08-2009 at 04:43 PM.
    Linux user started Jun 2004 - No. 361921
    Using a Linux live CD to clone XP
    To install Linux and keep Windows MBR untouched
    Adding extra Linux & Doing it in a lazy way
    A Grub menu booting 100+ systems & A "Howto" to install and boot 145 systems
    Just cloning tips Just booting tips A collection of booting tips

    Judge asked Linux "You are being charged murdering Windoze by stabbing its heart with a weapon, what was it?" Replied Linux "A Live CD"

  4. #4
    Join Date
    Jun 2004
    Location
    Newcastle upon Tyne
    Posts
    2,978
    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
    Code:
    grub-install /dev/hda60
    Whereas booting up Grub from a floppy the same task would invariably yield success by commands
    Code:
    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. 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 and follow the advice by Exodus2001 and bwkaz.
    Last edited by saikee; 01-02-2007 at 05:01 PM.
    Linux user started Jun 2004 - No. 361921
    Using a Linux live CD to clone XP
    To install Linux and keep Windows MBR untouched
    Adding extra Linux & Doing it in a lazy way
    A Grub menu booting 100+ systems & A "Howto" to install and boot 145 systems
    Just cloning tips Just booting tips A collection of booting tips

    Judge asked Linux "You are being charged murdering Windoze by stabbing its heart with a weapon, what was it?" Replied Linux "A Live CD"

  5. #5
    Join Date
    Sep 2007
    Posts
    1
    I registered a membership at this forum for the sole purpose of asking...


    why?

  6. #6
    Join Date
    Jun 2004
    Location
    Newcastle upon Tyne
    Posts
    2,978
    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.
    Last edited by saikee; 09-14-2007 at 04:48 AM.
    Linux user started Jun 2004 - No. 361921
    Using a Linux live CD to clone XP
    To install Linux and keep Windows MBR untouched
    Adding extra Linux & Doing it in a lazy way
    A Grub menu booting 100+ systems & A "Howto" to install and boot 145 systems
    Just cloning tips Just booting tips A collection of booting tips

    Judge asked Linux "You are being charged murdering Windoze by stabbing its heart with a weapon, what was it?" Replied Linux "A Live CD"

  7. #7
    Join Date
    Sep 2007
    Posts
    1
    It's cool man!
    Would be great if you can show off some pics
    Or better make some videos and YouTube
    You'll be a penguin hero in no time!

  8. #8
    Join Date
    Jun 2004
    Location
    Newcastle upon Tyne
    Posts
    2,978
    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.
    Linux user started Jun 2004 - No. 361921
    Using a Linux live CD to clone XP
    To install Linux and keep Windows MBR untouched
    Adding extra Linux & Doing it in a lazy way
    A Grub menu booting 100+ systems & A "Howto" to install and boot 145 systems
    Just cloning tips Just booting tips A collection of booting tips

    Judge asked Linux "You are being charged murdering Windoze by stabbing its heart with a weapon, what was it?" Replied Linux "A Live CD"

  9. #9
    Join Date
    Sep 2007
    Location
    in a high-tech dumpster
    Posts
    3

    Wow!

    Holy mackarel you're an OS god!
    Last edited by Kaliatri; 05-13-2008 at 04:13 PM. Reason: bolded text
    Words of Wisdom
    • If you need more than 3 levels of indentation, you're screwed anyway, and should fix your program.
    • Some people have told me they don't think a fat penguin really embodies the grace of Linux, which just tells me they have never seen an angry penguin charging at them in excess of 100mph. They'd be a lot more careful about what they say if they had.

    Watch TV Online

  10. #10
    Join Date
    Jun 2004
    Location
    Newcastle upon Tyne
    Posts
    2,978
    Kaliatri,

    Welcome to JustLinux.
    Linux user started Jun 2004 - No. 361921
    Using a Linux live CD to clone XP
    To install Linux and keep Windows MBR untouched
    Adding extra Linux & Doing it in a lazy way
    A Grub menu booting 100+ systems & A "Howto" to install and boot 145 systems
    Just cloning tips Just booting tips A collection of booting tips

    Judge asked Linux "You are being charged murdering Windoze by stabbing its heart with a weapon, what was it?" Replied Linux "A Live CD"

  11. #11
    Join Date
    Sep 2007
    Location
    in a high-tech dumpster
    Posts
    3

    thx

    Thanks, I came here from Digg - that's amazing, although sorta pointless, but still amazing.
    Words of Wisdom
    • If you need more than 3 levels of indentation, you're screwed anyway, and should fix your program.
    • Some people have told me they don't think a fat penguin really embodies the grace of Linux, which just tells me they have never seen an angry penguin charging at them in excess of 100mph. They'd be a lot more careful about what they say if they had.

    Watch TV Online

  12. #12
    Join Date
    Jun 2004
    Location
    Newcastle upon Tyne
    Posts
    2,978
    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.
    Linux user started Jun 2004 - No. 361921
    Using a Linux live CD to clone XP
    To install Linux and keep Windows MBR untouched
    Adding extra Linux & Doing it in a lazy way
    A Grub menu booting 100+ systems & A "Howto" to install and boot 145 systems
    Just cloning tips Just booting tips A collection of booting tips

    Judge asked Linux "You are being charged murdering Windoze by stabbing its heart with a weapon, what was it?" Replied Linux "A Live CD"

  13. #13
    Join Date
    Sep 2007
    Posts
    12
    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).

  14. #14
    Join Date
    Jun 2004
    Location
    Newcastle upon Tyne
    Posts
    2,978
    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. 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!
    Last edited by saikee; 09-15-2007 at 06:26 AM.
    Linux user started Jun 2004 - No. 361921
    Using a Linux live CD to clone XP
    To install Linux and keep Windows MBR untouched
    Adding extra Linux & Doing it in a lazy way
    A Grub menu booting 100+ systems & A "Howto" to install and boot 145 systems
    Just cloning tips Just booting tips A collection of booting tips

    Judge asked Linux "You are being charged murdering Windoze by stabbing its heart with a weapon, what was it?" Replied Linux "A Live CD"

  15. #15
    Join Date
    Sep 2007
    Posts
    12
    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.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •