ฮาร์ดดิสก์ไดรฟ์ตัวไหนเป็นตัวไหน?


38

ฉันต้องการทราบว่าฮาร์ดดิสก์ไดรฟ์ใดสอดคล้องกับเส้นทางอุปกรณ์ เป็นเรื่องเล็กน้อยที่จะจับคู่สถิติฮาร์ดดิสก์ (ยี่ห้อขนาด) กับเส้นทาง dev แต่ฉันต้องการมากกว่านี้ ฉันต้องการที่จะรู้ว่าไดรฟ์ใดอยู่ในกรณีของฉัน เป็นวิธีที่ดีในการรับข้อมูลนี้คืออะไร?

ข้อ จำกัด

  • ฉันขี้เกียจ. ฉันไม่ต้องการแยกเซิร์ฟเวอร์ออกเพื่อลบไดรฟ์ทั้งหมดจากนั้นเพิ่มทีละหนึ่ง
  • รีบูตเป็นที่ยอมรับ
  • ไดรฟ์จะถูกรวมเข้าด้วยกันอย่างไม่สะดวกในกรณีนี้ ข้อมูลป้ายกำกับถูกซ่อน
  • กรณีสามารถเปิดได้ ดิสก์ส่วนใหญ่เป็น SATA ดังนั้นในทางทฤษฎีจึงสามารถถอดเปลี่ยนได้อย่างรวดเร็ว การถอดสายเป็นเกมที่ยุติธรรม

โบนัส

ฉันจะให้รางวัลคำตอบสำหรับคำตอบที่ดีที่สุด / ง่ายที่สุดหรือตอบ cli และให้รางวัลกับคำตอบที่ดีที่สุดในประเภทอื่น ฉันชอบคำตอบ cli แต่เข้าใจว่าคนอื่น ๆ จำนวนมากจะขอบคุณวิธีการจุดและคลิกที่ดี

คำตอบ:


26

hdparm -i /dev/sdX ให้หมายเลขซีเรียลแก่คุณซึ่งเป็นวิธีที่ง่ายที่สุดที่ฉันทราบเพื่อแยกฮาร์ดดิสก์ที่มีขนาดและยี่ห้อเดียวกัน

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

ตัวอย่าง:

$ sudo hdparm -i /dev/sdb | grep -i serial
 Model=SAMSUNG HD253GJ, FwRev=1AJ10001, SerialNo=S24JJ90Z505435

หากคุณต้องการข้อมูลเพิ่มเติมlshw -c storage -c diskจะให้ผลลัพธ์ที่อ่านได้มากที่สุด มันเป็นข้อมูลเดียวกับ Disk Utility ในรูปแบบบรรทัดคำสั่ง

นี่คือตัวอย่างที่มีคำอธิบายประกอบจากการตั้งค่าที่ซับซ้อนที่สุดที่ฉันสามารถเข้าถึงได้โดยมีตัวควบคุมดิสก์สี่ตัวฮาร์ดดิสก์เจ็ดตัว DVD ROM และดิสก์ USB

เอาต์พุตถูกลดขนาดให้เล็กลงเพื่อโฟกัสไปยังส่วนที่น่าสนใจ:

