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

2 Answers 2


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


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"



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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.