Tìm một định danh duy nhất cho thẻ SD


10

Tôi có hàng tá thẻ SD mà tôi cần theo dõi cho một dự án. Ngay bây giờ, mỗi cái đều có một số được viết bằng vật lý với điểm đánh dấu vĩnh viễn ở bên ngoài. Điều này không sao, nhưng tôi muốn xem liệu có thứ gì độc đáo được tích hợp trong mỗi thẻ SD mà tôi có thể ghi lại không. Cho đến nay tôi nhận thức được:

  • CID của thẻ SD, thường (không phải luôn luôn ???) bao gồm một số sê-ri duy nhất. Tôi không thể tìm thấy một cách đơn giản để đọc thẻ SD này trong Fedora 21. Một số trang nói rằng trừ khi bạn có đầu đọc thẻ được kết nối trực tiếp với bus PCI (chứ không phải qua USB), bạn không thể thấy CID.
  • Số sê-ri / phân vùng số. Điều này có thể hoạt động nhưng tôi hiểu rằng điều này thay đổi mỗi khi thẻ được định dạng lại, đó là điều chúng ta thỉnh thoảng làm. Vì vậy, không phải là một lựa chọn tốt.
  • Chỉ cần gắn nhãn khối lượng thẻ SD với hệ thống đặt tên độc đáo của riêng tôi. Điều này là quá dễ dàng để thay đổi, và tôi có thể chỉ cần gắn bó với việc viết các con số ở bên ngoài.

Vì vậy, tôi đoán câu hỏi của tôi là:

  1. Có cách nào đáng tin cậy để đọc CID khỏi thẻ SD của tôi để lấy số sê-ri qua đầu đọc thẻ USB trong Fedora 21 hoặc các bản phân phối GNU / Linux khác không?
  2. Nếu không, có cách nào khác để sử dụng số nhận dạng duy nhất hiện có trong thẻ SD hoặc hệ thống khác để nhận dạng duy nhất thẻ SD không?

1
FYI: Bạn không thực sự mong đợi trả lời từng câu trả lời. Mặc dù bỏ phiếu lên / xuống cho họ và, nếu ai đó giải quyết vấn đề của bạn, chọn nó làm câu trả lời được chấp nhận của bạn chắc chắn được đánh giá cao.
derobert

@derobert Hiểu rồi, cảm ơn thông tin!
hpy

Câu trả lời:


3

blkid (8) có lẽ là những gì bạn đang tìm kiếm. Nó sẽ cung cấp UUID của từng thiết bị.

Đối với vfat, có thể đặt UUID bằng cách sử dụng nhãn ứng dụng mtools (1).

Đối với ext2, ext3 và ext4, e2label (8) có thể được sử dụng để đặt UUID.

Vì vậy, nếu bạn định dạng lại theo thời gian, chỉ cần đặt UUID giống như trước đây nếu cần.

Không thể nói cho các đầu đọc thẻ khác, nhưng những đầu đọc tôi đã sử dụng qua cổng USB đi qua UUID của thẻ SD.


1
Âm thanh đầy hứa hẹn, cảm ơn !! Thế còn fat32?
hpy

1
Có, tôi tin rằng cũng mlabel(1)hỗ trợ fat32.
JonathanS

1
mọi thứ blkidtrả về sẽ thay đổi bất cứ khi nào dữ liệu được lưu trên thẻ SD thay đổi. Điều này khác nhiều với CID hoặc số sê-ri. Nếu bạn thực hiện một dd if=/dev/sdcard1 of=/dev/sdcard2 count=2, các thay đổi rất cao blkid /dev/sdcard1sẽ giống hệt blkid /dev/sdcard2. Ngoài ra, nhận xét cuối cùng của câu trả lời là sai lệch: UUID được lấy từ dữ liệu được lưu trên thẻ SD chứ không phải thẻ, rõ ràng hầu hết mọi đầu đọc USB sẽ cho phép bạn đọc nội dung của thẻ SD. Những gì vẫn không thể là truy cập vào CID.
nhân

3

Dựa trên nhận xét @humanityAndpeace, Tìm kiếm CIDcó thể là một giải pháp, nhưng dường như bạn không thể lấy nó từ tất cả các thẻ sd. Ít nhất đó là trường hợp cho một tôi đã thử nghiệm. Xem thêm tài liệu tại đây .

Ý tưởng là để có được infos từ /sys/block/<yourBlockDevice>/device/cid

Lưu ý : bạn có thể đọc <yourBlockDevice>từ sudo dmesgsau khi cắm

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.