[server ~]$ sudo lshw -c storage -c disk
  *-storage   
  # a 2-port PCI-E SATA controller
       description: SATA controller
       product: 88SE9123 PCIe SATA 6.0 Gb/s controller
       vendor: Marvell Technology Group Ltd.
     *-disk
          description: ATA Disk
          product: WDC WD15EADS-00P
          vendor: Western Digital
  # 'physical id' corresponds to port number, first port is 0
          physical id: 0  
          logical name: /dev/sdg
          serial: WD-WMAVU0849124
          size: 1397GiB (1500GB)
     *-cdrom
          description: DVD reader
          product: BD-ROM BR-5100S
          vendor: Optiarc
          physical id: 1
          logical name: /dev/cdrom1
          logical name: /dev/dvd1
          logical name: /dev/scd0
          serial: [Optiarc BD-ROM BR-5100S 1.02 May20 ,2008
  *-storage
  # mobo controller for eSATA ports. Not used.
       description: SATA controller
       product: JMB362/JMB363 Serial ATA Controller
       vendor: JMicron Technology Corp.
  *-ide
  # mobo controller for IDE. Not used.
       description: IDE interface
       product: JMB362/JMB363 Serial ATA Controller
       vendor: JMicron Technology Corp.
  *-storage
  # the primary SATA controller, six ports
       description: SATA controller
       product: 82801JI (ICH10 Family) SATA AHCI Controller
       vendor: Intel Corporation
  # 'disk:0' means port 0, same as physical id
     *-disk:0
          description: ATA Disk
          product: WDC WD1600BEVS-0
          vendor: Western Digital
          physical id: 0
          logical name: /dev/sda
          serial: WD-WXEY08T58317
          size: 149GiB (160GB)
     *-disk:1
          description: ATA Disk
          product: ST32000542AS
          vendor: Seagate
          physical id: 1
          logical name: /dev/sdb
          serial: 5XW1RTDS
          size: 1863GiB (2TB)
     *-disk:2
          description: ATA Disk
          product: ST32000542AS
          vendor: Seagate
          physical id: 2
          logical name: /dev/sdc
          serial: 5XW23W0W
          size: 1863GiB (2TB)
     [...]
  *-scsi
  # the USB disk, as evidenced by the bus info 
       physical id: 1
       bus info: usb@1:1
       capabilities: emulated scsi-host
     *-disk
          description: SCSI Disk
          product: 10EAVS External
          vendor: WD
          physical id: 0.0.0
          logical name: /dev/sdh
          serial: WD-WCAU46029507
          size: 931GiB (1TB)

ฉันคิดว่า Disk Utility เร็วกว่าที่จะอ่าน เวอร์ชันบรรทัดคำสั่งมีข้อได้เปรียบในการใช้งานผ่าน ssh และในสคริปต์

และฉันก็ยังคิดว่าหมายเลขซีเรียลเป็นทางออกที่น่าเชื่อถือที่สุด :)

"รหัสทางกายภาพ" ของแต่ละไดร์ฟสอดคล้องกับตำแหน่งที่เชื่อมต่อกับเมนบอร์ด และเริ่มต้นด้วย 0 ดังนั้นรหัสทางกายภาพของ 2 จะหมายถึงว่าไดรฟ์นั้นเชื่อมต่อกับพอร์ต sata ที่ 3 ของ mobo หรืออุปกรณ์อื่น ๆ ที่เกี่ยวข้อง


น่าสนใจ ซีเรียล / ฉลากดีที่มี แต่ในสถานการณ์ของฉันดิสก์ถูกยัดเยียดในที่ยึดที่ปิดกั้นสติ๊กเกอร์จากมุมมอง สิ่งที่ดีที่สุดที่ฉันทำได้คือติดตามสายเคเบิล ฉันไม่เห็นสิ่งใดที่hdparm -iมีประโยชน์ในทันที แต่ฉันจะต้องอ่านหน้าคู่มือเพื่อดูว่าฉันไม่สามารถรับข้อมูลเพิ่มเติมได้หรือไม่
djeikyb

ฮ่า ๆ , ซีเรียลนั้นน่าเชื่อถือที่สุด, แต่นี่จะให้แผนที่ที่มีประโยชน์ของการรู้จำอุปกรณ์ linux -> การเชื่อมต่อทางกายภาพ ... ผ่านอินเตอร์เฟสบรรทัดคำสั่ง ขอบคุณ!
djeikyb

34

ยูทิลิตี้ดิสก์

นี่คือแอปพลิเคชั่น GUI ที่จะให้ข้อมูลเกี่ยวกับรุ่นขนาดหมายเลขซีเรียลและพา ธ อุปกรณ์ของไดรฟ์ของคุณ มีการติดตั้งตามค่าเริ่มต้นบน Ubuntu Desktop คุณสามารถกดปุ่มอูบุนตู Dash และค้นหา "อรรถประโยชน์ดิสก์" palimpsestเพื่อหามันหรือทำงานในสถานีด้วย

ยูทิลิตี้ดิสก์


4
และคุณจะต้องใช้มือเดียวและนิ้วมือนั่นคือสิ่งที่ฉันเรียกว่าการอนุรักษ์พลังงาน "ช่วยโลกใช้อรรถประโยชน์ดิสก์"
Allan

