4

My team is developing an application that needs to work on multi-platforms (linux [32/64], windows [32/64]), and involves 3D-rendering (OpenGL). We want to automate our tests, using a server, with an nvidia board.

We've tried to use Xen Server (Free Edition) to virtualize all platforms we want to test, but we weren't able to make the virtual servers to work with the nvidia board. Then we did some tests with VirtualBox, but it's 3D acceleration didn't work well for our purposes.

Now we are thinking about install all OS's in the server, as a multi-boot configuration. Does anyone know of some solution that allows remote control of this server, so we can remotely boot and reboot it, with the OS of our choice? In this way, it would be easy to automate the test process on all platforms.

I'm also open to other possible solutions.

Alexandre
  • 215
  • 4
  • 9

6 Answers6

2

If you use grub for your boot loader, when you're ready to switch to the next OS you can change the grub.conf to have a different default boot partition and then on reboot it will go to the next OS. On windows you would have to install the ext2 driver but that's not too hard.

Dan
  • 1,278
  • 18
  • 27
2

Using grub and modifying the default OS in grub.conf as @Dan suggests isn't a bad way to go, but I would instead suggest an IP KVM, which will allow you to remotely control your machine -- including the BIOS and bootloader operations -- from literally anywhere you have an internet connection.

If you go this route, I recommend setting a long automatic boot delay to compensate for the inevitable network latency, or perhaps even disabling the automatic boot altogether to require manual selection of the OS to load each and every time. It's not "automated" per se, but it is the ultimate in giving you control over booting up a remote system, and doesn't require that you make any changes to any of the underlying OSes.

Kromey
  • 3,641
  • 4
  • 25
  • 30
0

Other than Dan's suggestion (which is probably the best choice if you use GRUB) the only thing I can think of for "automating" a boot loader is to hook up a serial console to a separate machine & use Expect or something similar to interact with the boot loader.

The general assumption with boot loaders is either (a) nobody will be around, in which case the "default" OS should be started, or (b) someone will be at the console to pick the OS they want. It doesn't seem like an area that gets much attention from the automation folks...

voretaq7
  • 79,879
  • 17
  • 130
  • 214
0

With one machine this might be more trouble than it's worth, but if you had several devel machines that needed to boot up various configurations, you might consider using GRUB-PXE to load your boot configuration over the network. This would allow you to change the values of what was going to be booted in one location without a dependency on the box being booted and the file system accessible.

Caleb
  • 11,813
  • 4
  • 36
  • 49
0

On Windows, iReboot will do what you need, letting you select an OS to reboot your PC into (just the one time or repeatedly) from within the logged-in environment. You'll need to have the different operating systems configured in a multiboot controlled by BOOTMGR/BCD rather than GRUB/GRUB2, though.

Mahmoud Al-Qudsi
  • 559
  • 1
  • 6
  • 23
0

I know this is an old thread, but I found a solution to my problem.

I only use Win7 to run EasyBCD and iReboot. I also have multiple Linux variants and anything else I can find for testing. To remote control my machine I use Teamviewer.

I created a separate folder for every OS that I wanted to boot in the "boot" folder that contains the bcd file.

Then I use EasyBCD to change the default to each OS and save that bcd file to the corresponding folder.

When I am on a Linux variant or other OS besides Win7 I simply copy and paste the desired bcd file into the "boot" folder and overwrite the existing one.