Làm cách nào để kiểm tra xem tôi có HĐH 32 bit hay 64 bit không?


489

Tôi đã tải xuống và cài đặt Ubuntu từ trang web chính thức. Tuy nhiên, tôi không biết nếu tôi đã cài đặt phiên bản 32 bit hay 64 bit.

Trong Windows 7 tôi có thể nhấp chuột phải vào Máy tính của tôi và nó liệt kê đó là phiên bản nào.

Có cách nào dễ dàng để kiểm tra Ubuntu không?



Câu hỏi tương tự: askubfox.com/questions/189640/ khăn
Wilf



Kiến trúc cài đặt và kiến ​​trúc kernel là hai thứ khác nhau. Ví dụ, tôi đã triển khai hỗ trợ multarch debian thông qua dpkg --add-architecture amd64và cài đặt một số amd64gói trong Ubuntu 16.04 32 bit của tôi. Bây giờ tôi chạy cài đặt 32 bit với kernel 64 bit mà không gặp vấn đề gì. Vì vậy, trong khi dpkg --print-architecturein i386, uname -min x86_64. Tham khảo wiki.debian.org/Multiarch/HOWTO (đây là một quá trình khó khăn)
kenn

Câu trả lời:


629

Tôi biết ít nhất 2 cách. Mở một thiết bị đầu cuối ( Ctrl+ Alt+ T) và gõ:

  1. uname -a

    Kết quả cho Ubuntu 32 bit:

    Thế giới đĩa Linux 2.6,38-8-chung # 42-Ubuntu SMP Mon ngày 11 tháng 4 03:31:50 UTC 2011 i686 i686 i386 GNU / Linux

    trong khi Ubuntu 64 bit sẽ hiển thị:

    Thế giới đĩa Linux 2.6,38-8-chung # 42-Ubuntu SMP Mon ngày 11 tháng 4 03:31:50 UTC 2011 x86_64 x86_64 x86_64 GNU / Linux

    Phiên bản ngắn hơn:

    $ uname -i
    x86_64
    

    hoặc là

  2. file /sbin/init

    Kết quả cho Ubuntu 32 bit:

    / sbin / init: Đối tượng chia sẻ LSB 32 bit , Intel 80386 , phiên bản 1 (SYSV), được liên kết động (sử dụng libs được chia sẻ), cho GNU / Linux 2.6.15, bị tước

    trong khi đối với phiên bản 64 bit, nó sẽ trông như sau:

    / sbin / init: Đối tượng chia sẻ LSB 64 bit , x86-64 , phiên bản 1 (SYSV), được liên kết động (sử dụng libs chia sẻ), cho GNU / Linux 2.6.15, bị tước

    Tương tự cho các hệ thống sử dụng systemd (16.04):

    file /lib/systemd/systemd

    Kết quả cho 64-bit:

    / lib / systemd / systemd: Đối tượng chia sẻ LSB 64 bit , x86-64 , phiên bản 1 (SYSV), được liên kết động, trình thông dịch /lib64/ld-linux-x86-64.so.2, cho GNU / Linux 2.6. 32, BuildID [sha1] = 54cc7ae53727d3ab67d7ff5d66620c0c589d62f9, tước

11
Phương pháp 2, bao gồm "đánh hơi" nội dung (nhị phân) của một tệp thực thi có sẵn rộng rãi, khá gián tiếp và khó xử. Mặc dù nó hoạt động cho hầu hết các thiết lập, nhưng sự hiện diện đơn thuần của một tệp thực thi 64 bit không phải là một cách đáng tin cậy để phát hiện kiến trúc hệ điều hành đang chạy . Đặc biệt khi bạn xem xét multiarch, ia32_libsvà, đặc biệt trong initví dụ của bạn ,upstart
MestreLion

8
Bạn có thể đúng, nhưng Phương pháp 1 hiển thị cho tôi một đầu ra i686không phải là 32 hay 64 được hiển thị cho tôi
Aleks

6
@aleks là 32 bit (xem văn bản được tô sáng: `i686 i686 i386` trong câu trả lời)
Rinzwind

nó là 32 bit, tôi đã sử dụng phương thức thứ hai, nhưng cách thứ nhất không cho tôi thấy bất cứ thứ gì trông giống như vậy i386:) nhưng câu trả lời của bạn đã giúp ích. cảm ơn rất nhiều
Aleks

1
# file /sbin/init- /sbin/init: symbolic link to khởi động '- # file /sbin/upstart-/sbin/upstart: ELF 64-bit LSB shared object, x86-64...
Nakilon