4
ฉันคิดว่านี่จะเป็นคำตอบด้วย "สถานที่: พอร์ต X ของอะแดปเตอร์โฮสต์ SATA" เป็นคุณสมบัตินักฆ่า ฉันชอบที่จะเห็นคำตอบ cli บางอย่างเช่นกัน Octavian & faustus มีวิธีแก้ปัญหาที่น่าสนใจตามแนวเหล่านั้น
djeikyb

18

เปิดเคสและฟังไดรฟ์พร้อมกับสำเนา "The Linux Journal" จากนั้นเรียกใช้ dd ในแต่ละไดรฟ์เพื่อสร้างเสียงรบกวนดิสก์

หมายเหตุ: วิธีนี้ใช้ไม่ได้กับ SSD!


2
Stethoscope ftw
Jeremy

1
รักคำตอบนี้ ฉันชอบผลลัพธ์ทางเทคนิคของpalimpsestและlshwนี่เป็นครั้งที่สาม
djeikyb

SSD ไม่สร้างเสียงรบกวน นอกจากนี้โซลูชันจะไม่ทำงานหากคุณมีไดรฟ์มากกว่าหนึ่งตัวและมีกระบวนการอื่นที่อ่านจากไดรฟ์สองตัวพร้อมกัน
Sergiy Kolodyazhnyy

นอกจากนี้สิ่งนี้จะไม่ช่วยถ้าคุณทำงานกับเซิร์ฟเวอร์ระยะไกลผ่านทางsshหรือ RDP
Sergiy Kolodyazhnyy

2
เสียงอะไร "หวือหวา" อาจเป็นอย่างไร
jjg

10

คุณสามารถรับข้อมูลจาก / sys (หรือ / dev สำหรับเรื่องนั้น):

anthony@Zia:~$ ls -l /sys/block/ | grep sd.
lrwxrwxrwx 1 root root 0 Feb 25 13:30 sda -> ../devices/pci0000:00/0000:00:1f.2/host2/target2:0:0/2:0:0:0/block/sda
lrwxrwxrwx 1 root root 0 Feb 25 13:30 sdb -> ../devices/pci0000:00/0000:00:1f.2/host3/target3:0:0/3:0:0:0/block/sdb
lrwxrwxrwx 1 root root 0 Feb 25 13:30 sdc -> ../devices/pci0000:00/0000:00:1f.2/host4/target4:0:0/4:0:0:0/block/sdc
lrwxrwxrwx 1 root root 0 Feb 25 13:30 sdd -> ../devices/pci0000:00/0000:00:1f.2/host5/target5:0:0/5:0:0:0/block/sdd

ดังนั้นคุณสามารถเห็นดิสก์สี่ตัวของฉันอยู่บนพอร์ต (โฮสต์ / เป้าหมาย) 2 ถึง 5

คุณยังสามารถทำ ls -l /dev/disk/by-pathและดูได้ที่นั่น


2
+1 สำหรับการเข้าถึงข้อมูลพื้นฐานจาก / sys และ / dev ฉันยังคงชอบข้อมูลรวมจากโซลูชันที่ได้รับการยอมรับดีกว่า แต่การรู้วิธีรับและอ่านข้อมูลพื้นฐานนั้นมีค่ามาก นี่เป็นส่วนที่ขาดไปของคำตอบที่มีขนาดใหญ่กว่าที่ @ jg-faustus และ @Allan ให้
djeikyb

ในความเป็นจริงถ้าคุณเรียกใช้strace -e trace=open lsblkและstrace -e trace=open lsblkนั่นคือข้อมูลที่ถูกอ่าน คำตอบนี้สมควรได้รับการโหวตมากขึ้น
Sergiy Kolodyazhnyy

8

hwinfo --diskผมขอแนะนำให้

นี่จะแสดงรายการข้อมูลที่เกี่ยวข้องทั้งหมดสำหรับฮาร์ดดิสก์ของคุณ hwinfo --partitionหากท่านต้องการข้อมูลเพิ่มเติมเกี่ยวกับพาร์ทิชันที่คุณสามารถใช้

คุณสามารถรวมทั้งสองข้อด้านบนเข้ากับ--shortตัวเลือกเพื่อให้ได้ภาพที่สั้นลง


