Method and system for selectively booting one of a plurality of operating systems contained on a mass storage device

A computer system includes a mass storage unit, the mass storage unit comprising:

TECHNICAL FIELD

The invention relates to computer systems and the partitioning of computer mass storage units such as hard disks especially when two operating systems are present on the disk.

CROSS-REFERENCE TO RELATED APPLICATIONS

In copending application Ser. No. 10/186,689, filed on Jul. 2, 2002, entitled SYSTEM AND METHOD TO ENABLE A LEGACY BIOS SYSTEM TO BOOT FROM A DISK THAT INCLUDES EFI GPT PARTITIONS, assigned to the assignee of the present invention and incorporated herein by this reference, there is described a method enabling a legacy bios system to boot from a disk that includes EFI GPT partitions. Although not limited thereto, the present invention employs such a method in at least one of its embodiments.

BACKGROUND ART

Referring toFIG. 1, the typically partitioned hard disk includes three main parts10,20and30. A first part10is dedicated to a master boot record (MBR). The master boot record is a small piece of code that is executed when a computer boots up. Typically, the MBR resides on the first sector of the hard disk of a computer. The MBR can also reside on removable media such as a floppy disk or CDROM which may be used to boot the computer. The MBR contains a partition table that is used to determine which partition to use for booting. The boot process transfers program control to the boot sector of that partition, which continues the boot process. Thus, the MBR includes a table of addresses and a set of instructions for loading a boot sector of an operating system.

A partition divides memory into isolated sections. In DOS systems, a disk can be partitioned, and each partition behaves like a separate disk drive. Partitioning is particularly useful if it is intended to run more than one operating system on a machine. For example, one partition might be reserved for Windows and another for UNIX.

A second part20of a legacy-partitioned hard disk is known as the end of track. This is unused except by some setup programs in WINDOWS OS. The reason for the end of track20is that the legacy partitioning scheme requires a partition to start on a track boundary, and the MBR10does not occupy the entire track. The end of track20occupies the remainder of the first track not occupied by the MBR10.

End-of track20forms a forbidden part in the sense that it is not listed in the table of addresses of the master boot record. A third part30stores an operating system, and in particular a boot sector of the operating system, which is listed in the table of addresses of the master boot record. The third part30includes a main active partition and up to three other partitions, whereby these ‘extended partitions’ may be further sub-partitioned.

It is known to use the forbidden part for locating some maintenance tools and also, to store a Globally Unique Identifier Extensible Firmware Interface GUID Partition Table (GUID-EFI-GPT), developed by INTEL, for locating a second table of addresses.

According to this boot scheme, firmware accesses the second table without reading the instructions contained in the master boot record.

When operating a computer, it is often necessary to use a supplementary operating system, particularly for maintenance tasks. For example it can be necessary to activate a lower level operating system such as DOS for reflashing the BIOS of a computer. A second operating system may be loaded by means of a command interpreter contained on removable media such as a floppy disk or a CDROM.

It has also been proposed to store a second operating system, in the partition corresponding to the main operating system, in the form of a series of files relating to the first operating system (OS). Those files are stored as other files in the partition of the first operating system.

However, such systems do not generally provide the full functionality of a supplementary operating system. Moreover, in such a situation, it is necessary to load or activate the first operating system in order to load the second one. Furthermore such systems can sometimes be unreliable in terms of hardware and software conflicts.

It is also known to provide software tools which can change the partition configuration of an initially single-OS-disk. These can be used to reduce the size of the partition dedicated to the main operating system, and create a fourth partition in the space initially contained in the third partition. The fourth partition may then be loaded with the second operating system. However such software tools can be complex and expensive. Further, they can be difficult to use and, given the relatively low-level at which their operation is generally carried out, the consequences of a mistake can render a disk unusable.

SUMMARY OF THE INVENTION

This invention provides a computer system including a mass storage unit, the mass storage unit comprising:a first portion which contains a first operating system;a second portion distinct from the first portion;
wherein:the second portion stores the value of an address comprised in the first portion and at which a boot record of the first operating system is located;the first portion has a sub-portion containing a second operating system;the second portion further stores the value of another address comprised in the first portion and which is the address of a boot record of the second operating system,
whereby the second operating system can be activated without the first operating system being active.

The invention also provides a mass storage unit for a computer system, the mass storage unit including:a first portion which contains a first operating system;a second portion distinct from the first portion;wherein:the second portion stores the value of an address located in the first portion and at which a boot record of the first operating system is located;the first portion has a sub-portion containing a second operating system,the second portion further stores the value of another address located in the first portion and which is the address of a boot record of the second operating system,whereby the second operating system can be activated without the first operating system being active.

Preferably the sub-portion is listed in the first operating system as only one file.