142

Ubuntu 12.04+ với sự thống nhất

  • Nhấn Command (mac) hoặc phím Window.
  • Nhập Detailsvà chọn biểu tượng "Chi tiết"
  • Đọc trường "Loại hệ điều hành"
  • HĐH 64 bit sẽ đọc "64 bit"

nhập mô tả hình ảnh ở đây

Thay thế để có được màn hình trên:

  • bấm vào Menu hệ thống (bánh răng ở góc trên bên phải)
  • nhấp vào "Giới thiệu về máy tính này"

Tôi biết các phản hồi đầu cuối là tốt nhưng tôi đoán đây là câu trả lời GUI. :)

Ubuntu 11.04 với Unity

  • Nhấn Command (mac) hoặc phím Window.
  • Nhập System infovà chọn biểu tượng Thông tin hệ thống
  • Đọc trường "Loại hệ điều hành"
  • HĐH 64 bit sẽ đọc "64 bit"

14
+1: Cách GUI được ưu tiên hơn các lệnh đầu cuối cho người dùng được sử dụng cho Windows và đặc biệt yêu cầu một cách dễ dàng .
MestreLion

1
Ngoài ra, một cách khác (GUI) để vào cùng một màn hình:System Menu (top right corner, near the clock) -> System Settings -> Details
MestreLion

Với một cách dễ dàng chắc chắn nhất trong tâm trí: xin vui lòng, bất cứ ai chạy Ubuntus cũ hơn, hãy cung cấp GUI của bạn tương đương! Đặc biệt là đối với Lucid Lynx (vì LTS được hỗ trợ cho đến năm 2015 và do đó có thể sẽ chạy trên máy tính xách tay của mọi người.)
JP

1
@JP: Đối với Ubuntus cũ hơn, chẳng hạn như Lucid Lynx, cách GUI dễ nhất mà tôi biết là System Monitor của Gnome . SystemTab của nó cho thấy kiến ​​trúc.
MestreLion

1
Cửa sổ GUI rất đáng yêu, nhưng hãy tưởng tượng nếu bạn sẽ trong một phút nếu bạn chạy phiên bản máy chủ mà không cài đặt GUI?
chris

79

Một cách rất dễ dàng và ngắn gọn là:

Mở Terminal, viết như sau và nhấn Enter.

getconf LONG_BIT

Số kết quả (trong trường hợp của tôi 64) là câu trả lời.

thiết bị đầu cuối - getconf LONG_BIT


7
Trên hệ thống 32 bit của tôi, điều này cũng cho câu trả lời đúng. Trong tất cả các lệnh được liệt kê trong các câu trả lời khác nhau, đầu ra của câu lệnh này là đơn giản nhất.
Stephen Ostermiller

Ngoại trừ: $ getconf LONGBIT getconf: Biến không được nhận dạng `LONGBIT '
Auspex

1
Bạn đang thiếu dấu gạch dưới @Auspex LONG_BIT
Michael

@Michael Chết tiệt, tôi cũng vậy. Tôi không biết làm thế nào tôi quản lý được điều đó và đã nâng cấp hai máy đó lên 64 bit trong tháng vừa qua, bây giờ nó đã khá nhiều rồi ;-) Cảm ơn, dù sao đi nữa!
Auspex

58

Tham khảo: Làm thế nào để tôi biết nếu tôi đang chạy Linux 32 bit hay 64 bit?

Sử dụng lệnh:

uname -m

Bạn thường sẽ nhận được:

i686

cho 32 bit (hoặc có thể là i586 hoặc i386) và:

x86_64

cho 64-bit.


khó tin rằng / etc / phát hành dường như không đề cập đến nó.
rogerdpack

uname -mpiđưa ra tất cả những điều được đề cập đến uname -a, mặc dù chúng thường giống nhau ...
Wilf

27

Mở terminal và thử archlệnh. Nếu đầu ra của nó là x86_64 thì đó là 64 bit. Nếu nó nói i686, i386, v.v. thì đó là 32 bit.

Tuy nhiên, cách tốt nhất để xác định kiến ​​trúc là chạy archlệnh và google đầu ra.


11
archcũng giống như uname -m(thậm chí được nêu trong trang chủ). ;-)
htorque

Trên máy tính của tôi (Ubuntu 9.04), lệnh arch dường như không tồn tại. Vì vậy, tôi muốn nói uname -m đáng tin cậy hơn.
Jonathan Sternberg

@JonathanSternberg: nó đã được thêm vào một vài tháng sau đó, được phát triển bởi cùng các tác giả unamevà được bao gồm trong cùng một coreutilsgói. Vì vậy, từ Ubuntu 10.04 trở đi, cả hai lệnh đều khả dụng.
MestreLion

21

dpkg --print-architecture lệnh sẽ hiển thị cho dù bạn đã cài đặt hệ điều hành Ubuntu 32 bit hay 64 bit.

Trên hệ thống 64 bit

$ dpkg --print-architecture
amd64          

Trên hệ thống 32 bit

$ dpkg --print-architecture
i386

`


