Як перевірити, чи маю я 32-бітну або 64-бітну ОС?


489

Я завантажив і встановив Ubuntu з офіційного сайту. Однак я не знаю, чи встановив я 32-бітну або 64-бітну версію.

У Windows 7 я міг правою кнопкою миші клацнути Мій комп'ютер, і там було вказано, у якій версії це було.

Чи є простий спосіб перевірити в Ubuntu?



Аналогічне запитання: askubuntu.com/questions/189640/…
Вільф



Архітектура установки та архітектура ядра - це дві різні речі. Наприклад, я реалізував підтримку debian multiarch через dpkg --add-architecture amd64і встановив деякі amd64пакунки у своєму 32-бітному Ubuntu 16.04. Тепер я запускаю 32-бітну установку з 64-бітним ядром без проблем. Тож поки dpkg --print-architectureдрукує i386, uname -mдрукує x86_64. Дивіться на wiki.debian.org/Multiarch/HOWTO (це складний процес)
kenn

Відповіді:


629

Я знаю принаймні 2 способи. Відкрийте термінал ( Ctrl+ Alt+ T) і введіть:

  1. uname -a

    Результат для 32-розрядного Ubuntu:

    Linux discworld 2.6.38-8-generic # 42-Ubuntu SMP Пн 11 квітня 03:31:50 UTC 2011 i686 i686 i386 GNU / Linux

    тоді як 64-розрядний Ubuntu покаже:

    Linux discworld 2.6.38-8-generic # 42-Ubuntu SMP Пн 11 квітня 03:31:50 UTC 2011 x86_64 x86_64 x86_64 GNU / Linux

    Коротша версія:

    $ uname -i
    x86_64
    

    або

  2. file /sbin/init

    Результат для 32-розрядного Ubuntu:

    / sbin / init: 32-розрядний об'єкт спільного використання LSB ELF , Intel 80386 , версія 1 (SYSV), динамічно пов'язаний (використовує спільні лібри), для GNU / Linux 2.6.15, позбавлений

    тоді як для 64-бітної версії це виглядатиме так:

    / sbin / init: 64-бітний об'єкт спільного використання LSB, x86-64 , версія 1 (SYSV), динамічно пов'язаний (використовує спільні лібри), для GNU / Linux 2.6.15, позбавлений

    Те саме для систем, що використовують systemd (16.04):

    file /lib/systemd/systemd

    Результат для 64-розрядних:

    / lib / systemd / systemd: 64-розрядний об'єкт спільного LSB ELF , x86-64 , версія 1 (SYSV), динамічно пов'язаний, інтерпретатор /lib64/ld-linux-x86-64.so.2, для GNU / Linux 2.6. 32, BuildID [sha1] = 54cc7ae53727d3ab67d7ff5d66620c0c589d62f9, позбавлений

11
Спосіб 2, який складається з "обнюхування" (бінарного) вмісту широко доступного виконуваного файлу, є досить непрямим і незручним. Хоча це працює для більшості налаштувань, саме наявність 64-бітного виконуваного файлу не повинно бути надійним способом виявлення працюючої архітектури ОС. Особливо , коли ви вважаєте multiarch, ia32_libsі, особливо в вашому initприкладіupstart
MestreLion

8
Ви, напевно, праві, але метод 1 показав мені, що для мене i686не було показано жодного з 32 або 64
Алекс

6
@aleks, що має 32 біти (див. виділений текст: `i686 i686 i386` у відповідь)
Rinzwind

це 32 біт, я використовував другий метод, але перший не показав мені нічого схожого i386:), але ваша відповідь допомогла. велике спасибі
Алекс

1
# file /sbin/init- /sbin/init: symbolic link to upstart'` - # file /sbin/upstart-/sbin/upstart: ELF 64-bit LSB shared object, x86-64...
Накілон

142

Ubuntu 12.04+ з Unity

  • Натисніть Command (mac) або клавішу Window.
  • Наберіть Detailsі виберіть піктограму "Деталі"
  • Прочитайте поле "Тип ОС"
  • 64-бітна ОС буде читати "64-бітну"

введіть тут опис зображення

Альтернатива, щоб отримати вказаний вище екран:

  • натисніть "Системне меню" (шестерня у верхньому правому куті)
  • натисніть "Про цей комп'ютер"

Я знаю, що термінальні відповіді хороші, але я думаю, що це відповідь GUI. :)

Ubuntu 11.04 з Unity

  • Натисніть Command (mac) або клавішу Window.
  • Наберіть System infoі виберіть піктограму Інформація про систему
  • Прочитайте поле "Тип ОС"
  • 64-бітна ОС буде читати "64-бітну"

14
+1: спосіб GUI є кращим перед термінальними командами для користувача, який звик до Windows і спеціально запитав простий спосіб.
MestreLion

1
Також ще один спосіб (GUI) потрапити на той же екран:System Menu (top right corner, near the clock) -> System Settings -> Details
MestreLion

Простий спосіб, який, безумовно, майте на увазі: будь ласка, будь-хто, хто працює зі старшим Ubuntus, надайте свій GUI еквівалент! Спеціально для Lucid Lynx (оскільки LTS підтримується до 2015 року, а отже, цілком може працювати на ноутбуках людей, переданих рукою.)
JP

1
@JP: Для старих Ubuntus, таких як Lucid Lynx, найпростіший спосіб, з якого я знаю, - це монітор системи Gnome . На його Systemвкладці відображена архітектура.
MestreLion

1
Вікно графічного інтерфейсу прекрасне, але уявіть, чи будете ви на хвилину, якщо працює ваша версія сервера без встановленого графічного інтерфейсу?
chris

79

Дуже простий і короткий спосіб:

Відкрийте термінал, напишіть наступне та натисніть Enter.

getconf LONG_BIT

Отримане число (в моєму випадку 64) - це відповідь.

термінал - getconf LONG_BIT


7
У моїй 32-бітовій системі це дає і правильну відповідь. З усіх команд, перелічених у різних відповідях, результат цієї є найпростішим.
Стівен Остерміллер

За винятком: $ getconf LONGBIT getconf: Нерозпізнана змінна `LONGBIT '
Auspex

1
Ви пропускаєте підкреслення @Auspex LONG_BIT
Майкл

@Michael Чорт, так я і був. Я не знаю, як мені це вдавалося, і модернізувавши ці дві машини до 64 біт за останній місяць, це вже зараз суперечить ;-) Спасибі, все одно!
Auspex

58

Довідка: Як дізнатись, чи працює я 32-бітний або 64-бітний Linux?

Використовуйте команду:

uname -m

Зазвичай ви отримаєте:

i686

для 32-розрядних (або можливо i586 або i386), і:

x86_64

для 64-розрядних.


важко повірити, що / etc / release не схоже на це.
rogerdpack

uname -mpiдає всі згадані речі uname -a, навіть якщо вони зазвичай однакові ...
Вільф

27

Відкрийте термінал і спробуйте archкоманду. Якщо його вихід x86_64, то це 64 біт. Якщо він каже, що i686, i386 і т.д., то це 32 біт.

Однак найкращий спосіб визначити архітектуру - це запустити archкоманду та google на вихід.


11
archточно так само, як uname -m(навіть зазначено на сторінці). ;-)
htorque

На моєму комп'ютері (Ubuntu 9.04) команда арки, здається, не існує. Тому я б сказав, що ун-м є більш надійним.
Джонатан Штернберг

@JonathanSternberg: він був доданий через кілька місяців, розроблений тими ж авторами unameта включений до одного coreutilsпакету. Тож з Ubuntu 10.04 далі доступні обидві команди.
MestreLion

21

dpkg --print-architecture команда покаже, чи встановлено ви 32-бітну або 64-бітну ОС Ubuntu.

На 64-бітних системах

$ dpkg --print-architecture
amd64          

У 32-бітових системах

$ dpkg --print-architecture
i386

`


6
Єдиний досі спосіб правильно визначити 32-бітну ОС, що працює на 64-бітовому ядрі.
Dan Garthwaite

8

Перевірка архітектури

введіть тут опис зображення

Посилання для завантаження

  1. Завантажте його
  2. Витягніть його.
  3. Позначте файл Architecture Checker.sh як виконуваний файл та запустіть його.

В основному сценарій такий:

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

Це потрібно мати у текстовому файлі, що виконується, і zenityйого потрібно встановити.


8
Чесно потрібно завантажити та витягнути цей 8 рядковий файл? Просто покладіть його в блок коду тут.
кірі

і коли вихід uname -mне є i686... приємним використанням zenity, можна використовувати, notify-sendхоча.
Вільф

5

Перейдіть до " Налаштування системи" та в розділі " Система " натисніть " Деталі" . Ви отримаєте кожну деталь, включаючи вашу ОС, ваш процесор, а також те, чи працює система 64-бітної або 32-бітної версії.


Це здається чудовим. Але я не знаю, як "перейти до налаштувань системи". (BTW) Я використовую 12.4 MATE.
Папу

3

Відкрийте Центр програмного забезпечення Ubuntu та знайдіть lib32. Якщо це виявить будь-які результати, ви перебуваєте на 64-бітній установці (результати - це бібліотеки сумісності для запуску 32-бітних програм на 64-бітній установці).

Не зовсім краща відповідь, але принаймні для цього не потрібен термінал ... ;-)

Редагувати

Я знайшов ще простішу: відкрийте довідку -> Про Mozilla Firefox, і ви побачите її саме там ... ;-)

Внизу він відображає "рядок агента користувача", наприклад, у моїй 64-бітній системі:

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

або в моїй 32-бітній системі:

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

x86_6464-розрядна, i68632-розрядна

(Але це все ще не відповідь, яка повинна бути там;))


2
Чистий GUI, звичайно, але досить крихкий ... пакунки, чиї імена ( або описи ) містять lib32, безумовно, не є надійним способом виявлення архітектури.
MestreLion

2

Кнопка живлення (у верхньому, крайньому правому куті) має опцію "Про цей комп'ютер". :)


2
не 12.04 LTS
törzsmókus

1

Наскільки я пам'ятаю, ядро ​​x86_64 можна встановити в 32-бітній системі. Як писало декілька тут, ви повинні подивитися, які бібліотеки у вас є / які пакунки встановлені у вашій системі. Тож найбезпечніший спосіб переконатися у тому, щоб перевірити, чи є у вас, /lib64і чи є це посилання на /lib.

Ще один можливий спосіб - перевірити, які пакунки ви завантажили /var/cache/apt/archive. Якщо вони містять _amd64.deb, це 64-розрядна система, тобто якщо ви встановили пакунки і не очистили кеш.

Все це можна зробити з Konqueror / Dolphin , просто вказуючи та клацнувши або:

ls -la / |grep lib

1

Ви повинні мати на увазі, що під час встановлення 32-бітного ядра у вас може бути 64-бітний процесор. Тобто, якщо ваш процесор 64, це не означає, що ваша ОС 64, це залежить від того, що ви встановили.

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"

так , щоб використовувати платформу апаратних засобів uname -mабо uname -pабо в uname -iтой час , щоб отримати тип ядра це краще getconf LONG_BITкоманди.

Перевірте це питання


Чи не на самому ділі відношення до питання: Він має 64 - бітний процесор і хоче знати , який був встановлений OS.
Auspex

0

Погляньте на джерела програмного забезпечення в Synaptic або Software Center. Якщо ви не видалили своє первісне джерело, наприклад, cdrom, воно буде (?) Вказувати на архітектуру. Це графічний інтерфейс, але він не скаже ні "32 біт", ні "64 біт".


-1

Я не впевнений, що ви називаєте ОС 32-бітною.

Якщо конкретніше, мій розподіл ядра та настільних ПК - це 64-бітний Debian / Sid, але я звичайно використовую schrootдля запуску deboostrap32-бітового Debian у chrootсередовищі -ed (для тестування).

Чи відчуваєте ви, що моє 32-бітове середовище повинно називатися 32-бітним (я вважаю це) або 64-бітним (зрештою, воно працює в 64-бітовому ядрі). У такому середовищі uname -mкажуть, що i686всі бібліотеки та виконавчі файли та процеси - це 32 біти.

Для практичних цілей uname -mповинно вистачити. fileКоманда може сказати вам , якщо ELF виконуваний файл є 32 біт або 64 біт через один.

Перегляньте специфічну систему (2) для особистої (2) специфічної для Linux (а також однозначну (2) ).

А інформація про обладнання вашого процесора видно, наприклад,

 cat /proc/cpuinfo

його результат такий же, як у моїй робочій 64-бітній системі та в 32-бітовому середовищі з розширеним шахом.


4
-1: ви додали багато непотрібної плутанини, не додаючи ніякої корисної нової інформації. Чому говорять, що ви "не впевнені, що ви називаєте ОС 32-бітною"? Це досить просте запитання, про яке ви знаєте . Ваш chrootприклад є безглуздим: він подібний до віртуальної машини, тому, звичайно, uname -mвийде, i686якщо ви завантажите його 32-бітною ОС. Але "хост" все ще 64 біт, і uname -mце скаже, якщо ви запускаєте його поза середовищем chroot
MestreLion

2
Крім того, /proc/cpuinfoвводить в оману: він показує можливості CPU , а не фактичну встановлену (та працює) архітектуру ОС. Практично всі настільні процесори, що продаються за останні 5 років, є 64-бітними, але це абсолютно не пов'язане з питанням. І звичайно, він повідомляє про те саме в обох сценаріях, оскільки апаратне забезпечення вашого процесора однакове, і воно може працювати як з 32, так і з 64 та бітними ОС.
MestreLion

@MestreLion, що Басіль намагається сказати, що в деяких випадках, наприклад, при використанні LXC або chroot, ви можете запустити суто 32-бітну систему з 64-бітовим ядром. У цих випадках unameвам скажуть архітектуру ядра, 64-бітну, в той час як інші методи розкажуть вам архітектуру користувача, 32-бітну, і незрозуміло, який з двох є "архітектурою".
Джоні

@Joni: Добре, я розумію. Але це надзвичайно кутовий сценарій, і, звичайно, справа не в ОП.
MestreLion

Мабуть, це не справа ОП, я просто хотів уточнити точку, яку намагався зробити Басіль (Крім того, схоже, що моя попередня редакція для виправлення відповіді була відхилена? У цьому середовищі uname -mбуде виведена архітектура ядра, яка є x86_64, а не i686. )
Джоні
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.