A sector is the smallest unit of memory that can be accessed on a disk. When a disk undergoes a low level format, it is divided it into tracks and sectors. Tracks are concentric circles around the disk and the sectors are segments within each circle. The operating system and disk drive keep tabs on where information is stored on the disk by noting its track and sector number. It is to be understood that a reference to sector can be replaced by another type of memory location group.

The definition of the term “partition” has been given in the background discussion above.

Referring toFIG. 2, the hard disk according to the preferred embodiment of the invention can be considered to be constituted by three main parts10,20and30in the same general manner as the known disk ofFIG. 1, i.e. a master boot sector partition10, an end-of-track or forbidden partition20, and an operating system partition30.

According to this embodiment of the invention, the third partition30also includes a second or supplementary operating system. This second operating system is represented inFIG. 2by a unique block32placed at the beginning of this partition30, adjacent the forbidden partition20.

This area of disk memory32is so illustrated to symbolize the fact that, in the present case, such a part32is preferably contiguous and unmovable in partition30.

The fact that part32is unmovable and contiguous allows the file system of the first operating system to ‘contain’ the secondary OS. Generally, most operating systems expect to have their ‘own’ partition which must be a contiguous block of disk space, and most operating systems have pointers to absolute locations on the disk, not just locations relative to such a partition.

The contiguous feature is ensured by the fact that the location of part32has been established by scanning the disk looking for a free contiguous block large enough for the second operating system. It is noted that the dimensions of the figures are schematic only and do not represent the true relative dimensions of disk space.

This part32of the second operating system is embedded in the partition30which is dedicated to the first operating system. This part32corresponds to a file conforming to and readable by the first operating system.

According to the exemplary embodiment, part32can be considered to be a partition since it is contiguous and immoveable and this partition is embedded in partition30as it is recognized as a file by the main operating system. The main operating system is Windows in the present preferred embodiment although with suitable modification, the invention may be applied in the context of other operating systems.

The “immoveable” characteristics of the secondary operating system file32are ensured by the fact that the secondary OS file attribute is set to “system” (s). The actual notation of the attribute may vary depending on the particular operating system. Such a declaration is made by setting the flag or attribute “system”. This prevents the first operating system from moving the file.

Apart from the fact that the file containing the second operating system may be immoveable and contiguously stored, this file has also the following features.

The file is preferably of hidden type as this reduces the chance of a user accidentally or intentionally deleting the file. Typical operating systems, which may constitute the main operating system, such as Windows, provide a “hidden” file flag or attribute (h).

Furthermore, the file is protected from modifications through the first operating system. To this end, the files attribute is set to include “read only” (r) as recognized by the first operating system. The flag “read only” prevents the first operating system from writing to, or over, this file.

Equivalent “system”, “hidden” and “read only” flags, attributes or equivalents are used by most common operating systems.

The “r”, “h”, “s” flags protect the subject file from deletion or modification and also from disk fragmenters. Defragmenters recognize such files by the fact that these files have, depending on the particular OS, three bits corresponding respectively to “r”, “h” and “s” flags set to active.

Furthermore, the file is preferably as close as possible to the beginning of the disk. This is because several operating systems do not support booting from a partition beginning after a given memory location threshold, such as 4 GB for example.

Embedded partition32itself includes a boot sector (not shown), i.e. a sector that is the first to be loaded into Random Access Memory when an OS is to be booted. The boot sector is generally the first sector of the partition.

The second operating system is associated with means for loading the second operating system at boot-up.

This arrangement allows the second operating system to be booted without the first one necessarily being active.

To this end, the part of the disk corresponding to partitions10and20stores the value of the address of the boot sector of this second operating system and also stores a set of instructions for loading this boot sector.

The boot sectors of both operating systems are thus referred to in the portion constituted by partitions10and20.

As is known in the prior art, the boot sector of the main operating system is referred to in the partition table of the master boot record10(legacy partition table).

A master boot record, as known in the prior art, is typically located in the first sector of the disk. This first sector is initially loaded in Random Access Memory when the computer is booted-up. A master boot record or master boot sector includes a set of instructions which controls the loading of other partitions at addresses contained in the partition table.

The boot sector of the second operating system is therefore, according to the present embodiment, not referred to in this ‘legacy’ partition table.

As the boot sector of the second operating system is referred to in the portion corresponding to partitions10and20, the partition tools will treat such a part32as a true partition.

Some repartitioning tools such as Partition Magic do not recognize that the legacy partition table refers to two boot sectors placed in partition30. Such addresses would be interpreted by the repartitioning tool as referring to overlapping partitions, which are not recognized by the tools.

According to the present embodiment, the second operating system is indirectly referred to in a second table of addresses, which is stored in the forbidden partition20.

It is known to refer to some sectors in a partition table contained in a GPT (global unique identifier partition table) sector, in the forbidden partition20. Specifically, the EFI-GPT scheme proposes to adopt firmware means for reading, at boot-up, a particular sector of the forbidden partition without previously reading the instructions from the master boot record.

