ฉันจะตรวจสอบได้อย่างไรว่าฉันมีระบบปฏิบัติการ 32 บิตหรือ 64 บิต


489

ฉันดาวน์โหลดและติดตั้ง Ubuntu จากเว็บไซต์ทางการ อย่างไรก็ตามฉันไม่รู้ว่าฉันติดตั้งรุ่น 32 บิตหรือ 64 บิต

ใน Windows 7 ฉันสามารถคลิกขวาที่My Computerแล้วมันก็ระบุไว้ว่าเป็นรุ่นใด

มีวิธีง่าย ๆ ในการตรวจสอบใน Ubuntu หรือไม่?



คำถามที่คล้ายกัน: askubuntu.com/questions/189640/…
วิลฟ์



สถาปัตยกรรมการติดตั้งและสถาปัตยกรรมเคอร์เนลเป็นสองสิ่งที่แตกต่างกัน ตัวอย่างเช่นฉันdpkg --add-architecture amd64ติดตั้งการสนับสนุนเดเบียนหลายทางผ่านและติดตั้งamd64แพคเกจบางอย่างใน Ubuntu 32 บิต 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

    ผลลัพธ์สำหรับ Ubuntu แบบ 32 บิต:

    Linux discworld 2.6.38-8-generic # 42-Ubuntu SMP จันทร์ 11 เม.ย. 03:31:50 UTC 2011 i686 i686 i386 GNU / Linux

    ในขณะที่ Ubuntu แบบ 64 บิตจะแสดง:

    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

    ผลลัพธ์สำหรับ Ubuntu แบบ 32 บิต:

    / sbin / init: ELF 32- บิต LSB shared object, Intel 80386 , version 1 (SYSV), เชื่อมโยงแบบไดนามิก (ใช้ libs ที่ใช้ร่วมกัน), สำหรับ GNU / Linux 2.6.15, ถูกปล้น

    ในขณะที่รุ่น 64 บิตจะมีลักษณะดังนี้:

    / sbin / init: ELF 64- บิต LSB shared object, x86-64 , version 1 (SYSV), เชื่อมโยงแบบไดนามิก (ใช้ libs ที่ใช้ร่วมกัน), สำหรับ GNU / Linux 2.6.15, ถูกปล้น

    เช่นเดียวกันสำหรับระบบที่ใช้ systemd (16.04):

    file /lib/systemd/systemd

    ผลลัพธ์สำหรับ 64-bit:

    / lib / systemd / systemd: ELF 64- บิต LSB shared object, x86-64 , version 1 (SYSV), การเชื่อมโยงแบบไดนามิก, interpreter /lib64/ld-linux-x86-64.so.2, GNU / Linux 2.6 32, BuildID [sha1] = 54cc7ae53727d3ab67d7ff5d66620c0c589d62f9 ที่ถูกปล้น

11
วิธีที่ 2 ซึ่งประกอบด้วย "การดมกลิ่น" เนื้อหา (ไบนารี) ของการปฏิบัติการที่พร้อมใช้งานอย่างกว้างขวางนั้นค่อนข้างอ้อมและไม่แน่นอน ในขณะที่มันใช้งานได้กับการตั้งค่าส่วนใหญ่การมีอยู่ของ 64 บิตที่ปฏิบัติการไม่ควรเป็นวิธีที่เชื่อถือได้ในการตรวจจับสถาปัตยกรรม OS ที่ทำงานอยู่ พิเศษเมื่อคุณพิจารณา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...
Nakilon

142

Ubuntu 12.04+ พร้อม Unity

  • Hit Command (mac) หรือปุ่ม Window
  • พิมพ์Detailsและเลือกไอคอน "รายละเอียด"
  • อ่านฟิลด์ "ประเภท OS"
  • ระบบปฏิบัติการ 64 บิตจะอ่าน "64 บิต"

ป้อนคำอธิบายรูปภาพที่นี่

