ค้นหาอุปกรณ์ภายนอกและภายในที่ต่ออยู่กับระบบใน Linux [ซ้ำกัน]


3

ทำซ้ำเป็นไปได้:
ค้นหาอุปกรณ์ภายนอกและภายในที่ต่ออยู่กับระบบใน Linux

ฉันจะค้นหาผ่านเทอร์มินัลว่าอุปกรณ์ใดเป็นอุปกรณ์ภายนอกและภายในได้อย่างไร

โดยภายนอกฉันหมายถึงอุปกรณ์ที่ต่ออยู่กับพอร์ต USB ตัวอย่างเช่นไดรฟ์ USB, ฮาร์ดไดรฟ์ USB แบบพกพา ฯลฯ

โดยภายในฉันหมายถึงอุปกรณ์ที่แนบมาภายใน ตัวอย่างเช่น SATA Harddisk เป็นต้น

ขอบคุณ


ซ้ำกันอย่างแน่นอน (ผู้ใช้ crossposted): superuser.com/questions/113086/…
quack quixote

คำตอบ:


4

คุณสามารถใช้lsusbเพื่อแสดงรายการอุปกรณ์ USB lspciเพื่อแสดงรายการอุปกรณ์ PCI และlspcmciaรายการอุปกรณ์ PCMCIA

หากคุณสนใจเฉพาะอุปกรณ์ประเภทดิสก์คุณสามารถดู/dev/disk/by-idได้ ชื่อลิงค์ของอุปกรณ์เริ่มต้นด้วยประเภทการเชื่อมต่อ (usb, ata, scsi-sata, ฯลฯ )


ฉันขี้เกียจดังนั้นฉันมักจะมองเข้าไปใน / proc / พาร์ทิชันเพื่อรับความคิดของอุปกรณ์บล็อกที่แนบและใช้งานได้

2

ไม่สามารถทำได้โดยทั่วไป - เครื่องจำนวนมากมีอุปกรณ์ USB ภายใน (สิ่งต่าง ๆ เช่นอินเตอร์เฟสบลูทู ธ และตัวอ่านลายนิ้วมือมักจะถูกนำไปใช้ในลักษณะนี้) และเป็นไปได้ที่จะมีอุปกรณ์ SATA ภายนอก (แล็ปท็อปที่ฉันใช้อยู่ ท่าเรือ). อุปกรณ์ SCSI ยังสามารถเป็นภายในหรือภายนอก


0

อุปกรณ์บล็อกมีแอตทริบิวต์ "ถอดได้" แม้ว่าสิ่งนี้จะไม่สอดคล้องกับภายใน / ภายนอก (เช่น CDROM ภายในคือ "ถอดออกได้" และไดรฟ์ eSATA อาจผิดประเภท) แต่อาจใกล้เคียงกับวัตถุประสงค์ของคุณมากพอ

$ cd / sys / block /
$ grep ^ * / ถอดออกได้
DM-0 / ถอดออกได้: 0
DM-1 / ถอดออกได้: 0
DM-2 / ถอดออกได้: 0
DM-3 / ถอดออกได้: 0
DM-4 / ถอดออกได้: 0
DM-5 / ถอดออกได้: 0
DM-6 / ถอดออกได้: 0
DM-7 / ถอดออกได้: 0
DM-8 / ถอดออกได้: 0
fd0 / ถอดออก: 1
HDC / ถอดออก: 1
loop0 / ถอดออกได้: 0
loop1 / ถอดออกได้: 0
loop2 / ถอดออกได้: 0
loop3 / ถอดออกได้: 0
loop4 / ถอดออกได้: 0
loop5 / ถอดออกได้: 0
loop6 / ถอดออกได้: 0
loop7 / ถอดออกได้: 0
md0 / ถอดออกได้: 0
md1 / ถอดออกได้: 0
SDA / ถอดออกได้: 0
SDB / ถอดออกได้: 0
SDC / ถอดออกได้: 0
SDD / ถอดออกได้: 0
SDE / ถอดออก: 1
sdf / ถอดออก: 1
SDG / ถอดออก: 1
SDH / ถอดออก: 1
SDI / ถอดออก: 1

0

นี่เป็นตัวอย่างสคริปต์ขนาดเล็กโดยใช้HALถ้าคุณมี

store=$(hal-find-by-capability --capability "storage")
for s in $store
do
  r=$(hal-get-property --udi ${s} --key storage.removable)
  if [ $r = "true" ]; then
    hal-get-property --udi ${s} --key info.product
    prod=$(hal-get-property --udi ${s} --key info.product)
    type=$(hal-get-property --udi ${s} --key storage.drive_type)
    device=$(hal-get-property --udi ${s} --key block.device)
    mdir=$(awk -vdev="$device" '$0~dev{print $2}' /etc/mtab)
    echo Product: ${prod}
    echo Type: ${type}
    echo Mounted on: ${mdir}
  fi
done

vol=$(hal-find-by-capability --capability "volume")
for v in $vol
do
   mountpt=$(hal-get-property --udi ${v} --key volume.mount_point)
   blk=$( hal-get-property --udi ${v} --key block.device )
   echo "mount point: $mountpt"
   echo "device: $blk"
done

ใช้hal-deviceคำสั่งเพื่อแสดงอุปกรณ์ HAL


เย้. ตอนนี้มีความคิดวิธีการทำเช่นนี้กับการแทนที่ของfreedesktop.org/wiki/Software/DeviceKit HAL? : - /
ephemient

ฉันมองไปที่หน้ามันใหม่ฉันเดา ไม่รู้จะทำยังไง
user31894
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.