Làm cách nào để liệt kê tất cả các thiết bị lưu trữ (ổ ngón tay cái / ổ cứng ngoài) được kết nối qua USB, từ dòng lệnh?


16

Tôi muốn liệt kê các thiết bị CHỈ được kết nối qua usb.

Vấn đề là Ubuntu dường như thấy tất cả các ổ đĩa ngón tay là có thể tháo rời (trong /sys/block/*/removable), nhưng nó không thấy các ổ đĩa cứng bên ngoài theo cùng một cách.

Điều này cụ thể hơn một chút so với Cách phát hiện thiết bị USB?

Câu trả lời:


14

Nếu bạn đang tìm kiếm các đĩa được gắn, một đơn giản

df

sẽ liệt kê chúng cùng với tất cả các đĩa khác của bạn cùng với một số thông tin hữu ích.


2
nhưng điều này mang lại cho tất cả các thiết bị khối, không chỉ những thiết bị được gắn qua USB.
Jeremy Kerr

8

Tôi khuyên bạn nên kiểm tra các thuộc tính udev của thiết bị, cụ thể là thuộc ID_BUStính:

for device in /sys/block/*
do
    if udevadm info --query=property --path=$device | grep -q ^ID_BUS=usb
    then
        echo $device
    fi
done

Điều này cũng tạo ra các thiết bị cho đầu đọc thẻ tích hợp của tôi ngay cả khi không có thẻ được lắp vào.
b_laoshi

@b_laoshi: vâng, những người vẫn sẽ báo cáo là thiết bị lưu trữ, nhưng không có phương tiện truyền thông.
Jeremy Kerr

2

tôi nghĩ

lsusb

sẽ cung cấp cho bạn những gì bạn muốn, ít nhất là nếu tôi hiểu những gì bạn đang hỏi. (Tất nhiên, nó liệt kê tất cả các thiết bị usb, không chỉ lưu trữ.)


2

Chỉ liệt kê các thiết bị lưu trữ USB đính kèm

Chỉnh sửa: Khi tôi có thời gian, tôi sẽ xem lại bài đăng này để chỉ liệt kê các thiết bị USB. Hiện tại, nó liệt kê tất cả các thiết bị được gắn trong /mediađó có thể đủ tốt cho một số người.

Liệt kê tất cả các thiết bị được gắn vào /media

Tất cả các câu trả lời khác ở đây dường như không thành công trong việc lọc ra các thiết bị lưu trữ không phải là USB hoặc các thiết bị USB không lưu trữ. Đây là một lệnh chỉ liệt kê các thiết bị lưu trữ được gắn qua USB. Một ngoại lệ, có thể không quan trọng đối với bất kỳ ai là điều này sẽ không hiển thị các ổ đĩa quang USB được kết nối với phương tiện được gắn.

Yêu cầu cho việc này để làm việc

  • Các thiết bị USB phải được gắn. Hệ điều hành máy tính để bàn Ubuntu thường tự động gắn kết theo mặc định
  • Phương tiện truyền thông phải được gắn trong /mediathư mục. Nếu thiết bị USB của bạn được định cấu hình trong fstab để gắn kết ở nơi khác, bạn sẽ phải điều chỉnh các lệnh sau

Liệt kê các thiết bị lưu trữ USB
Trong trường hợp cụ thể của tôi cho tập lệnh tôi đang viết, tôi liệt kê các phân vùng riêng lẻ. Đây là hai lệnh. Một cái sẽ liệt kê các phân vùng của các thiết bị đính kèm và cái còn lại sẽ liệt kê các thiết bị.

  • Danh sách phân vùng:
    lsblk | grep /media | grep -oP "sd[a-z][0-9]?" | awk '{print "/dev/"$1}'
    Kết quả mẫu:

    /dev/sdd1
    /dev/sdi1
    /dev/sdj1
    /dev/sdj2
    
  • Danh sách thiết bị:
    lsblk | grep /media | grep -oP "sd[a-z]" | awk '{print "/dev/"$1}' | sort | uniq
    Mẫu đầu ra:

    /dev/sdd
    /dev/sdi
    /dev/sdj
    

Điều gì về phân vùng của đĩa nội bộ được gắn vào /media?
muru

Điều đó sẽ gây ra một vấn đề, nhưng một vấn đề không có khả năng ảnh hưởng đến hầu hết người dùng. Tôi sẽ suy nghĩ và cập nhật sau.
b_laoshi
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.