ฉันมีฮาร์ดดิสหลายตัวที่เชื่อมต่อกับเซิร์ฟเวอร์ของฉันและฉันไม่แน่ใจว่าอันไหนในมุมมองของ sdXY หากฉันเห็นหมายเลขซีเรียลของฮาร์ดดิสของฉันจากเทอร์มินัลฉันสามารถระบุได้อย่างง่ายดาย
มีวิธีใดบ้างที่ฉันเห็นพวกเขาจากเทอร์มินัล
ฉันมีฮาร์ดดิสหลายตัวที่เชื่อมต่อกับเซิร์ฟเวอร์ของฉันและฉันไม่แน่ใจว่าอันไหนในมุมมองของ sdXY หากฉันเห็นหมายเลขซีเรียลของฮาร์ดดิสของฉันจากเทอร์มินัลฉันสามารถระบุได้อย่างง่ายดาย
มีวิธีใดบ้างที่ฉันเห็นพวกเขาจากเทอร์มินัล
คำตอบ:
โซลูชันอื่นที่ไม่ต้องการสิทธิ์พิเศษ:
udevadm info --query=all --name=/dev/sda | grep ID_SERIAL
นี่คือห้องสมุดจริง ๆ ที่lsblk
กล่าวถึงโดย don_crissti, leverage แต่รุ่น lsblk ของฉันไม่มีตัวเลือกสำหรับซีเรียล
grep ID_SCSI_SERIAL
อาจจะเป็นสิ่งที่จริงให้หมายเลขซีเรียลของไดรฟ์เมื่อเทียบกับโลกกว้างชื่อ (WWN) ID_SERIAL
รายงานภายใต้
ID_SCSI_SERIAL
หรือสิ่งใด ๆ ที่คล้ายคลึงกัน (ไม่ID_ATA_SERIAL
): E: ID_SERIAL=TOSHIBA-TR150_23SC51E8J2BI ... E: ID_SERIAL_SHORT=23SC51E8J2BI ... E: ID_WWN=0x5e83a97200463ff3 ... E: ID_WWN_WITH_EXTENSION=0x5e83a97200463ff3
ในประเภทอาคาร:
# hdparm -I /dev/sd? | grep 'Serial\ Number'
แก้ไข: คุณสามารถใช้lshw
หรือsmartctl
lshw
# lshw -class disk
smartctl
# smartctl -i /dev/sda
หากคุณไม่มีเครื่องมือเหล่านั้นเพียงแค่ติดตั้งแพ็คเกจต่อไปนี้
# apt-get install hdparm
# apt-get install smartmontools
# apt-get install lshw
hdparm -I /dev/sd?
hdparm
แพ็คเกจ(apt-ly named) บน ARM (Raspbian บน Raspberry Pi)
hdparm -I /dev/sd? | grep --before-context=4 'Serial\ Number'
เพื่อเชื่อมโยงหมายเลขซีเรียลกับอุปกรณ์ ดูเหมือนว่าคำขอต้นฉบับจะเป็นผลลัพธ์
ชื่ออุปกรณ์1และหมายเลขซีเรียลที่เกี่ยวข้อง:
lsblk --nodeps -o name,serial
เอาท์พุท:
NAME SERIAL
sda 0000000012400917BA30
sdb 0000000012400917BA96
เพิ่ม-n
ถ้าคุณไม่ต้องการพิมพ์บรรทัดส่วนหัว:
lsblk --nodeps -no name,serial
เอาท์พุท:
sda 0000000012400917BA30
sdb 0000000012400917BA96
ผ่านdevice
เป็นอาร์กิวเมนต์เพื่อรับเฉพาะหมายเลขซีเรียลของอุปกรณ์เฉพาะ:
lsblk --nodeps -no serial /dev/sda
เอาท์พุท:
0000000012400917BA30
เก็บไว้ในใจlsblk
จะแสดงข้อมูลเกี่ยวกับทั้งหมดที่มีอยู่ (หรือที่ระบุ)อุปกรณ์ป้องกัน ตอนนี้สำหรับผู้ที่ไม่ทราบความหมายระยะสุดท้าย:
โดยทั่วไปอุปกรณ์บล็อคคืออุปกรณ์ที่จัดเก็บหรือเก็บข้อมูล ดิสก์ดิสเก็ตต์ฮาร์ดไดรฟ์และไดรฟ์ซีดีรอมล้วนเป็นอุปกรณ์บล็อคทั้งหมด แต่นั่นไม่ใช่ปัญหาเมื่อใช้lsblk
ในขณะที่คุณสามารถเพิ่มคอลัมน์เพิ่มเติมเช่นtype
(ประเภทอุปกรณ์) และ / หรือtran
(ประเภทการขนส่งอุปกรณ์):
lsblk --nodeps ไม่มีชื่อ, อนุกรม, ประเภท, ทราน
sda 0000000012400917BA30 disk sata
sdb 0000000012400917BA96 disk sata
sr0 4B583242334C453233353320 rom usb
lsblk
จาก util-linux เวอร์ชั่น 2.24 หรือสูงกว่า: github.com/karelzak/util-linux/commit/…
โดยการใช้hdparm
คุณสามารถดูหมายเลขซีเรียลฮาร์ดดิสของคุณได้จากเทอร์มินัล
เปิดเทอร์มินัลของคุณและพิมพ์เป็น
hdparm -I /dev/sd?|grep -E "Number|/dev"
-I
hdparm
ฉันไม่ต้องการที่อย่างใดอย่างหนึ่งและต้องการวิธีการอ่าน ser # โดยไม่มีสิทธิ์รูท นี่คือเหตุผลที่ฉัน upvoted โซลูชันของ don_crissti เท่านั้น - syntaxerror 57 วินาทีที่แล้ว
$ ls -al /dev/disk/by-id/*sda*
นี่จะแสดงหมายเลขซีเรียลกับชื่อดิสก์ที่คุณคุ้นเคย
by-id
dir เป็นเพียงการเชื่อมโยงดังนั้นls -al /dev/disk/by-id/
จะแสดงให้คุณเห็นสิ่งที่คุณต้องการอยู่แล้ว
วิธีที่ง่ายที่สุดที่ฉันรู้ (ไม่ต้องใช้ราก):
inxi -Dplxx
ผลลัพธ์นั้นดิสก์ทั้งหมด serials ของพวกเขาและข้อมูลเพิ่มเติมใด ๆ -p เพิ่มพาร์ติชัน -l เพิ่มป้ายกำกับ -u เพิ่ม UUID สำหรับพาร์ติชัน
นอกจากนี้ยังง่ายต่อการจดจำมาก
ตัวอย่าง:
inxi -Dxx
Drives: HDD Total Size: 810.2GB (42.9% used)
ID-1: /dev/sdc model: ST3160827AS size: 160.0GB serial: 5MT2HMH6
ID-2: /dev/sdb model: WDC_WD3200JD size: 320.1GB serial: WD-WCAMR1302926
ID-3: /dev/sda model: ST380817AS size: 80.0GB serial: 4MR2EWBE
ID-4: /dev/sdd model: ST3250824AS size: 250.1GB serial: 9ND08GKX
โปรดทราบว่าสิ่งนี้จะกรองออปติคัลไดรฟ์ออก วิธีดูข้อมูลออปติคัล:
inxi -Dxxd
Drives: HDD Total Size: 810.2GB (42.9% used)
ID-1: /dev/sdc model: ST3160827AS size: 160.0GB serial: 5MT2HMH6
ID-2: /dev/sdb model: WDC_WD3200JD size: 320.1GB serial: WD-WCAMR1302926
ID-3: /dev/sda model: ST380817AS size: 80.0GB serial: 4MR2EWBE
ID-4: /dev/sdd model: ST3250824AS size: 250.1GB serial: 9ND08GKX
Optical-1: /dev/sr0 model: LITE-ON DVDRW SOHW-1693S
rev: KS09 dev-links: dvd,dvdrw
Features: speed: 48x multisession: yes
audio: yes dvd: yes rw: cd-r,cd-rw,dvd-r state: running
Optical-2: /dev/sr1 model: LITE-ON LTR-52327S rev: QS0C dev-links: cdrom,cdrw
Features: speed: 52x multisession: yes
audio: yes dvd: no rw: cd-r,cd-rw state: running
โปรดทราบว่าในระบบ Debian ของฉัน lsblk จะไม่แสดงรายการใด ๆ สำหรับสิ่งพิมพ์ไม่ว่าจะเป็นผู้ใช้หรือผู้ใช้ นี่คือเหตุผลที่ inxi ใช้วิธีการที่เชื่อถือได้มากขึ้นในการรับข้อมูล
lsblk --nodeps -o name,serial
NAME SERIAL
fd0
sda
sdb
sdc
sdd
sr0
sr1
lsblk --version
lsblk from util-linux 2.25.2
อย่างที่คุณเห็น lsblk คิดว่าออปติคัลไดรฟ์และฟลอปปี้ไดรฟ์ก็เป็นดิสก์เช่นกันซึ่งในความเป็นจริงแล้วมันไม่ใช่ดิสก์เพราะมันจะไม่กลายเป็นดิสก์จนกว่าจะใส่ดิสก์ และมันไม่แสดงอะไรเลยสำหรับซีเรียล แต่อย่างใดมันไม่แสดงอะไรเลยสำหรับค่าอื่น ๆ เช่นฉลาก ข้อผิดพลาดอย่างแน่นอนเนื่องจากข้อมูลนี้มีอยู่ในระบบนั่นคือสิ่งที่ inxi รับโดยตรง
lsblk
ไม่คิดว่าพวกเขากำลังดิสก์มันก็แสดงรายการอุปกรณ์ป้องกัน ดูโพสต์ที่อัปเดตของฉันสำหรับการชี้แจง เพื่อที่จะไม่แสดงข้อมูล - นี่เป็นเพราะคุณกำลังใช้เดเบียนซึ่งเป็นตัวระบุถึงlsblk
พฤติกรรมของพวกเขา มันทำงานได้อย่างดีใน ArchLinux ดังนั้นแน่นอนไม่ได้เป็นปัญหา นอกจากนี้ยังinxi
เป็นเพียงสคริปต์ทุบตีที่ใช้คำสั่งอื่น ๆ เพื่อรับข้อมูลนั้น มันไม่ได้รับอะไร "โดยตรง"
lsblk --nodeps -o name,serial
แสดงหมายเลขซีเรียลฉันไม่สามารถทำซ้ำบั๊กได้
ฉันชอบที่จะใช้ls -l /dev/disk/by-id
เพราะมันจะแสดง WWN ของดิสก์ถ้ามี มักจะพิมพ์ WWN บนฉลากของดิสก์ดังนั้นจึงง่ายต่อการระบุ
root@server (16:27:58):~# ls -l /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root 9 Dec 20 01:51 ata-Samsung_SSD_850_EVO_250GB_S3PZNF0JB57579N -> ../../sda
lrwxrwxrwx 1 root root 10 Dec 20 01:51 ata-Samsung_SSD_850_EVO_250GB_S3PZNF0JB57579N-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Dec 20 01:51 ata-Samsung_SSD_850_EVO_250GB_S3PZNF0JB57579N-part2 -> ../../sda2
...
lrwxrwxrwx 1 root root 9 Dec 20 01:51 wwn-0x50014ee25ffd0a5c -> ../../sdc
lrwxrwxrwx 1 root root 9 Dec 20 01:51 wwn-0x50014ee2b554c0b4 -> ../../sdb
lrwxrwxrwx 1 root root 9 Dec 20 01:51 wwn-0x5002538d427700f0 -> ../../sda
ls -al /dev/disk/by-id/ | grep sdX | grep wwn | awk '{print $9'}
นี่จะแสดงwwn-id
สำหรับดิสก์ awk
กรองอาจต้องมีการปรับขึ้นอยู่กับการกระจาย OS และรุ่น ฉันต้องการโซลูชันที่ใช้สคริปต์ในการอ่านwwn-id
ซึ่งจำเป็นสำหรับการฟันดาบ Pacemaker หากจำเป็นต้อง/dev/sdX1
สร้างพาร์ติชัน ( เช่น) อีกอันหนึ่งgrep
เพื่อกรองผลลัพธ์:
ls -al /dev/disk/by-id/ | grep sdX | grep wwn | grep -v sdX1 | awk '{print $9'}