6
Phương pháp duy nhất cho đến nay để phát hiện chính xác HĐH 32 bit chạy kernel 64 bit.
Dan Garthwaite

8

Kiểm tra kiến ​​trúc

nhập mô tả hình ảnh ở đây

Liên kết tải xuống

  1. Tải xuống
  2. Giải nén nó
  3. Đánh dấu tệp Architecture Checker.sh Thực thi và chạy nó.

Kịch bản về cơ bản là thế này:

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

Điều này sẽ cần phải có trong một tệp văn bản thực thi và zenitysẽ cần phải được cài đặt.


8
Thành thật cần phải tải xuống và giải nén tập tin 8 dòng đó? Chỉ cần đặt nó trong một khối mã ở đây.
kiri

và khi đầu ra của ... uname -mkhông i686sử dụng tốt zenity, có thể sử dụng notify-sendmặc dù.
Wilf

5

Chuyển đến Cài đặt hệ thống và trong phần Hệ thống , nhấn Chi tiết . Bạn sẽ nhận được mọi chi tiết bao gồm HĐH, bộ xử lý của bạn cũng như thực tế là hệ thống đang chạy phiên bản 64 bit hay 32 bit.


Điều đó có vẻ tuyệt vời. Nhưng tôi không biết cách "Chuyển đến Cài đặt hệ thống". (BTW) Tôi đang sử dụng 12,4 MATE.
Papou

3

Mở Trung tâm phần mềm Ubuntu và tìm kiếm lib32. Nếu điều đó cho thấy bất kỳ kết quả nào, bạn đang cài đặt 64 bit (kết quả là các thư viện tương thích để chạy các ứng dụng 32 bit trên cài đặt 64 bit).

Không chính xác là một câu trả lời tốt hơn, nhưng ít nhất nó không yêu cầu một thiết bị đầu cuối ... ;-)

Biên tập

Tôi đã tìm thấy một thứ thậm chí còn dễ dàng hơn: mở Trợ giúp -> Giới thiệu về Mozilla Firefox và bạn sẽ thấy nó ngay tại đó ... ;-)

Ở phía dưới, nó hiển thị "chuỗi tác nhân người dùng", ví dụ như trên hệ thống 64 bit của tôi:

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

hoặc trên hệ thống 32 bit của tôi:

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

x86_64là 64 bit, i686là 32 bit

(Nhưng đây vẫn chưa phải là câu trả lời nên có;))


2
GUI thuần túy, chắc chắn, nhưng khá dễ vỡ ... các gói có tên ( hoặc mô tả ) chứa lib32chắc chắn không phải là một cách đáng tin cậy để phát hiện kiến ​​trúc.
MestreLion

2

Nút nguồn (trên cùng, ngoài cùng bên phải) có tùy chọn "Giới thiệu về máy tính này". :)


2
không phải vào ngày 12.04 LTS
törzsmókus

1

Theo như tôi có thể nhớ, có thể cài đặt kernel x86_64 trên hệ thống 32 bit. Như một vài người đã viết ở đây, bạn nên xem những thư viện nào bạn có / những gói bạn đã cài đặt trên hệ thống của bạn. Vì vậy, cách an toàn nhất để xem là kiểm tra xem bạn có /lib64và nếu đó là một liên kết tượng trưng đến /lib.

Một cách khác có thể là kiểm tra những gói bạn đã tải xuống /var/cache/apt/archive. Nếu chúng chứa _amd64.deb, thì đó là hệ thống 64 bit, nghĩa là, nếu bạn đã cài đặt các gói và chưa xóa bộ nhớ cache.

Tất cả điều đó có thể được thực hiện từ Konqueror / Dolphin chỉ bằng cách chỉ và nhấp hoặc:

ls -la / |grep lib

1

Bạn nên nhớ rằng bạn có thể có CPU 64 bit trong khi bạn cài đặt kernel 32 bit. Tức là Nếu CPU của bạn là 64 thì điều đó không có nghĩa là HĐH của bạn là 64, nó phụ thuộc vào những gì bạn đã cài đặt.

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"