สิ่งนี้ดูมีแนวโน้มมากที่สุดโดยเฉพาะอย่างยิ่งบรรทัด SysFS และ Device Files แต่ฉันไม่แน่ใจว่าจะแปลเป็นภาษาอังกฤษได้อย่างไร
djeikyb

5

Hardinfo เป็น GUI ที่จะช่วยให้คุณรวบรวมข้อมูลระบบของคุณซึ่งอาจรวมถึง แต่ไม่ จำกัด เพียงอุปกรณ์เก็บข้อมูลที่เชื่อมต่อทางกายภาพและระบบไฟล์ดังที่แสดงในภาพหน้าจอถัดไป:

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

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

เว็บไซต์ Hardinfo: http://hardinfo.berlios.de/HomePage



3

วิธีที่เร็วและง่ายที่สุด

1. เปิด Gnome-Terminal

2. ป้อน sudo blkid

3. ใส่รหัสผ่าน

4. มันจะบอกคุณว่าไดรฟ์ตัวใดอยู่ในรูปแบบที่อ่านง่าย


2

หากคุณต้องการวิธีที่ไม่สามารถเห็นป้ายกำกับได้ซึ่งเท่าที่ฉันรู้ว่าไม่มีคำตอบอื่นใดเลย ฉันจะ unmount ไดรฟ์ทั้งหมด (ถ้าเป็นไปได้คุณอาจต้องบูตจากซีดีสดเพื่อทำสิ่งนี้) ไดรฟ์ทั้งหมดควรหมุนลง จากนั้นคุณสามารถเมานต์แต่ละคนแบบก้าวหน้าและฟังหรือรู้สึกว่าอันไหนหมุนไป ด้วยวิธีนี้คุณเพียงแค่ต้องการปิดฝาเคสของคุณ แต่คุณไม่จำเป็นต้องเห็นฉลากที่ดีถ้าพวกเขาทั้งหมดพันกัน

Simples


1

คำถามหลัก:

ฉันต้องการทราบว่าฮาร์ดดิสก์ไดรฟ์ใดสอดคล้องกับเส้นทางอุปกรณ์

แนวทางบรรทัดคำสั่ง

  1. วิธีการพื้นฐานและอื่น ๆ คือการตรวจสอบ/dev/ระบบไฟล์ มีหลายไดเร็กทอรี /dev/disk/ที่มี symlink ไปยังไฟล์อุปกรณ์และไดเร็กทอรีเหล่านั้นถูกจัดระเบียบบน UUID, id, พา ธ ใน/sysระบบไฟล์และเลเบล (หากอุปกรณ์ / พาร์ติชันมีหนึ่ง) ตัวอย่างเช่นการรู้ UUID ของไดรฟ์ที่ฉันต้องการค้นหาฉันสามารถทำสิ่งนี้:

    $ find /dev/disk/by-uuid/ -mindepth 1 -printf "%p >>> %l\n"
    /dev/disk/by-uuid/8e344ab1-5eb5-4e20-becd-4147fffd439f >>> ../../sdb6
    /dev/disk/by-uuid/483CDA9D3CDA84FA >>> ../../sdb5
    /dev/disk/by-uuid/32AE5766AE5721A1 >>> ../../sdb4
    /dev/disk/by-uuid/7852-5217 >>> ../../sdb2
    /dev/disk/by-uuid/D668510B6850EC2D >>> ../../sdb1
    /dev/disk/by-uuid/B8E453D4E453940A >>> ../../sdb3
    /dev/disk/by-uuid/86df21bf-d95f-435c-9292-273bdbcba056 >>> ../../sda1
    
  2. Ubuntu มาพร้อมกับUDisksตัวจัดการดิสก์เป็นค่าเริ่มต้น มียูทิลิตี้สองตัวที่สามารถใช้ได้ ข้อมูลจากวิธี # 1 ถูกแยกวิเคราะห์แล้วเพื่อความสะดวกของผู้ใช้ ตัวอย่างเช่นเพียงแค่ค้นหาว่าอุปกรณ์ใดที่ตรงกับรุ่นของฮาร์ดไดรฟ์เราสามารถทำได้ดังนี้:

    $ udisksctl  status
    MODEL                     REVISION  SERIAL               DEVICE
    --------------------------------------------------------------------------
    Radeon R7                 1.01      A22MD061520000172    sda     
    TOSHIBA MQ01ABF050        AM0P3M    Z4GRCSXAT            sdb     
    

    สามารถรับข้อมูลขั้นสูงผ่านทางudisksctl info -b /dev/sda1อุปกรณ์เฉพาะหรือudisksctl dumpสำหรับอุปกรณ์ทั้งหมด udisksctl monitorสามารถใช้กับการเชื่อมต่อ / ถอดไดรฟ์ได้

