Come posso verificare se ho un sistema operativo a 32 o 64 bit?


489

Ho scaricato e installato Ubuntu dal sito ufficiale. Tuttavia, non so se ho installato la versione a 32 o 64 bit.

In Windows 7 ho potuto fare clic con il pulsante destro del mouse su Risorse del computer ed elencava la versione in cui si trovava.

C'è un modo semplice per controllare in Ubuntu?






L'architettura di installazione e l'architettura del kernel sono due cose diverse. Ad esempio ho implementato il supporto debian multiarch tramite dpkg --add-architecture amd64e installato alcuni amd64pacchetti nel mio Ubuntu 16.04 a 32 bit. Ora eseguo l'installazione a 32 bit con kernel a 64 bit senza problemi. Quindi, mentre dpkg --print-architecturestampe i386, uname -mstampe x86_64. Fare riferimento a wiki.debian.org/Multiarch/HOWTO (si tratta di un processo difficile)
Kenn

Risposte:


629

Conosco almeno 2 modi. Apri un terminale ( Ctrl+ Alt+ T) e digita:

  1. uname -a

    Risultato per Ubuntu a 32 bit:

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

    mentre Ubuntu a 64 bit mostrerà:

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

    Versione più corta:

    $ uname -i
    x86_64
    

    o

  2. file /sbin/init

    Risultato per Ubuntu a 32 bit:

    / sbin / init: oggetto condiviso ELF a 32 bit LSB, Intel 80386 , versione 1 (SYSV), collegato dinamicamente (usa librerie condivise), per GNU / Linux 2.6.15, rimosso

    mentre per la versione a 64 bit sarebbe simile a:

    / sbin / init: oggetto condiviso ELF a 64 bit LSB, x86-64 , versione 1 (SYSV), collegato dinamicamente (usa librerie condivise), per GNU / Linux 2.6.15, rimosso

    Lo stesso vale per i sistemi che utilizzano systemd (16.04):

    file /lib/systemd/systemd

    Risultato per 64 bit:

    / lib / systemd / systemd: oggetto condiviso ELF a 64 bit LSB, x86-64 , versione 1 (SYSV), collegato dinamicamente, interprete /lib64/ld-linux-x86-64.so.2, per GNU / Linux 2.6. 32, BuildID [sha1] = 54cc7ae53727d3ab67d7ff5d66620c0c589d62f9, rimosso

11
Il metodo 2, che consiste nel "sniffare" il contenuto (binario) di un eseguibile ampiamente disponibile, è piuttosto indiretto e imbarazzante. Mentre funziona per la maggior parte delle configurazioni, la semplice presenza di un eseguibile a 64 bit non dovrebbe essere un modo affidabile per rilevare l' architettura del sistema operativo in esecuzione . Soprattutto se si considera multiarch, ia32_libse, specialmente nel tuo initesempio,upstart
MestreLion

8
Probabilmente hai ragione, ma il Metodo 1 mi ha mostrato che i686nessuno dei 32 o 64 output è stato visualizzato per me
Aleks

6
@aleks a 32 bit (vedere il testo evidenziato: `i686 i686 i386` nella risposta)
Rinzwind

è a 32 bit, ho usato il secondo metodo, ma il primo non mi ha mostrato nulla di simile i386:) ma la tua risposta mi ha aiutato. grazie mille
Aleks

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+ con Unity

  • Premi Comando (mac) o il tasto Finestra.
  • Digita Detailse seleziona l'icona "Dettagli"
  • Leggi il campo "Tipo di sistema operativo"
  • Il sistema operativo a 64 bit leggerà "64 bit"

inserisci qui la descrizione dell'immagine

Alternativa per ottenere la schermata sopra:

  • fai clic su Menu Sistema (ingranaggio nell'angolo in alto a destra)
  • fai clic su "Informazioni su questo computer"

So che le risposte del terminale sono buone ma immagino che questa sia la risposta della GUI. :)

Ubuntu 11.04 con Unity

  • Premi Comando (mac) o il tasto Finestra.
  • Digitare System infoe selezionare l'icona Informazioni di sistema
  • Leggi il campo "Tipo di sistema operativo"
  • Il sistema operativo a 64 bit leggerà "64 bit"

14
+1: il modo GUI è preferito rispetto ai comandi del terminale per un utente che è abituato a Windows e specificamente richiesto per un modo semplice .
MestreLion,

1
Inoltre, un altro modo (GUI) per arrivare alla stessa schermata:System Menu (top right corner, near the clock) -> System Settings -> Details
MestreLion