ทางเลือกอื่นในการรับหน้าจอด้านบน:

  • คลิกเมนูระบบ (เฟืองที่มุมขวาบน)
  • คลิก "เกี่ยวกับคอมพิวเตอร์เครื่องนี้"

ฉันรู้ว่าการตอบสนองของเครื่องนั้นดี แต่ฉันคิดว่านี่เป็นคำตอบของ GUI :)

Ubuntu 11.04 พร้อม Unity

  • Hit Command (mac) หรือปุ่ม Window
  • พิมพ์System infoและเลือกไอคอนข้อมูลระบบ
  • อ่านฟิลด์ "ประเภท OS"
  • ระบบปฏิบัติการ 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 และดังนั้นจึงอาจทำงานบนแล็ปท็อปแบบ me-down ของผู้คนได้)
JP

1
@JP: สำหรับเก่า Ubuntus เช่น Lucid Lynx วิธี GUI ที่ง่ายที่สุดที่ฉันรู้ว่าเป็นคำพังเพยของการตรวจสอบระบบ Systemแท็บมันแสดงให้เห็นถึงสถาปัตยกรรม
MestreLion

1
หน้าต่าง GUI นั้นน่ารัก แต่ลองจินตนาการดูว่าถ้าหากคุณใช้งานเซิร์ฟเวอร์รุ่นที่ไม่มีการติดตั้ง GUI
chris

79

วิธีที่ง่ายและสั้นมากคือ:

Enterเปิดสถานีเขียนต่อไปนี้และกด

getconf LONG_BIT

หมายเลขผลลัพธ์ (ในกรณีของฉัน 64) คือคำตอบ

เทอร์มินัล - getconf LONG_BIT


7
ในระบบ 32 บิตของฉันนี่ให้คำตอบที่ถูกต้องเช่นกัน จากคำสั่งทั้งหมดที่ระบุไว้ในคำตอบต่าง ๆ ผลลัพธ์ของคำสั่งนี้ตรงไปตรงมาที่สุด
Stephen Ostermiller

