Wie überprüfe ich, ob ich ein 32-Bit- oder ein 64-Bit-Betriebssystem habe?


489

Ich habe Ubuntu von der offiziellen Seite heruntergeladen und installiert. Ich weiß jedoch nicht, ob ich die 32-Bit- oder die 64-Bit-Version installiert habe.

In Windows 7 konnte ich mit der rechten Maustaste auf Arbeitsplatz klicken und es wurde aufgelistet, welche Version es war.

Gibt es eine einfache Möglichkeit, in Ubuntu einzuchecken?






Installationsarchitektur und Kernelarchitektur sind zwei verschiedene Dinge. Zum Beispiel habe ich die Unterstützung von Debian Multiarch über implementiert dpkg --add-architecture amd64und einige amd64Pakete in meinem 32-Bit-Ubuntu 16.04 installiert . Jetzt starte ich die 32-Bit-Installation mit dem 64-Bit-Kernel ohne Probleme. Also, während dpkg --print-architecturedruckt i386, uname -mdruckt x86_64. Siehe wiki.debian.org/Multiarch/HOWTO (es ist ein schwieriger Prozess)
kenn

Antworten:


629

Ich kenne mindestens zwei Möglichkeiten. Öffne ein Terminal ( Ctrl+ Alt+ T) und tippe:

  1. uname -a

    Ergebnis für 32-Bit-Ubuntu:

    Linux discworld 2.6.38-8-generic # 42-Ubuntu SMP Mo Apr 11 03:31:50 UTC 2011 i686 i686 i386 GNU / Linux

    Während das 64-Bit-Ubuntu zeigen wird:

    Linux discworld 2.6.38-8-generic # 42-Ubuntu SMP Mo Apr 11 03:31:50 UTC 2011 x86_64 x86_64 x86_64 GNU / Linux

    Kürzere Version:

    $ uname -i
    x86_64
    

    oder

  2. file /sbin/init

    Ergebnis für 32-Bit-Ubuntu:

    / sbin / init: Gemeinsam genutztes ELF- 32-Bit- LSB-Objekt, Intel 80386 , Version 1 (SYSV), dynamisch verknüpft (verwendet gemeinsam genutzte Bibliotheken), für GNU / Linux 2.6.15, entfernt

    In der 64-Bit-Version würde dies wie folgt aussehen:

    / sbin / init: Freigegebenes ELF- 64-Bit- LSB-Objekt, x86-64 , Version 1 (SYSV), dynamisch verknüpft (verwendet gemeinsam genutzte Bibliotheken), für GNU / Linux 2.6.15, entfernt

    Gleiches gilt für Systeme mit systemd (16.04):

    file /lib/systemd/systemd

    Ergebnis für 64-Bit:

    / lib / systemd / systemd: Gemeinsam genutztes ELF- 64-Bit- LSB-Objekt, x86-64 , Version 1 (SYSV), dynamisch verknüpft, Interpreter /lib64/ld-linux-x86-64.so.2 für GNU / Linux 2.6. 32, BuildID [sha1] = 54cc7ae53727d3ab67d7ff5d66620c0c589d62f9, gestrippt

11
Methode 2, die darin besteht, den (binären) Inhalt einer allgemein verfügbaren ausführbaren Datei zu "schnüffeln", ist ziemlich indirekt und umständlich. Während es für die meisten Setups funktioniert, sollte das Vorhandensein einer ausführbaren 64-Bit-Datei kein zuverlässiger Weg sein, um die ausgeführte Betriebssystemarchitektur zu erkennen. Besonders, wenn Sie bedenken multiarch, ia32_libsund besonders in Ihrem initBeispielupstart
MestreLion

8
Sie haben wahrscheinlich recht, aber Methode 1 zeigte mir an, dass i686weder 32 noch 64 Ausgaben für mich angezeigt wurden
Aleks

6
@aleks das ist 32 Bit (siehe den hervorgehobenen Text: "i686 i686 i386" in der Antwort)
Rinzwind

Es ist 32 Bit, ich habe die zweite Methode verwendet, aber die erste hat mir nichts gezeigt, das so aussah i386:), aber Ihre Antwort hat geholfen.
Vielen

1
# file /sbin/init- /sbin/init: symbolic link to upstart'` - # file /sbin/upstart-/sbin/upstart: ELF 64-bit LSB shared object, x86-64...
Nakilon

142

Ubuntu 12.04+ mit Unity

  • Drücken Sie die Befehlstaste (Mac) oder die Fenstertaste.
  • Geben Sie ein Detailsund wählen Sie das Symbol "Details"
  • Lesen Sie das Feld "Betriebssystemtyp"
  • 64-Bit-Betriebssystem liest "64-Bit"

Bildbeschreibung hier eingeben

Alternative, um den obigen Bildschirm zu erhalten:

  • Klicke auf das Systemmenü (Zahnrad in der oberen rechten Ecke)
  • Klicken Sie auf "Über diesen Computer".

Ich weiß, dass die Terminalantworten gut sind, aber ich denke, dies ist die GUI-Antwort. :)

Ubuntu 11.04 mit Unity

  • Drücken Sie die Befehlstaste (Mac) oder die Fenstertaste.
  • Geben Sie ein System infound wählen Sie das Symbol Systeminfo
  • Lesen Sie das Feld "Betriebssystemtyp"
  • 64-Bit-Betriebssystem liest "64-Bit"

14
+1: Die GUI-Methode wird gegenüber Terminalbefehlen für Benutzer bevorzugt, die an Windows gewöhnt sind und speziell nach einer einfachen Methode gefragt werden.
MestreLion

1
Auch eine andere (GUI) Möglichkeit, um zum gleichen Bildschirm zu gelangen:System Menu (top right corner, near the clock) -> System Settings -> Details
MestreLion

Mit einem einfachen Weg ganz sicher im Hinterkopf: Bitte geben Sie Ihr GUI-Äquivalent an, wenn Sie einen älteren Ubuntus verwenden! Speziell für Lucid Lynx (da das LTS bis 2015 unterstützt wird und daher möglicherweise auf den Hand-Me-Down-Laptops der Leute läuft.)
JP

1
@JP: Für ältere Ubuntus-Versionen wie Lucid Lynx ist der Gnome- Systemmonitor die einfachste GUI-Methode, die ich kenne . Die SystemRegisterkarte zeigt die Architektur.
MestreLion

1
Das GUI-Fenster ist sehr schön, aber stellen Sie sich vor, Sie würden für eine Minute die Server-Edition ausführen, ohne dass die GUI installiert ist.
Chris

79

Ein sehr einfacher und kurzer Weg ist:

Öffnen Sie das Terminal, schreiben Sie Folgendes und drücken Sie Enter.

getconf LONG_BIT

Die resultierende Zahl (in meinem Fall 64) ist die Antwort.

terminal - getconf LONG_BIT


7
Auf meinem 32-Bit-System gibt dies auch die richtige Antwort. Von allen Befehlen, die in verschiedenen Antworten aufgeführt sind, ist die Ausgabe dieses Befehls am einfachsten.
Stephen Ostermiller

Ausnahme: $ getconf LONGBIT getconf: Nicht erkannte Variable `LONGBIT '
Auspex

1
Sie vermissen den Unterstrich @Auspex LONG_BIT
Michael

@Michael Damn, also war ich. Ich weiß nicht, wie ich das geschafft habe, und nachdem ich diese beiden Maschinen im letzten Monat auf 64-Bit aufgerüstet habe, geht es jetzt ziemlich zur Sache ;-) Trotzdem danke!
Auspex


27

Öffnen Sie das Terminal und versuchen Sie es mit dem archBefehl. Wenn seine Ausgabe x86_64 ist, dann ist es 64-Bit. Wenn dort i686, i386 usw. steht, dann sind es 32 Bit.

Die beste Methode zum Ermitteln der Architektur besteht jedoch darin, den archBefehl auszuführen und die Ausgabe zu googeln.


11
archist genau das gleiche wie uname -m(sogar in der Manpage angegeben). ;-)
htorque

Auf meinem Computer (Ubuntu 9.04) scheint der Befehl arch nicht zu existieren. Daher würde ich sagen, dass uname -m zuverlässiger ist.
Jonathan Sternberg

@ JonathanSternberg: Es wurde einige Monate später hinzugefügt, von denselben Autoren entwickelt unameund im selben coreutilsPaket enthalten. Ab Ubuntu 10.04 stehen also beide Befehle zur Verfügung.
MestreLion

21

dpkg --print-architecture Der Befehl zeigt an, ob Sie ein 32-Bit- oder ein 64-Bit-Ubuntu-Betriebssystem installiert haben.

Auf 64-Bit-Systemen

$ dpkg --print-architecture
amd64          

Auf 32-Bit-Systemen

$ dpkg --print-architecture
i386

`


6
Die einzige Methode, um ein 32-Bit-Betriebssystem, auf dem ein 64-Bit-Kernel ausgeführt wird, korrekt zu erkennen.
Dan Garthwaite

8

Architektur-Checker

Bildbeschreibung hier eingeben

Download-Link

  1. Lade es herunter
  2. Extrahiere es.
  3. Markieren Sie die Datei Architecture Checker.sh Executable und führen Sie sie aus.

Das Skript sieht im Grunde so aus:

#!/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

Dies muss sich in einer ausführbaren Textdatei befinden und zenitymuss installiert werden.


8
Müssen Sie diese 8-Zeilen-Datei wirklich herunterladen und extrahieren? Einfach hier in einen Codeblock schreiben.
Kiri

und wenn die ausgabe von uname -mnicht i686... nett ist zenity, könnte man das notify-sendallerdings gebrauchen .
Wilf

5

Gehen Sie zu den Systemeinstellungen und klicken Sie im Abschnitt System auf Details . Sie erhalten jedes Detail, einschließlich Ihres Betriebssystems, Ihres Prozessors sowie der Tatsache, ob auf dem System eine 64-Bit- oder eine 32-Bit-Version ausgeführt wird.


Das scheint wundervoll zu sein. Ich weiß aber nicht, wie ich zu den Systemeinstellungen gehen soll. (Übrigens) Ich benutze 12.4 MATE.
Papou

3

Öffnen Sie das Ubuntu Software Center und suchen Sie nach lib32. Wenn dies zu Ergebnissen führt, führen Sie eine 64-Bit-Installation durch (die Ergebnisse sind Kompatibilitätsbibliotheken zum Ausführen von 32-Bit-Anwendungen bei einer 64-Bit-Installation).

Nicht gerade eine bessere Antwort, aber es wird zumindest kein Terminal benötigt ... ;-)

Bearbeiten

Ich habe eine noch einfachere gefunden: öffne die Hilfe -> Über Mozilla Firefox und du wirst es gleich sehen ... ;-)

Unten wird die "User Agent-Zeichenfolge" angezeigt, z. B. auf meinem 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

oder auf meinem 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_64ist 64-Bit, i686ist 32-Bit

(Aber das ist immer noch nicht die Antwort, die da sein sollte;))


2
Reine GUI, klar, aber ziemlich fragil ... Pakete, deren Namen ( oder Beschreibungen ) enthalten, lib32sind sicherlich keine zuverlässige Methode zur Erkennung von Architektur.
MestreLion

2

Der Netzschalter (ganz oben rechts) verfügt über die Option "Über diesen Computer". :)


2
nicht am 12.04 LTS
törzsmókus

1

Soweit ich mich erinnern kann, ist es möglich, den x86_64-Kernel auf einem 32-Bit-System zu installieren. Wie einige hier geschrieben haben, sollten Sie sich ansehen, welche Bibliotheken Sie haben / welche Pakete Sie auf Ihrem System installiert haben. Am sichersten ist es also, zu überprüfen, ob Sie /lib64einen Symlink zu haben /lib.

Eine andere Möglichkeit besteht darin, zu überprüfen, in welchen Paketen Sie heruntergeladen haben /var/cache/apt/archive. Wenn sie _amd64.deb enthalten, handelt es sich um ein 64-Bit-System, dh wenn Sie Pakete installiert und Ihren Cache nicht geleert haben.

All dies kann in Konqueror / Dolphin durch Zeigen und Klicken oder durch:

ls -la / |grep lib

1

Beachten Sie, dass Sie möglicherweise eine 64-Bit-CPU haben, während Sie einen 32-Bit-Kernel installieren. Dh wenn Ihre CPU 64 ist, bedeutet dies nicht, dass Ihr Betriebssystem 64 ist, es hängt davon ab, was Sie installiert haben.

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"

