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.

3
  • "Any way to move to a real x64" - duplicate of askubuntu.com/questions/6176/… ?
    – fossfreedom
    Sep 18, 2012 at 9:26
  • yes might be, but the "real" question I have is, why didnt the installer install x64? How can I make sure that it really installs a x64 kernel?
    – Seppo
    Sep 18, 2012 at 9:33
  • 1
    An x64 kernel will look like this: Linux projects-ext 2.6.32-41-server #91-Ubuntu SMP Wed Jun 13 11:58:56 UTC 2012 x86_64 GNU/Linux Sep 18, 2012 at 10:29

2 Answers 2

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.

6
  • 1
    ... the latest virtualbox does have support for running 64bit ubuntu on 32bit host - I do this with my 11.10 32bit ubuntu running a 64bit 12.04 Ubuntu VM.
    – fossfreedom
    Sep 18, 2012 at 9:59
  • I double checked it: the version that I used is definetly ubuntu-12.04-server-amd64.iso
    – Seppo
    Sep 18, 2012 at 10:00
  • Apparently, the installer does not show which version it is about to install, is there a way to check it?
    – Seppo
    Sep 18, 2012 at 10:09
  • 1
    To my knowledge the amd64 server DVD (cdimages.ubuntu.com/ubuntu-server/precise/daily/current) should not provide a 32-bit kernel.
    – Takkat
    Sep 18, 2012 at 10:11
  • 1
    Just downloaded the image ubuntu-12.04.1-server-amd64.iso for 12.04.1 for you. This is the kernel provided: /pool/main/linux/linux-headers-3.2.0-29-generic_3.2.0-29.46_amd64.deb - can it be that somehow your .iso is bad (or was renamed)?
    – Takkat
    Sep 18, 2012 at 11:33
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.

1
  • Thank you for the clarification, though I know the difference and was wondering what the exact difference was regarding the kernel.
    – Seppo
    Sep 18, 2012 at 10:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .