Как проверить, есть ли у меня 32-битная или 64-битная ОС?

489

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

В Windows 7 я мог щелкнуть правой кнопкой мыши по Моему компьютеру, и там была указана версия.

Есть ли простой способ проверить это в Ubuntu?

Только боливийский здесь
источник
Аналогичный вопрос: askubuntu.com/questions/189640/…
Уилф
видео [ youtube.com/watch?v=d39JLc5regY]
Дым
Архитектура установки и архитектура ядра - это две разные вещи. Например, я реализовал поддержку multiarch Debian через dpkg --add-architecture amd64и установил некоторые amd64пакеты в мою 32-битную Ubuntu 16.04. Теперь я без проблем запускаю 32-битную установку с 64-битным ядром. Так что пока dpkg --print-architectureпечатает i386, uname -mпечатает x86_64. Обратитесь к wiki.debian.org/Multiarch/HOWTO (это сложный процесс)
Кенн

Ответы:

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: ELF 64-битный общий объект LSB, x86-64 , версия 1 (SYSV), динамически связанный (использует разделяемые библиотеки), для GNU / Linux 2.6.15, раздетый

    То же самое для систем, использующих systemd (16.04):

    file /lib/systemd/systemd

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

    / lib / systemd / systemd: 64-битный общий объект ELB LSF , x86-64 , версия 1 (SYSV), динамически связанный, интерпретатор /lib64/ld-linux-x86-64.so.2, для GNU / Linux 2.6. 32, BuildID [sha1] = 54cc7ae53727d3ab67d7ff5d66620c0c589d62f9, раздетый
Rinzwind
источник
11
Метод 2, который состоит в «перехвате» (двоичного) содержимого широко доступного исполняемого файла, является довольно косвенным и неудобным. Хотя это работает для большинства установок, простое наличие 64-битного исполняемого файла не должно быть надежным способом обнаружения работающей архитектуры ОС. Особенно , когда вы считаете multiarch, ia32_libsи, особенно в вашем initпримереupstart
MestreLion
8
Вы, вероятно, правы, но метод 1 показал мне, что i686ни один из 32 или 64 вывод не был для меня отображен
Aleks
6
@aleks 32-битный (см. выделенный текст: `i686 i686 i386` в ответе)
Rinzwind
Это 32-битный, я использовал второй метод, но первый не показал мне ничего похожего i386:), но ваш ответ помог. Большое спасибо
Aleks
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

  • Нажмите Ctrl (Mac) или клавишу Windows.
  • Введите Detailsи выберите значок «Детали»
  • Прочитайте поле «Тип ОС»
  • 64-битная ОС будет читать «64-битная»

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

Альтернатива, чтобы получить вышеуказанный экран:

  • нажмите Системное меню (шестеренка в правом верхнем углу)
  • нажмите «Об этом компьютере»

Я знаю, что ответы терминала хорошие, но я думаю, что это ответ GUI. :)

Ubuntu 11.04 с Unity

  • Нажмите Ctrl (Mac) или клавишу Windows.
  • Введите System infoи выберите значок Информация о системе
  • Прочитайте поле «Тип ОС»
  • 64-битная ОС будет читать «64-битная»
Фрэнк Хенард
источник
14
+1: способ с графическим интерфейсом предпочтительнее, чем команды терминала для пользователя, который используется в Windows и специально попросил простой способ.
MestreLion
1
Кроме того, еще один (GUI) способ добраться до того же экрана:System Menu (top right corner, near the clock) -> System Settings -> Details
MestreLion
Имея в виду простой способ: пожалуйста, любой, кто работает под управлением более старой Ubuntus, предоставит свой графический интерфейс! Специально для Lucid Lynx (так как LTS поддерживается до 2015 года и, следовательно, вполне может работать на портативных компьютерах людей.)
JP
1
@JP: Для более старых Ubuntus, таких как Lucid Lynx, самый простой способ с графическим интерфейсом, который я знаю, это системный монитор Gnome . Его Systemвкладка показывает архитектуру.
МестреЛион
1
Окно с графическим интерфейсом прекрасно, но представьте, будете ли вы на минуту, если вы используете серверную версию без установленного графического интерфейса?
Крис
79

Очень простой и короткий путь это:

Откройте Терминал, напишите следующее и нажмите Enter.

getconf LONG_BIT

Полученное число (в моем случае 64) является ответом.

терминал - getconf LONG_BIT