Um die Hardware-Plattform zu nutzen uname -moder uname -poder uname -iwährenddessen den Kerneltyp zu ermitteln, ist es besser, getconf LONG_BITBefehle zu erteilen.

Überprüfen Sie diese SO- Frage


Für die Frage eigentlich nicht relevant: Er hat eine 64-Bit-CPU und möchte wissen, welches Betriebssystem installiert wurde.
Auspex

0

Schauen Sie sich Ihre Softwarequellen in Synaptic oder im Software Center an. Wenn Sie Ihre Originalquelle, z. B. CD-ROM, nicht gelöscht haben, zeigt sie die Architektur an (?). Es ist eine GUI, aber es wird weder '32bit' noch '64bit' angezeigt.


-1

Ich bin nicht sicher, wie Sie ein Betriebssystem mit 32 Bit nennen.

Um genau zu sein, meine Kernel- und Desktop-Distribution ist ein 64-Bit-Debian / Sid, aber ich verwende routinemäßig schrootein deboostrap-ed 32-Bit-Debian in einer chroot-ed-Umgebung (zu Testzwecken).

Glauben Sie, dass meine 32-Bit-Umgebung 32-Bit (glaube ich) oder 64-Bit (schließlich läuft sie in einem 64-Bit-Kernel) heißen sollte? In dieser Umgebung uname -msagt i686und alle Bibliotheken und ausführbaren Dateien und Prozesse sind 32 Bit.

Für praktische Zwecke uname -msollte das ausreichen. Der fileBefehl kann Ihnen sagen, ob es sich bei einer ELF-Programmdatei um eine 32-Bit- oder eine 64-Bit-Datei handelt.

Siehe den Linux-spezifischen Personality (2) -Syscall (und auch den Uname (2) -Syscall ).

Und die Hardwareinformationen über Ihren Prozessor sind sichtbar mit z

 cat /proc/cpuinfo

Die Ausgabe ist in meinem 64-Bit-Desktop-System und in meiner 32-Bit-Umgebung mit Root-Zugriff identisch.


4
-1: Sie haben eine Menge unnötiger Verwirrung hinzugefügt, ohne nützliche neue Informationen hinzuzufügen . Warum sagen Sie, dass Sie "nicht sicher sind, wie Sie ein Betriebssystem mit 32 Bit nennen"? Das ist eine ziemlich einfache Frage, die Sie kennen . Ihr chrootBeispiel ist sinnlos: Es ähnelt einer virtuellen Maschine und wird natürlich uname -mausgegeben, i686wenn Sie es mit einem 32-Bit-Betriebssystem booten. Aber der "Host" ist immer noch 64-Bit und uname -mwird es auch sagen, wenn Sie ihn außerhalb der Chroot-Umgebung
ausführen

2
Es /proc/cpuinfoist auch irreführend: Es zeigt die CPU- Fähigkeiten und nicht die tatsächlich installierte (und ausgeführte) Betriebssystemarchitektur. Praktisch alle in den letzten 5 Jahren verkauften Desktop-CPUs sind 64-Bit-CPUs, aber das hat absolut nichts mit der Frage zu tun. Natürlich wird in beiden Szenarien dasselbe gemeldet, da die CPU- Hardware identisch ist und sowohl 32- als auch 64-Bit-Betriebssysteme ausgeführt werden können.
MestreLion

@MestreLion, Was Basile zu sagen versucht, ist, dass Sie in einigen Fällen, zum Beispiel bei Verwendung von LXC oder chroot, ein reines 32-Bit-System mit einem 64-Bit-Kernel ausführen können. In diesen Fällen unamewird die 64-Bit-Kernelarchitektur angezeigt, während andere Methoden die 32-Bit-Userland-Architektur anzeigen. Es ist nicht klar, welche der beiden Architekturen "die" ist.
Joni

@ Joni: Ok, ich verstehe. Aber das ist ein extrem Eckfall, und sicherlich nicht der Fall des OP.
MestreLion

Wahrscheinlich ist es nicht der Fall des OP, ich wollte nur den Punkt klarstellen, den Basile versuchte zu machen (Es sieht auch so aus, als ob meine frühere Bearbeitung zur Korrektur der Antwort abgelehnt wurde). In dieser Umgebung uname -mwird die Architektur des Kernels ausgegeben, die x86_64 ist, nicht i686. )
Joni
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.