như vậy để có được nền tảng sử dụng phần cứng uname -mhoặc uname -phoặc uname -ithời gian để có được các loại hạt nhân nó tốt hơn để getconf LONG_BITchỉ huy.

Kiểm tra câu hỏi SO này


Không thực sự liên quan đến câu hỏi: Anh ta CPU 64 bit và muốn biết hệ điều hành nào đã được cài đặt.
Auspex

0

Hãy xem Nguồn phần mềm của bạn trong Synaptic hoặc Trung tâm phần mềm. Nếu bạn chưa xóa nguồn ban đầu của mình, ví dụ cdrom, nó sẽ (?) Cho biết kiến ​​trúc. Đó là một GUI nhưng nó sẽ không nói '32 bit' hay '64bit'.


-1

Tôi không chắc chắn những gì bạn gọi một hệ điều hành là 32 bit.

Cụ thể, phân phối kernel và máy tính để bàn của tôi là Debian / Sid 64 bit, nhưng tôi thường xuyên sử dụng schrootđể chạy deboostrapDebian 32 bit trong chrootmôi trường -ed (cho mục đích thử nghiệm).

Bạn có cảm thấy môi trường 32 bit của tôi nên được gọi là 32 bit (tôi tin là như vậy) hoặc 64 bit (sau tất cả, nó chạy bên trong nhân 64 bit). Trong môi trường đó uname -mnói i686và tất cả các thư viện và các tệp thực thi và quy trình là 32 bit.

Đối với mục đích thực tế uname -mnên là đủ. Các filelệnh có thể cho bạn biết nếu một thực thi ELF là 32 bit hoặc 64 bit một.

Xem tòa nhà cá tính cụ thể của Linux (2) (và cả uname (2) ).

Và thông tin phần cứng về bộ xử lý của bạn hiển thị với, vd

 cat /proc/cpuinfo

đầu ra của nó là giống nhau trong hệ thống 64 bit trên máy tính để bàn của tôi và trong môi trường schroot-ed 32 bit của tôi.


4
-1: bạn đã thêm rất nhiều nhầm lẫn không cần thiết mà không cần thêm bất kỳ thông tin mới hữu ích nào . Tại sao nói rằng bạn "không chắc chắn những gì bạn gọi một hệ điều hành là 32 bit"? Đó là một câu hỏi khá đơn giản, một câu hỏi mà bạn biết . chrootVí dụ của bạn là vô nghĩa: nó tương tự như Máy ảo, vì vậy tất nhiên uname -msẽ xuất ra i686nếu bạn khởi động nó với HĐH 32 bit. Nhưng "máy chủ" vẫn là 64 bit và uname -msẽ nói như vậy nếu bạn chạy nó bên ngoài môi trường chroot
MestreLion

2
Ngoài ra, /proc/cpuinfolà sai lệch: nó cho thấy các khả năng của CPU , chứ không phải kiến trúc hệ điều hành được cài đặt (và đang chạy) thực tế. Hầu như tất cả các CPU máy tính để bàn được bán trong 5 năm qua là 64 bit, nhưng điều này hoàn toàn không liên quan gì đến câu hỏi. Và tất nhiên, nó báo cáo giống nhau trong cả hai kịch bản, vì phần cứng CPU của bạn giống nhau và nó có khả năng chạy cả hai hệ điều hành 32 và 64 bit.
MestreLion

@MestreLion, Điều mà Basile đang cố nói là trong một số trường hợp, ví dụ như khi sử dụng LXC hoặc chroot, bạn có thể chạy một hệ thống 32 bit hoàn toàn với kernel 64 bit. Trong các trường hợp unamenày sẽ cho bạn biết kiến ​​trúc kernel, 64 bit, trong khi các phương thức khác sẽ cho bạn biết kiến ​​trúc vùng người dùng, 32 bit và không rõ kiến ​​trúc nào trong hai là "kiến trúc".
Joni

@Joni: Ok, tôi hiểu. Nhưng đó là một tình huống cực kỳ khó khăn và chắc chắn không phải là trường hợp của OP.
MestreLion

Có lẽ đó không phải là trường hợp của OP, tôi chỉ muốn làm rõ điểm mà Basile đang cố gắng thực hiện (Ngoài ra, có vẻ như chỉnh sửa trước đó của tôi để sửa câu trả lời đã bị từ chối? Trong môi trường uname -mnày sẽ xuất ra kiến ​​trúc của kernel là x86_64, không phải i686. )
Joni
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.