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
  • "Any way to move to a real x64" - duplicate of http://askubuntu.com/questions/6176/how-do-i-upgrade-from-x86-to-x64-without-losing-settings?rq=1 ? – fossfreedom Sep 18 '12 at 09: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 '12 at 09: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 – Gerald Schneider Sep 18 '12 at 10:29

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
  • 142,284
  • 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 '12 at 09:59
  • I double checked it: the version that I used is definetly ubuntu-12.04-server-amd64.iso – Seppo Sep 18 '12 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 '12 at 10:09
  • 1
    To my knowledge the amd64 server DVD (http://cdimages.ubuntu.com/ubuntu-server/precise/daily/current/) should not provide a 32-bit kernel. – Takkat Sep 18 '12 at 10:11
  • This is weird - I checked the image that I downloaded from the official download page. I definetly checked "64 bit" back then and ended up with a file named: ubuntu-12.04-server-amd64.iso. I extracted the image and found all packages named i386 – Seppo Sep 18 '12 at 10:32
  • 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 '12 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.

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