Кристиана Николае
источник
7
На моей 32-битной системе это также дает правильный ответ. Из всех команд, перечисленных в различных ответах, вывод этой команды является наиболее простым.
Стивен Остермиллер,
За исключением: $ getconf LONGBIT getconf: Нераспознанная переменная `LONGBIT '
Auspex
1
Вам не хватает подчеркивания @Auspex LONG_BIT
Майкл,
@ Майкл Черт, вот и я. Я не знаю , как мне это удалось, и, модернизировал эти две машины до 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.

aneeshep
источник
11
archэто так же, как uname -m(даже указано в man-странице). ;-)
htorque
На моем компьютере (Ubuntu 9.04) команда arch, кажется, не существует. Так что я бы сказал, что uname -m более надежен.
Джонатан Штернберг
@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-битного ядра.
Дэн Гартвейт
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должно быть установлено.

Lincity
источник
8
Честно говоря, нужно скачать и извлечь этот 8-строчный файл? Просто поместите это в блок кода здесь.
Кири
и когда вывод uname -mне i686... хорошее использование zenity, может использовать, notify-sendхотя.
Уилф
5

Перейдите в настройки системы и в разделе « Система » нажмите « Подробнее» . Вы получите все детали, включая вашу ОС, ваш процессор, а также тот факт, работает ли система на 64-битной или 32-битной версии.

user265559
источник
Это кажется чудесным. Но я не знаю, как "Перейти в настройки системы". (Кстати) Я использую 12,4 MATE.
Papou
3

Откройте Центр программного обеспечения Ubuntu и выполните поиск lib32. Если это приводит к каким-либо результатам, вы находитесь на 64-битной установке (результаты - библиотеки совместимости для запуска 32-битных приложений на 64-битной установке).

Не совсем лучший ответ, но, по крайней мере, он не требует терминала ... ;-)

редактировать

Я нашел еще более простой: откройте Help -> About 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-битный

(Но это еще не тот ответ, который должен быть там;))

Janc
источник
2
Чистый графический интерфейс, конечно, но довольно хрупкий ... пакеты, чьи имена ( или описания ) содержат lib32, безусловно, не является надежным способом обнаружения архитектуры.
MestreLion
2

Кнопка питания (самая верхняя, крайняя справа) имеет опцию «Об этом компьютере». :)

Перец
источник
2
не 12.04 LTS
törzsmókus
1

Насколько я помню, на 32-битной системе можно установить ядро ​​x86_64. Как писали несколько человек здесь, вы должны посмотреть, какие библиотеки у вас есть / какие пакеты установлены в вашей системе. Таким образом, самый безопасный способ проверить это - проверить, есть ли у вас /lib64символическая ссылка /lib.

Другой возможный способ - проверить, какие пакеты вы скачали /var/cache/apt/archive. Если они содержат _amd64.deb, это 64-битная система, то есть, если вы установили пакеты и не очистили свой кэш.

Все это можно сделать из Konqueror / Dolphin , просто указав и нажав или:

ls -la / |grep lib
Озис
источник
1

Вы должны иметь в виду, что у вас может быть 64-битный процессор, пока вы устанавливаете 32-битное ядро. Т.е. если ваш процессор 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командовать.

Проверьте этот ТАК вопрос

Maythux
источник
На самом деле не имеет отношения к вопросу: он имеет 64-битный процессор и хочет знать, какая ОС была установлена.
Auspex
0

Посмотрите на ваши источники программного обеспечения в Synaptic или Software Center. Если вы не удалили свой исходный код, например, cdrom, он (?) Укажет архитектуру. Это графический интерфейс, но он не будет ни 32-битным, ни 64-битным.

не в ногу
источник
-1

Я не уверен, что вы называете ОС 32-битной.

Точнее говоря, мой дистрибутив ядра и десктопа - это 64-битный Debian / Sid, но я обычно использую его schrootдля запуска deboostrap-ed 32-битного Debian в chrootсреде -ed (для целей тестирования).

Считаете ли вы, что моя 32-битная среда должна называться 32-битной (я так думаю) или 64-битной (в конце концов, она работает внутри ядра 64-битной). В этой среде uname -mговорится i686и все библиотеки и исполняемые файлы и процессы являются 32-битными.

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

См. Специфический для Linux индивидуальный (2) системный вызов (а также uname (2) один).

И информация об оборудовании вашего процессора видна, например, с

 cat /proc/cpuinfo

его вывод одинаков в моей настольной 64-битной системе и в моем 32-битном окружении с шифрованием.

Василий Старынкевич
источник
4
-1: вы добавили много ненужной путаницы, не добавляя никакой полезной новой информации. Зачем говорить, что вы «не уверены, что называете ОС 32-битной»? Это довольно простой вопрос, о котором вы знаете . Ваш chrootпример бессмысленен: он похож на виртуальную машину, поэтому, конечно, uname -mбудет выводиться, i686если вы загрузите ее с 32-битной ОС. Но «host» по-прежнему 64-битный, и uname -mон скажет об этом, если вы запустите его вне среды chroot
MestreLion
2
Кроме того, /proc/cpuinfoвводит в заблуждение: он показывает возможности процессора , а не фактическую установленную (и работающую) архитектуру ОС. Практически все настольные процессоры, проданные за последние 5 лет, являются 64-разрядными, но это не имеет абсолютно никакого отношения к вопросу. И, конечно, он сообщает об одном и том же в обоих сценариях, поскольку аппаратное обеспечение вашего процессора одинаковое, и оно способно работать как с 32-, так и с 64-битной ОС.
MestreLion
@MestreLion, Бэзил пытается сказать, что в некоторых случаях, например, при использовании LXC или chroot, вы можете запустить чисто 32-битную систему с 64-битным ядром. В этих случаях unameвам сообщат архитектуру ядра, 64-битную, в то время как другие методы скажут вам архитектуру пользовательского интерфейса, 32-битную, и неясно, какой из этих двух типов является архитектурой "."
Джони
@Joni: Хорошо, я понимаю. Но это крайне сложный сценарий, и, конечно, дело не в ОП.
MestreLion
Вероятно, дело не в ОП, я просто хотел уточнить, что пытался сделать Бэйзил (также, похоже, что мое более раннее редактирование для исправления ответа было отклонено? В этой среде uname -mбудет выводиться архитектура ядра, которая является x86_64, а не i686. )
Джони