The EFI-GPT scheme is such that large amounts of memory are placed in the forbidden partition20, in particular memory corresponding to an operating system. The partition table of the GPT scheme can comprise substantially more than four addresses, in comparison with the legacy partition table. According to the known GPT scheme, the table contained in the GPT sector does not specify addresses which are outside the forbidden partition20. Information regarding the standard GPT is well known in the art.

In other words, the GPT sector21is linked, in this case indirectly, to the second operating system. This will be described below. This feature allows EFI-GPT computers to access the second operating system with an EFI-BIOS without loading the master boot record10.

In other words, the GPT sector is linked, in this case indirectly, to the second operating system. This will be described below. This feature allows EFI-GPT computers to access the second operating system with an EFI-BIOS without loading the master boot record.

GPT-aware partitioning tools generally do not recognize that addresses located in partitions other than the forbidden partition can be specified in the partition table of the GPT sector21. Furthermore, some GPT-aware repartitioning tools conflict with the master boot record10and the GPT sector21referring to addresses which are both in partition30.

In the present case, the second table specifies an address of an intermediary sector22, located in forbidden partition20. This intermediary sector22specifies the true address of the boot sector of the second partition in part32. Intermediary sector22also includes a set of instructions for loading the boot sector of the second OS. Thus, in a sense, this intermediary sector22can be thought of as a relay sector which is used to allow the GPT system to access a sector which is outside of the area normally managed by the GPT.

The relay sector22includes a table having only one entry and some code for loading the boot sector of the second OS. The addresses which are read in the above-mentioned tables are disk memory addresses/locations. In particular, the relay22indicates the true location of the boot sector of the second OS.

In the present case, relay sector22contains a relay partition header which stores the name and the location of the embedded partition32. The relay partition22is itself renamed (in the descriptor entry in the GPT) with the same name as the boot sector of subpartition32. This way, the name of the second OS is visible in the GPT sector21.

The present disk is configured so that the user can choose either operating system. Furthermore, the disk can be accessed either by a computer according to the usual master boot record scheme or according to the new EFI-GPT scheme.

To this end, the effect is such that the master boot record10includes means which initiates a link to the partition table of the forbidden partition20. As master boot record10cannot refer, through its partition table, to some sectors of partition20(the forbidden partition) the present master boot record makes an indirect link to GPT21by initiating a link to this sector in its set of instructions.

In the present preferred embodiment, this custom set of instructions in the master boot record10does not analyze the partition table of the master boot record10.

The master boot record10stores a reduced set of instructions which only redirects to the more detailed code stored in a boot menu23in the forbidden partition20. This boot menu23code is able to analyze both partition tables.

The set of instructions contained in the master boot record10controls reading the boot menu sector23, which itself stores the value of the address of the GPT21and instructions for reading the partition table of GPT sector21.

In other words, the master boot record10makes a code link to the forbidden partition20and the known legacy partition table makes a normal direct link to the first OS. The legacy partition table refers to the boot sector of the main operating system.

The boot menu23here includes only instructions. Further, the boot menu is not used on EFI-GPT computers, which have their own boot menu built in ROM (Read Only Memory).

It is constituted by a sector23in forbidden partition20which can be accessed by non EFI-GPT computers having read the set of instruction standard computer.

At boot-up of a standard legacy scheme computer equipped with the present disk, master boot record10is first read. It then redirects, by its code, into boot menu23. Boot menu23stores a set of instructions for offering the user the choice between the two operating systems. If the user chooses the second OS, boot menu23controls reading of the corresponding sector specified in the table of addresses of the GPT sector21, i.e. the relay sector22. The relay sector22itself specifies the address of the boot sector of the second OS and stores instructions for loading it.

Alternatively, if the user selects to boot with the first operating system, the boot menu23, operating according to the instructions in the master boot record10, reads the legacy partition table and reads the boot sector specified in the legacy partition table, i.e. the boot sector of the main operating system.

As mentioned above, an EPI-GPT computer can boot both operating systems contained on the same disk, as the GPT sector21is processed directly by the boot menu built in ROM. The boot menu built in ROM then loads a sector specified either in the legacy partition table or in the partition table of GPT sector21. That is, it loads either the boot sector of the first OS, or via relay22, the OS chosen by the user. To this end, the boot menu23is able to read both partition tables.

In other words, the computer follows directly the instructions stored in the boot menu23and then follows the same steps as for booting the computer according to the master boot record10.

A disk or similar media in accordance with the invention is thus adapted to both schemes and adapted to offer the choice between two or more operating systems whatever the scheme is used as primary access to this disk.

Although the invention has been described by way of example and with reference to particular embodiments it is to be understood that modification and/or improvements may be made without departing from the scope of the appended claims.

Where in the foregoing description reference has been made to integers or elements having known equivalents, then such equivalents are herein incorporated as if individually set forth.