I downloaded and installed Ubuntu from the official site. However, I don't know if I installed the 32-bit or 64-bit version.
In Windows 7 I could right click My Computer and it listed which version it was.
Is there an easy way to check in Ubuntu?
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It only takes a minute to sign up.
Sign up to join this communityI know at least 2 ways. Open a terminal(Ctrl+Alt+T) and type:
uname -a
Result for 32-bit Ubuntu:
Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 i686 i686 i386 GNU/Linux
whereas the 64-bit Ubuntu will show:
Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
Shorter version:
$ uname -i
x86_64
or
file /sbin/init
Result for 32-bit Ubuntu:
/sbin/init: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
whereas for the 64-bit version it would look like:
/sbin/init: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
Same for systems using systemd (16.04):
file /lib/systemd/systemd
Result for 64-bit:
/lib/systemd/systemd: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=54cc7ae53727d3ab67d7ff5d66620c0c589d62f9, stripped
multiarch
, ia32_libs
and, specially in your init
example, upstart
Mar 25, 2013 at 11:20
i686
neither of 32 or 64 output was displayed for me
i386
:) but your answer helped. thanks a lot
# file /sbin/init
-- /sbin/init: symbolic link to
upstart'` -- # file /sbin/upstart
-- /sbin/upstart: ELF 64-bit LSB shared object, x86-64...
Details
, and select "Details" iconAlternative to get the above screen:
I know the terminal responses are good but I guess this is the GUI answer. :)
System info
, and select System Info iconSystem Menu (top right corner, near the clock) -> System Settings -> Details
Mar 25, 2013 at 11:25
System
tab shows the architecture.
Jun 30, 2013 at 21:30
A very easy and short way is:
Open the Terminal, write the following and press Enter.
getconf LONG_BIT
The resulting number (in my case 64) is the answer.
Reference: How Do I Know if I’m Running 32-bit or 64-bit Linux?
Use the command:
uname -m
You will typically get:
i686
for 32-bit (or possibly i586 or i386), and:
x86_64
for 64-bit.
uname -mpi
gives all of the things mentioned in uname -a
, even though they are usually all the same...
Open terminal and try the arch
command. If its output is x86_64 then it's 64 bit. If it says i686, i386, etc. then it's 32 bit.
However, the best way to determine the architecture is to run the arch
command and google the output.
uname
and included in the same coreutils
package. So from Ubuntu 10.04 onwards both commands are available.
Mar 25, 2013 at 11:10
dpkg --print-architecture
command will display whether you have installed a 32 bit or 64 bit Ubuntu OS.
$ dpkg --print-architecture
amd64
$ dpkg --print-architecture
i386
`
Architecture Checker
The script is basically this:
#!/bin/bash
ARCH=$(uname -m)
if [ "$ARCH" = "i686" ]; then
zenity --info --title="Architecture Checker" --text="Your Architecture is 32-Bit"
fi
if [ "$ARCH" = "x86_64" ]; then
zenity --info --title="Architecture Checker" --text="Your Architecture is 64-Bit"
fi
This will need to be in a executable text file, and zenity
will need to be installed.
Go to the System Settings and under the System section, hit Details. You will get every detail including your OS, your processor as well as the fact whether the system is running a 64-bit or a 32-bit version.
Open the Ubuntu Software Center and search for lib32
. If that turns up any results, you are on a 64-bit install (the results are compatibility libraries for running 32-bit applications on a 64-bit install).
Not exactly a better answer, but at least it doesn't require a terminal... ;-)
Edit
I found an even easier one: open Help -> About Mozilla Firefox and you will see it right there... ;-)
At the bottom it displays the "user agent string", e.g. on my 64-bit system:
Mozilla/5.0 (X11; U; Linux x86_64; nl; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.10 (maverick) Firefox/3.6.12
or on my 32-bit system:
Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.10 (maverick) Firefox/3.6.12
x86_64
is 64-bit, i686
is 32-bit
(But this is still not the answer that should be there ;) )
lib32
is surely not a reliable way of detecting architecture.
Mar 25, 2013 at 11:27
The power button (top-most, extreme right) has an "About this Computer" option. :)
You should take in mind that you may have a 64 bit CPU while you install a 32 bit kernel. I.e. If your CPU is 64 it doesn't mean that your OS is 64, it depends on what you've installed.
man uname
-m, --machine
print the machine hardware name
-p, --processor
print the processor type or "unknown"
-i, --hardware-platform
print the hardware platform or "unknown"
so to get the hardware platform use uname -m
or uname -p
or uname -i
while to get the kernel type it's better to getconf LONG_BIT
command.
Check this SO question
As far as I can remember, it is possible to install x86_64 kernel on a 32-bit system. As a few wrote here, you should look what libraries you have/what packages you have installed on your system. So the safest way to see is to check if you have /lib64
and if it is a symlink to /lib
.
Another possible way is to check what packages you have downloaded in /var/cache/apt/archive
. If they contain _amd64.deb, it is a 64-bit system, that is, if you have installed packages and have not cleared your cache.
All of that can be done from Konqueror/Dolphin by just pointing and clicking or:
ls -la / |grep lib
Have a look at your Software Sources in Synaptic or Software Centre. If you haven't deleted your original source eg cdrom, it will (?) indicate the architecture. It's a GUI but it won't say '32bit' nor '64bit'.
For debian derived systems.
On 64bits systems :
$ dpkg-architecture -q DEB_BUILD_ARCH
amd64
On 32bits systems :
$ dpkg-architecture -q DEB_BUILD_ARCH
i386
To get reliable information about the OS, i.e. if the software installed and running on the OS is 32-bit or 64-bit, only two ways are recommended (using the command line). These are:
dpkg --print-architecture
and especially
getconf LONG_BIT
I am not sure what you call an OS being 32 bits.
To be specific, my kernel and desktop distribution is a 64 bits Debian/Sid, but I routinely use schroot
to run a deboostrap
-ed 32 bits Debian inside a chroot
-ed environment (for testing purposes).
Do you feel that my 32 bits environment should be called 32 bits (I believe so) or 64 bits (after all, it does run inside a 64 bits kernel). In that environment uname -m
says i686
and all libraries and executables and processes are 32 bits.
For practical purposes uname -m
should be enough. The file
command can tell you if an ELF executable is a 32 bits or a 64 bits one.
See the Linux specific personality(2) syscall (and also the uname(2) one).
And the hardware information about your processor is visible with e.g.
cat /proc/cpuinfo
its output is the same in my desktop 64 bits system and in my 32 bits schroot-ed environment.
chroot
example is pointless: it is similar to a Virtual Machine, so of course uname -m
will output i686
if you bootstrapped it with a 32-bit OS. But the "host" is still 64 bits, and uname -m
will say so if you run it outside the chroot environment
Mar 25, 2013 at 11:47
/proc/cpuinfo
is misleading: it shows the CPU capabilities, and not the actual installed (and running) OS architecture. Virtually all desktop CPUs sold in the last 5 years are 64-bit, but this has absolutely nothing to do with the question. And of course it reports the same in both scenarios, since your CPU hardware is the same, and it is capable of running both 32 and 64 bits OSes.
Mar 25, 2013 at 11:54
chroot
, you may run a purely 32bit system with a 64bit kernel. In these cases uname
will tell you the kernel architecture, 64bit, while other methods will tell you the userland architecture, 32bit, and it's not clear which of the two is "the" architecture.
uname -m
will output the kernel's architecture which is x86_64, not i686.)
dpkg --add-architecture amd64
and installed someamd64
packages in my 32 bit Ubuntu 16.04. Now I run 32 bit installation with 64 bit kernel without problem. So whiledpkg --print-architecture
printsi386
,uname -m
printsx86_64
. Refer to wiki.debian.org/Multiarch/HOWTO (it's a tricky process)