В Linux я могу использовать smartctl
чтобы узнать производителя, модель, версию прошивки и серийный номер жесткого диска:
# smartctl -a /dev/sdb
smartctl 5.40 2010-07-12 r3124 [x86_64-unknown-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net
Device: SEAGATE ST9300603SS Version: 0006
Serial number: 6SE1ZCSR0000B121LU63
Device type: disk
Transport protocol: SAS
Серийный номер жесткого диска (здесь 6SE1ZCSR0000B121LU63
) гарантированно будет глобально уникальным? Он уникален только для конкретного производителя? Или даже конкретную модель?
Уникальность серийного номера не гарантируется. Но поскольку разные производители используют разные схемы генерации S / N, они в большинстве своем уникальны. Также нет никаких причин для производителей делать два и более HDD с одним серийным номером. Я могу сказать, что если они это сделают, возврат по гарантии будет очень затруднен. Как они будут различать разные устройства? Это назначение S / N.
столкновения действительно маловероятны на практике
Бывают случаи, когда программное обеспечение привязано к модели жесткого диска и серийному номеру. Когда жесткий диск выходит из строя, перенастраивать всю систему очень сложно. В таком случае есть возможность сделать полную копию старого HDD. Для перезаписи серийного номера и модели на жестком диске требуется специальное программное обеспечение и / или оборудование, но это возможно. И это может сэкономить много времени и / или денег.
Кроме того, когда люди хотят установить больший жесткий диск в свои игровые консоли XBOX, они покупают более дешевые обычные жесткие диски на рынке, а затем настраивают эти жесткие диски для работы с XBOX с помощью специального программного обеспечения. Эта программа переписывает модель, серийный номер и некоторую скрытую информацию жесткого диска, поэтому XBOX «думает», что жесткий диск является оригинальным от производителя консоли. Ищите инструкцию Вот.
Если вы действительно хотите получить уникальный идентификатор жесткого диска, попробуйте изучить спецификацию протокола SAS и характеристики жестких дисков с таким интерфейсом. Вы найдете интересную вещь
В SAS имена устройств и портов являются всемирно уникальными именами в транспортном протоколе. Идентификаторы портов - это значения, по которым порты идентифицируются в домене и используются в качестве адресов SAS. Phy-идентификаторы уникальны внутри устройства.
Также из Вот
Каждый порт SAS в домене SAS имеет идентификатор порта SCSI, который однозначно определяет порт в домене SAS. Он назначается производителем устройства, как MAC-адрес устройства Ethernet, и, как правило, также является уникальным во всем мире. Устройства SAS используют эти идентификаторы портов для передачи данных друг другу.
Вы можете прочитать эти идентификаторы и использовать их для распознавания устройств.
Краткий ответ: Для моих целей я считаю их уникальными.
Длинный ответ: у каждого производителя есть своя собственная схема именования серийных номеров, и не гарантируется, что они будут глобально уникальными для разных производителей, но они должны быть уникальными для каждого производителя, поскольку, в конце концов, они хотят иметь возможность идентифицировать конкретное устройство.
Поскольку у каждого есть своя собственная схема, столкновения действительно маловероятны на практике, но комбинация модели и серийного номера должна быть уникальной (при условии, что никто не испортит вещи во время производства).
Я думаю, что каждый производитель использует для своего продукта собственную сериализацию, каждый серийный номер уникален.
Гарантированно ли они будут уникальными в мире? наверное, не по условию.
Вероятно ли, что они будут уникальными в глобальном масштабе? да
Кроме того, в большинстве случаев серийный номер представляет собой сумму серийных номеров с указанием номера модели спереди, затем номера партии и т. Д.
Шансы на то, что он не будет уникальным, очень-очень малы.
Серийные номера по определению уникальны для продукта, но сами по себе бесполезны без знания производителя и продукта.
Технически серийный номер - это целое число от 1 до бесконечности.
Все остальное следует называть идентификационным кодом или просто идентификатором.
«Серийные номера» жестких дисков представляют собой комбинацию кода производителя, модели и серийного номера, поэтому на практике они должны быть уникальными.
Как ни удивительно это звучит, я недавно купил партию ноутбуков ASUS - у всех был один и тот же серийный номер жесткого диска (который я использую для защиты своего программного обеспечения), следовательно, никакой защиты (на основе серийного номера диска)
Я ищу альтернативный метод защиты моего программного обеспечения на конкретном компьютере
Вспомните старые времена, когда программное обеспечение продавалось с ключом, который нужно было подключить к компьютеру, чтобы программа работала.
Недавно я сделал код, который идентифицировал компьютеры, использующие наше программное обеспечение, по серийному номеру диска. Из примерно 11 магазинов, которым я дал новый код, в 3 из них были жесткие диски с повторяющимися серийными номерами. Похоже, что серийные номера жестких дисков не всегда уникальны. По-видимому, мне придется найти другой способ однозначной идентификации того, какой компьютер используется.