1

Okay, so heres my problem. I recently started migrating several services to individual VMs on my box, using VirtualBox 4.1.

I created a new VirtualBox VM with guest type "Ubuntu (64 Bit)". I've already done this before and it worked like a charm. I then installed Ubuntu server (12.04) from the exact same dvd image. All the time I thought that it should have installed x64.

I already put a few hours work into the new VM, migrating the webserver and mail system etc. Today I tried installing a x64 piece of software and it suddenly told me that it needed x64 and I had only i686.

I checked uname -a and this is what it gave me:

Linux hostname 3.2.0-29-generic-pae #46-Ubuntu SMP Fri Jul 27 17:25:43 UTC 2012 i686 i686 i386 GNU/Linux

Any guesses what went wrong? All the time I was thinking I had a x64 system.

Any way to move to a "real" x64?

I have a second VM on this host which is running x64 just fine ..

P.S.: grep --color=always -iw lm /proc/cpuinfo returns lm among the flags.

Seppo
  • 11
  • 1
  • 2

2 Answers2

3

It is not the Virtual Box software that decides which kernel architecture to install - it is the Ubuntu architecture version we downloaded. There is a box "Choose your flavour" to change from 64-bit to 32-bit on the official download page.

enter image description here

To be able to install a 64-bit OS we have to tell Virtual Box to emulate a 64-bit capable machine (which would be possible even on a 32-bit host OS when the CPU supports this). Of course we would then be able to install 32-bit Ubuntu on that 64-bit virtual machine (like in real life, and that is what you probably did) but we would not be able to install 64-bit Ubuntu on a 32-bit virtual machine.

Takkat
  • 144,580
0

To answer the difference between i686 and x64:

x64 specifies the architecture (64bit) while i686 specifies the processor generation. The "older" among us might remember the 80486 CPU by Intel, which was followed by the 80586 CPU which Intel called "Pentium" on the consumer market.

i686 specifies that this software will not run on 486 and 386 CPUs but only on Pentiums successors (and compatible, like AMD), most probably because it was compiled to use cpu flags these older processors lack. They still can be 32bit CPUs.

I guess this Wikipedia page is a good start for details.