ยกเว้น: $ getconf LONGBIT getconf: ตัวแปรที่ไม่รู้จัก `LONGBIT '
Auspex

1
คุณกำลังพลาดขีด @Auspex LONG_BIT
ไมเคิล

@Michael Damn ดังนั้นฉันจึงเป็น ฉันไม่รู้ว่าฉันจัดการมันได้อย่างไรและเมื่ออัพเกรดทั้งสองเครื่องเป็น 64 บิตในเดือนที่ผ่านมามันก็เป็นสิ่งที่สงสัยในตอนนี้ ;-) ขอบคุณมาก!
Auspex

58

การอ้างอิง: ฉันจะรู้ได้อย่างไรว่าฉันใช้ Linux 32 บิตหรือ 64 บิต

ใช้คำสั่ง:

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(ระบุไว้ใน manpage) ;-)
htorque

บนคอมพิวเตอร์ของฉัน (Ubuntu 9.04) ดูเหมือนว่าคำสั่ง arch จะไม่มีอยู่จริง ดังนั้นฉันจะบอกว่า uname -m มีความน่าเชื่อถือมากกว่า
Jonathan Sternberg

@JonathanSternberg: มันถูกเพิ่มเข้ามาไม่กี่เดือนต่อมาพัฒนาโดยผู้เขียนคนเดียวกันunameและรวมอยู่ในcoreutilsแพ็คเกจเดียวกัน ดังนั้นจาก Ubuntu 10.04 เป็นต้นไปจึงมีทั้งคำสั่ง
MestreLion

21

dpkg --print-architecture คำสั่งจะแสดงว่าคุณได้ติดตั้ง Ubuntu OS 32 บิตหรือ 64 บิตแล้ว

บนระบบ 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 บรรทัดอย่างซื่อสัตย์หรือไม่ ใส่ไว้ในบล็อกรหัสที่นี่
kiri

และเมื่อการส่งออกของuname -mไม่ได้เป็นi686... การใช้งานที่ดีของzenityสามารถใช้notify-sendแม้ว่า
Wilf

5

ไปที่การตั้งค่าระบบและอยู่ภายใต้ระบบส่วนตีรายละเอียด คุณจะได้รับรายละเอียดทุกอย่างรวมถึงระบบปฏิบัติการตัวประมวลผลของคุณรวมถึงข้อเท็จจริงที่ว่าระบบกำลังใช้เวอร์ชัน 64 บิตหรือ 32 บิต


ดูเหมือนว่ายอดเยี่ยม แต่ฉันไม่รู้วิธี "ไปที่การตั้งค่าระบบ" (BTW) ฉันใช้ 12.4 MATE
Papou

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_64 คือ 64 บิต i686เป็น 32 บิต

(แต่นี่ยังไม่ใช่คำตอบที่ควรมี))


2
GUI บริสุทธิ์แน่นอน แต่ค่อนข้างจะเปราะบาง ... แพ็คเกจที่มีชื่อ ( หรือคำอธิบาย ) บรรจุlib32อยู่นั้นไม่ใช่วิธีที่เชื่อถือได้ในการตรวจสอบสถาปัตยกรรม
MestreLion

2

ปุ่มเปิดปิด (ด้านบนขวาสุดขั้ว) มีตัวเลือก "เกี่ยวกับคอมพิวเตอร์เครื่องนี้" :)


2
ไม่ได้อยู่ที่ 12.04 LTS
törzsmókus

1

เท่าที่ฉันจำได้มันเป็นไปได้ที่จะติดตั้งเคอร์เนล x86_64 บนระบบ 32 บิต อย่างที่เขียนไว้ที่นี่คุณควรดูว่าคุณมีไลบรารี่ใด / แพคเกจใดที่คุณติดตั้งในระบบของคุณ ดังนั้นวิธีที่ปลอดภัยที่สุดในการดูคือการตรวจสอบว่าคุณมี/lib64และถ้าเป็น symlink/libไป

อีกวิธีที่เป็นไปได้คือตรวจสอบแพ็คเกจที่คุณดาวน์โหลดมา /var/cache/apt/archiveมา หากมี _amd64.deb เป็นระบบ 64 บิตนั่นคือหากคุณติดตั้งแพ็คเกจและยังไม่ได้ล้างแคชของคุณ

ทั้งหมดนี้สามารถทำได้จากKonqueror / Dolphinเพียงแค่ชี้และคลิกหรือ:

ls -la / |grep lib

1

คุณควรทราบว่าคุณอาจมี CPU 64 บิตในขณะที่คุณติดตั้งเคอร์เนล 32 บิต เช่นหาก CPU ของคุณเป็น 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คำสั่ง

ตรวจสอบคำถาม SO นี้


ไม่เกี่ยวข้องกับคำถาม: เขามี CPU 64 บิตและต้องการทราบว่าระบบปฏิบัติการใดที่ติดตั้งไว้
Auspex

0

ดูที่ Software Sources ของคุณใน Synaptic หรือ Software Center หากคุณยังไม่ได้ลบต้นฉบับดั้งเดิมของคุณเช่น cdrom มันจะ (?) ระบุถึงสถาปัตยกรรม มันเป็น GUI แต่จะไม่พูดว่า '32 บิต' หรือ '64 บิต'


-1

ฉันไม่แน่ใจว่าสิ่งที่คุณเรียกว่าระบบปฏิบัติการเป็น 32 บิต

เพื่อเป็นการเฉพาะเจาะจงการกระจายเคอร์เนลและเดสก์ท็อปของฉันคือ 64 บิต Debian / Sid แต่ฉันใช้เป็นประจำschrootเพื่อเรียกใช้deboostrap-ed Debian 32 บิตภายในchrootสภาพแวดล้อม -ed (เพื่อจุดประสงค์ในการทดสอบ)

คุณรู้สึกว่าสภาพแวดล้อม 32 บิตของฉันควรจะเรียกว่า 32 บิต (ฉันเชื่อเช่นนั้น) หรือ 64 บิต (หลังจากทั้งหมดมันจะทำงานภายในเคอร์เนล 64 บิต) ในสภาพแวดล้อมนั้นuname -mบอกว่าi686และไลบรารีทั้งหมดและ executables และกระบวนการเป็น 32 บิต

เพื่อวัตถุประสงค์ในทางปฏิบัติuname -mควรจะเพียงพอ fileคำสั่งสามารถบอกคุณได้ถ้าปฏิบัติการเอลฟ์เป็น 32 บิตหรือ 64 บิตหนึ่ง

ดูบุคลิกภาพเฉพาะ Linux (2) syscall (และuname (2)หนึ่ง)

และข้อมูลฮาร์ดแวร์เกี่ยวกับโปรเซสเซอร์ของคุณสามารถมองเห็นได้เช่น

 cat /proc/cpuinfo

ผลลัพธ์มันเหมือนกันในระบบเดสก์ท็อป 64 บิตของฉันและในสภาพแวดล้อม schroot-ed 32 บิตของฉัน


4
-1: คุณได้เพิ่มจำนวนมากของความสับสนที่ไม่จำเป็นโดยไม่ต้องเพิ่มใด ๆข้อมูลใหม่ที่มีประโยชน์ ทำไมบอกว่าคุณ "ไม่แน่ใจว่าสิ่งที่คุณเรียกว่าระบบปฏิบัติการเป็น 32 บิต"? นั่นเป็นคำถามที่ตรงไปตรงมาสวยหนึ่งคนที่คุณรู้เกี่ยวกับ chrootตัวอย่างของคุณไม่มีจุดหมาย: มันคล้ายกับ Virtual Machine ดังนั้นแน่นอนuname -mจะส่งออกi686ถ้าคุณบู๊ตมันด้วยระบบปฏิบัติการ 32 บิต แต่ "โฮสต์" ยังคงเป็น 64 บิตและuname -mจะพูดอย่างนั้นถ้าคุณเรียกใช้มันนอกสภาพแวดล้อม chroot
MestreLion

2
นอกจากนี้ยัง/proc/cpuinfoทำให้เข้าใจผิด: แสดงความสามารถของ CPU และไม่ใช่สถาปัตยกรรมระบบปฏิบัติการ (และที่ใช้งาน) ที่ติดตั้งจริง เดสก์ท็อปซีพียูแทบทั้งหมดที่ขายใน 5 ปีที่ผ่านมาเป็น 64- บิต แต่มันไม่มีอะไร เกี่ยวข้องกับคำถาม และแน่นอนว่ามันรายงานเหมือนกันในทั้งสองสถานการณ์เนื่องจากฮาร์ดแวร์ CPU ของคุณเหมือนกันและสามารถทำงานได้ทั้งระบบปฏิบัติการ 32 และ 64 บิต
MestreLion

@MestreLion สิ่งที่ Basile พยายามพูดคือในบางกรณีเช่นเมื่อใช้ LXC หรือchrootคุณอาจเรียกใช้ระบบ 32 บิตที่มีเคอร์เนล 64 บิต ในกรณีเหล่านี้unameจะบอกสถาปัตยกรรมเคอร์เนล 64 บิตในขณะที่วิธีอื่นจะบอกสถาปัตยกรรมของผู้ใช้ 32 บิตและไม่ชัดเจนว่าทั้งสองเป็นสถาปัตยกรรม "ใน"
Joni

@Joni: ตกลงฉันเข้าใจ แต่นั่นเป็นสถานการณ์มุมกรณีมากและไม่ใช่กรณีของ OP
MestreLion

อาจเป็นกรณีของ OP ฉันต้องการชี้แจงจุด Basile พยายามทำ (นอกจากนี้ดูเหมือนว่าการแก้ไขก่อนหน้าของฉันเพื่อแก้ไขคำตอบถูกปฏิเสธหรือไม่ในสภาพแวดล้อมนี้uname -mจะส่งออกสถาปัตยกรรมของเคอร์เนลซึ่งเป็น x86_64 ไม่ใช่ i686 )
Joni
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.