โดยเฉพาะอย่างยิ่งถ้าคุณต้องการจับคู่ UUID กับไดรฟ์เฉพาะคุณสามารถกรองudisksctl infoด้วยgrep:

    $ udisksctl info -b /dev/sda1 | grep 'IdUUID:\|Id:'                                                   
    Id:                         by-id-ata-Radeon_R7_A22MD061520000172-part1
    IdUUID:                     86df21bf-d95f-435c-9292-273bdbcba056

แนวทางของ GUI:

ด้วยการใช้ข้อมูลที่UDisksวางไว้บนบัสการสื่อสารระหว่างกระบวนการที่รู้จักกันในชื่อdbusฉันได้เขียนตัวบ่งชี้สำหรับ Ubuntu ด้วยเดสก์ท็อป Unity (แม้ว่ามันจะสามารถใช้กับผู้อื่นได้เช่นกัน) เดิมทีมันถูกเขียนขึ้นสำหรับตัวบ่งชี้การใช้งานระบบไฟล์ (ดูลิงค์สำหรับคำแนะนำในการติดตั้ง) จะช่วยให้การแสดงข้อมูลสำหรับไดรฟ์ที่ติดตั้งทั้งหมดสะดวกและคุณสมบัติอื่น ๆ เช่นการคลิกที่พาร์ทิชัน / อุปกรณ์และการเปิดไดเรกทอรีที่เกี่ยวข้องในการจัดการไฟล์

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


มีข้อมูลดี ๆ มากมายที่นี่ แต่คำแนะนำ dev / sys fs ของคุณทำให้เกิดคำถามว่า: "ฉันจะรู้ได้อย่างไรว่าฟิสิคัลดิสก์ใดที่มีพาร์ติชันด้วย uuid นี้" นี่คือสิ่งที่ฉันถามในตอนแรก
djeikyb

@djeikyb นั่นเป็นหนึ่งในสิ่งที่ฉันแก้ไขในขณะที่ทำงานกับตัวบ่งชี้ที่ฉันพูดถึงและudisksctlอาจเป็นวิธีที่ง่ายที่สุด - คุณสามารถกรองด้วย grep สำหรับอุปกรณ์ + บรรทัด UUID ฉันจะแก้ไขมันเป็นคำถามของฉัน สำหรับโซลูชันที่กำหนดเองแน่นอนว่ามันสามารถเขียนสคริปต์ด้วย perl หรือ python หรือแม้แต่ shell script ซึ่งคุณสำรวจ/dev/disk/by-idและจับคู่กับ symlink /dev/disk/by-uuidระบบ
Sergiy Kolodyazhnyy

@djeikyb ดังนั้นโดยทั่วไปแล้วคุณต้องการทราบว่าตัวเชื่อมต่อใดถูกใช้โดยไดรฟ์ตัวใดใช่ไหม และไม่รู้รุ่นหรือฮาร์ดไดรฟ์หรือไม่
Sergiy Kolodyazhnyy

@djeikyb ฉันได้อ่านมาแล้วพวกเขาก็ให้ความสำคัญกับหมายเลขซีเรียลของแต่ละดิสก์ . . ซึ่งเป็นสิ่งที่ฉันให้ไว้ในudisksctl statusบางส่วนด้วย
Sergiy Kolodyazhnyy

@djeikyb ที่น่าสนใจ Default Disks Utility palimpsetมีการเปลี่ยนชื่อเป็นgnome-disks-utilityแต่ไม่มี "ตำแหน่ง" อีกต่อไป อย่างน้อยไม่ได้อยู่ใน 16.04 ที่ฉันกำลังทำงานอยู่
Sergiy Kolodyazhnyy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.