Con un modo semplice sicuramente in mente: per favore, chiunque esegua Ubuntus più vecchio, fornisce la tua equivalente GUI! Soprattutto per Lucid Lynx (dato che l'LTS è supportato fino al 2015 e quindi potrebbe essere in esecuzione sui laptop hand-me-down delle persone.)
JP

1
@JP: Per Ubuntus più vecchio, come Lucid Lynx, il modo più semplice di interfaccia grafica che conosco è il monitor di sistema di Gnome . La sua Systemscheda mostra l'architettura.
MestreLion,

1
La finestra della GUI è bella, ma immagini se lo farai per un minuto se stai eseguendo l'edizione del server senza la GUI installata?
chris,

79

Un modo molto semplice e breve è:

Apri il Terminale, scrivi quanto segue e premi Enter.

getconf LONG_BIT

Il numero risultante (nel mio caso 64) è la risposta.

terminal - getconf LONG_BIT


7
Sul mio sistema a 32 bit, questo dà anche la risposta corretta. Di tutti i comandi elencati in varie risposte, l'output di questo è il più semplice.
Stephen Ostermiller,

Tranne: $ getconf LONGBIT getconf: variabile non riconosciuta `LONGBIT '
Auspex

1
Ti manca il carattere di sottolineatura @Auspex LONG_BIT
Michael,

@Michael Damn, così ero. Non so come ci sono riuscito, e dopo aver aggiornato quelle due macchine a 64 bit nell'ultimo mese, è praticamente discutibile adesso ;-) Grazie comunque!
Auspex,


27

Apri il terminale e prova il archcomando. Se il suo output è x86_64, allora è a 64 bit. Se dice i686, i386, ecc., Allora è a 32 bit.

Tuttavia, il modo migliore per determinare l'architettura è eseguire il archcomando e google l'output.


11
archè lo stesso di uname -m(anche indicato nella manpage). ;-)
htorque

Sul mio computer (Ubuntu 9.04), il comando arch non sembra esistere. Quindi direi che uname -m è più affidabile.
Jonathan Sternberg,

@JonathanSternberg: è stato aggiunto alcuni mesi dopo, sviluppato dagli stessi autori unamee incluso nello stesso coreutilspacchetto. Quindi da Ubuntu 10.04 in poi sono disponibili entrambi i comandi.
MestreLion,

21

dpkg --print-architecture Il comando mostrerà se hai installato un sistema operativo Ubuntu a 32 bit o 64 bit.

Su sistemi a 64 bit

$ dpkg --print-architecture
amd64          

Su sistemi a 32 bit

$ dpkg --print-architecture
i386

`


6
L'unico metodo finora per rilevare correttamente un sistema operativo a 32 bit che esegue un kernel a 64 bit.
Dan Garthwaite,

8

Controllo dell'architettura

inserisci qui la descrizione dell'immagine

Link per scaricare

  1. Scaricalo
  2. Estrai.
  3. Contrassegnare il file Architecture Checker.sh eseguibile ed eseguirlo.

Lo script è sostanzialmente questo:

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

Questo dovrà essere in un file di testo eseguibile e zenitydovrà essere installato.


8
Sinceramente hai bisogno di scaricare ed estrarre quel file di 8 righe? Basta inserirlo in un blocco di codice qui.
Kiri,

e quando l'output di uname -mnon è i686... un buon uso di zenity, potrebbe usare notify-sendperò.
Wilf,

5

Vai alle Impostazioni di sistema e nella sezione Sistema , fai clic su Dettagli . Otterrai ogni dettaglio tra cui il tuo sistema operativo, il tuo processore e il fatto che il sistema stia eseguendo una versione a 64 o 32 bit.


Sembra meraviglioso. Ma non so come "Vai alle impostazioni di sistema". (A proposito) Sto usando 12.4 MATE.
Papou,

3

Apri Ubuntu Software Center e cerca lib32. Se ciò porta a risultati, sei su un'installazione a 64 bit (i risultati sono librerie di compatibilità per l'esecuzione di applicazioni a 32 bit su un'installazione a 64 bit).

Non esattamente una risposta migliore, ma almeno non richiede un terminale ... ;-)

modificare

Ne ho trovato uno ancora più semplice: apri Aiuto -> Informazioni su Mozilla Firefox e lo vedrai proprio lì ... ;-)

In fondo visualizza la "stringa agente utente", ad esempio sul mio sistema a 64 bit:

Mozilla/5.0 (X11; U; Linux x86_64; nl; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.10 (maverick) Firefox/3.6.12

o sul mio sistema a 32 bit:

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è a 64 bit, i686è a 32 bit

(Ma questa non è ancora la risposta che dovrebbe essere lì;))


2
GUI puro, certo, ma piuttosto fragile ... pacchetti i cui nomi ( o le descrizioni ) contengono lib32è sicuramente non è un modo affidabile per rilevare l'architettura.
MestreLion,

2

Il pulsante di accensione (in alto, all'estrema destra) ha un'opzione "Informazioni su questo computer". :)


2
non il 12.04 LTS
törzsmókus

1

Per quanto posso ricordare, è possibile installare il kernel x86_64 su un sistema a 32 bit. Come alcuni hanno scritto qui, dovresti guardare quali librerie hai / quali pacchetti hai installato sul tuo sistema. Quindi il modo più sicuro per vedere è controllare se hai /lib64e se è un link simbolico a /lib.

Un altro modo possibile è controllare quali pacchetti sono stati scaricati /var/cache/apt/archive. Se contengono _amd64.deb, si tratta di un sistema a 64 bit, ovvero se hai installato pacchetti e non hai cancellato la cache.

Tutto ciò può essere fatto da Konqueror / Dolphin semplicemente puntando e facendo clic o:

ls -la / |grep lib

1

Dovresti tenere presente che potresti avere una CPU a 64 bit mentre installi un kernel a 32 bit. Vale a dire se la tua CPU è 64 non significa che il tuo sistema operativo sia 64, dipende da cosa hai installato.

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"

quindi per ottenere l'uso della piattaforma hardware uname -mo uname -po uname -imentre per ottenere il tipo di kernel è meglio getconf LONG_BITcomandare.

Controlla questa domanda SO


Non pertinente alla domanda: ha una CPU a 64 bit e vuole sapere quale sistema operativo è stato installato.
Auspex,

0

Dai un'occhiata alle tue fonti software in Synaptic o Software Center. Se non hai eliminato la tua fonte originale, ad esempio cdrom, indicherà (?) L'architettura. È una GUI ma non dice "32 bit" né "64 bit".


-1

Non sono sicuro di come si chiami un sistema operativo a 32 bit.

Per essere precisi, il mio kernel e la distribuzione desktop sono Debian / Sid a 64 bit, ma uso abitualmente schrootper eseguire un deboostrapDebian a 32 bit all'interno di un chrootambiente a -ed (a scopo di test).

Pensi che il mio ambiente a 32 bit dovrebbe essere chiamato 32 bit (credo) o 64 bit (dopo tutto, funziona all'interno di un kernel a 64 bit). In quell'ambiente uname -mdice i686e tutte le librerie, eseguibili e processi sono a 32 bit.

Ai fini pratici uname -mdovrebbe essere sufficiente. Il filecomando può dire se un eseguibile ELF è a 32 bit o 64 bit.

Vedi la syscall di personalità specifica di Linux (2) (e anche quella di uname (2) ).

E le informazioni hardware sul tuo processore sono visibili ad es

 cat /proc/cpuinfo

il suo output è lo stesso nel mio sistema desktop a 64 bit e nel mio ambiente a 32 bit.


4
-1: è stato aggiunto un sacco di inutile confusione senza aggiungere alcuna nuova informazioni utili. Perché dire che non sei "sicuro di come si chiama un sistema operativo a 32 bit"? Questa è una domanda piuttosto semplice, una che conosci . Il tuo chrootesempio è inutile: è simile a una macchina virtuale, quindi ovviamente uname -mverrà emesso i686se lo hai avviato con un sistema operativo a 32 bit. Ma l '"host" è ancora a 64 bit, e uname -mlo dirà se lo esegui al di fuori dell'ambiente chroot
MestreLion

2
Inoltre, /proc/cpuinfoè fuorviante: mostra le capacità della CPU e non l'architettura del sistema operativo installata (e in esecuzione) effettiva. Praticamente tutte le CPU desktop vendute negli ultimi 5 anni sono a 64 bit, ma questo non ha assolutamente nulla a che fare con la domanda. E ovviamente riporta lo stesso in entrambi gli scenari, poiché l' hardware della CPU è lo stesso ed è in grado di eseguire sistemi operativi a 32 e 64 bit.
MestreLion,

@MestreLion, Quello che Basile sta cercando di dire è che in alcuni casi, ad esempio quando si utilizza LXC o chroot, è possibile eseguire un sistema puramente a 32 bit con un kernel a 64 bit. In questi casi unameti dirà l'architettura del kernel, 64 bit, mentre altri metodi ti diranno l'architettura userland, 32 bit, e non è chiaro quale dei due sia "l'architettura".
Joni,

@Joni: Ok, ho capito. Ma questo è uno scenario estremamente angolare, e sicuramente non è il caso del PO.
MestreLion,

Probabilmente non è il caso dell'OP, volevo solo chiarire il punto che Basile stava cercando di fare (Inoltre, sembra che la mia modifica precedente per correggere la risposta sia stata respinta? In questo ambiente uname -mverrà generata l'architettura del kernel che è x86_64, non i686. )
Joni,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.