Wednesday, January 26, 2011

Control which os is booted on multi-boot system

I am setting up a server with multiple operating systems for the automatic testruns of my company's product. I'd like to be able to control with a script which OS boots up after a restart, so I could say for example "after the windows run, boot into linux".

I thought of using the windows bootloader for all OSes, because it should be easy to just change the default entry in C:\boot.ini to whichever system I want to boot.

Is this a feasible way of doing this? Are there better options?

EDIT:
We already discussed virtualization, and it's not really an option.

  • In Vista/2008/7 there is no boot.ini; it's a Boot Configuration Database (BCD), and I don't think there are any linux tools for it yet (not sure).

    I might be a whole lot easier to setup virtual machines to do the testing in parallel.

    mooware : I already suggested virtualization like Xen, but these are mainly performance tests, so parallel runs are out of the question, and most of us are also opposed to running performance tests on virtual machines.
    sinping : bootcfg is the command you are looking for on the Windows side.
    Chris S : `bcdedit` is the program for editing the BCD, but that's not going to help Linux or any other OS. I'm thinking Moriarty is right on this one.
    From Chris S
  • I would create a FAT16 /boot partition in Linux, and just use GRUB, it is more flexible and supports a lot more operating systems.

    Prof. Moriarty : And, as Chris S says, VMs may be a better choice.
    mooware : Sounds good, but how do I change the default OS from windows? Do I just have to change '/boot/grub/default'?
    Prof. Moriarty : You would just change the x in the line 'default x' in D:\grub\grub.conf to point to whatever entry you need. You would have /boot as D: in Windows.

0 comments:

Post a Comment