How to determine whether I run a 32bit or 64bit Ubuntu install

Solution 1:

Did you try uname -m ?

It seems like the uname -m actually gives

  • x86_64 when it is an kernel 64 bits
  • i686 for 32 bits kernel

Otherwise, not for the Linux kernel, but for the CPU, you type:

cat /proc/cpuinfo

or:

grep flags /proc/cpuinfo

Under "flags" parameter, you will see various values. Among them, one is named "tm(transparent mode)" or "rm(real mode)" or "lm(long mode)"

  • rm means: 16 bit processor
  • tm means: 32 bit processor
  • lm means: 64 bit processor

Note: you can have a 64-bit CPU with a 32-bit kernel installed"

Source.

Solution 2:

Usually when you want to find this out, you want to find out if the applications are running as 32-bit or 64-bit, not what architecture the kernel was compiled for. As sYnfo points out, you can have 64-bit cpu with 32-bit kernel. But more importantly you can have a 64-bit kernel running 32-bit userspace. In this case the command uname -m will (inaccurately) report 64-bits, because uname only reports kernel architecture. In Ubuntu and other Debian derivatives, you can find out your bitness by running:

dpkg --print-architecture

For most cases, you'll want to use this command instead of uname.