LINUX.ORG.RU

Как связать буквы из имён HDD с их серийными номерами?

 , ,


1

1

Т.е. я хочу где-то вписать, что
у HDD с S/N 111111 имя /dev/sdl, а
у HDD с S/N 111112 имя /dev/sdm

мне надо менять не точку монтирования (как это делается с помощью udev) а сами имена устройств.

It's just a matter of the order in which the drivers, all running in parallel, happen to detect the drives. The result is not necessarily repeatable, even with the same kernel booting on the same hardware.

Вот это мне не нравится.

★★☆

Последнее исправление: Einstok_Fair (всего исправлений: 1)

Так не получится, имя устройству даёт ядро ещё на этапе работы initramfs.

anonymous
()
Ответ на: комментарий от Einstok_Fair

Потому что нет и никак. Udev не может менять имена KERNEL. Если не нравится /dev/disk/, то пиши патч к ядру.

anonymous
()

мне надо менять не точку монтирования (как это делается с помощью udev) а сами имена устройств.

На сколько я понимаю логику присвоения имен устройствам, в этой логике вообще не фигурирует понятие серийника устройства. То есть существует реальный шанс что просто поменяв мастер/слэйв у двух устройств на одном IDE шлейфе вы смените им имена. Имена как я понимаю раздаются исходя из порядка обнаружения устройств.

Если Вам надо привязаться к устройству исключительно по серийнику, то это можно сделать только через проверку серийников по факту старта системы. То есть вам известны серийники. Вы запускаете скриптик и он вам выдает что сейчас устройство с серийником 1111111 определено системой как /dev/sdn Ну а дальше делайте то что вам надо уже с /dev/sdn

AfterWork
()
Ответ на: комментарий от Einstok_Fair

Он у разделов, а не у девайсов

Тупняк :)

bsdfun ★★★★★
()
Ответ на: комментарий от AfterWork

Если Вам надо привязаться к устройству исключительно по серийнику

А как по другому-то?
ненавижу эти гадские туториалы, в которых предлагают выполнять mdadm --assemble с именами типа /dev/sd[defgh]1
а если у них буквы съедут, то что?

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от anonymous

Никак. Пользуйся /dev/disk/by-*

А разве /dev/disk/by-* является уникальным хоть как-то в отношении железа диска? Кажись нет. Даже uuid по моему связан с разметкой диска, а не с его железом. Разве нет? На сколько я помню, переразбиваешь флэшку и получаешь новый uuid. Клоникуешь флэшку и получаешь на двух аппаратно разных флэшках одинаковые uuid. Я что-то путаю?

AfterWork
()
Ответ на: комментарий от AfterWork

А разве /dev/disk/by-* является уникальным хоть как-то в отношении железа диска?

Аллё, там и серийные номера, и WWN.

anonymous
()

мне надо менять не точку монтирования (как это делается с помощью udev)

udev меняет именно имя устройства (т.е. имя специального файла, соответствующего устройству). Точек монтирования у устройств нет.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 2)
Ответ на: комментарий от Einstok_Fair

А как по другому-то?

Не знаю. Я не понимаю какую задачу Вы решаете. У меня очень много скриптов разных написано и еще ни разу не было нужно вязаться именно к железу. Вы задачу опишите, может она решается на много проще чем через привязку к железу.

AfterWork
()
Ответ на: комментарий от AfterWork

Вы задачу опишите

Мне нужно через годы уметь вспоминать, где физически размещаются/размещались данные (и куда потом ушли их физические носители). Т.е. например я делаю печатный документ, и в момент печати прописываю, что он лежит на дисках с такими-то серийниками (включенными в RAID-1).

Потом, когда ландшафт радикально изменится, нужно будет уметь найти исходник документа глядя на бумагу.

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от Einstok_Fair

Мне нужно через годы уметь вспоминать

Ну и записывайте на бумагу серийник и все остальное. Потом по серийнику находите диск и через /dev/disk/by-id сможете выяснить как он называется в конкретной системе в которую Вы его воткнули сейчас. Вот например так sudo hdparm -i /dev/sd*

AfterWork
()
Ответ на: комментарий от Einstok_Fair

Переименовывать /dev/sd* устройства нельзя, можно создавать символьные ссылки.

К примеру вот правило для создания символьной ссылки на раздел флешки:

SUBSYSTEMS=="usb", ACTION=="add", ATTRS{serial}=="4C530000310711116494", SYMLINK+="flashdisk"

Для написания правил смотри

udevadm info -a -p /sys/block/sda
далее пиши правило и помещай его в /etc/udev/rules.d в initramfs

Для распаковки initramfs выполни что-то вроде:

mkdir /tmp/initramfs
cd /tmp/initramfs
gunzip -c /boot/initramfs-файл | cpio -i -d -H newc
Может быть другой метод сжатия, не gzip, тогда используй другой распаковщик.

Для запаковки что-то вроде:

cd /tmp/initramfs
find . | cpio -o -H newc | gzip -9 > /boot/initramfs.gz

anonymous
()

/dev/sdXY ты поменять не можешь. Никак. Эти имена назначаются ядром.

udev создаёт на них симлинки со стабильными уникальными именами в /dev/disk/by-id (по идентификаторам железа), /dev/disk/by-partuuid (по UUID разделов в таблице, не то же самое, что UUID файловых систем), /dev/disk/by-uuid (на этот раз по UUID файловых систем) или /dev/disk/by-label (по меткам файловых систем). Выбирай.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

См. выше. by-id привязываются к идентификаторам железа.

Уже ответил выше что втупил. :)

AfterWork
()

занимаешься какой-то ерундой.
информация не должна быть привязана к диску.
всё что тебе должно хотеться — это использовать /dev/disk/by-path/ чтобы знать какой диск и в какую дырку совать при замене мёртвого.
всё остальное трата времени и увлечение энтропии. на бумажке через 10 лет будешь видеть серийник диска который сдох 9 лет назад. очень полезно.

system-root ★★★★★
()
Ответ на: комментарий от Einstok_Fair

Интересно, сталкивался что другие by- не показывали все. Но by-path... Странно. А чего показывает? Он же разделы gpt/mbr показывает, не только сами устройства. Не обознался?

Deleted
()
Ответ на: комментарий от Deleted

А чего показывает?

у него какие-то проблемы с устройством
01:00.0 IDE interface: Marvell Technology Group Ltd. 88SE6121 SATA II / PATA Controller (rev b1)

Подключено там 2 диска, а показывает только один (и это не в RAID-режиме)

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от Deleted

Нет, это SATA II, контроллер впаян прямо в материнскую плату и там 10 SATA-разъёмов. 6 напрямую и 4 через этот контроллер. Видно 7 дисков - 6 которые напрямую и ещё один

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от Einstok_Fair

Капец глюкодром. Я сталкивался с подобной конфигурацией, у меня работало ок. И я посчитал by-path очень-очень полезной фичей: просто использовал эти пути в mdraid, т.к. это намного удобней, чем sda всякие.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от slowpony

Что мне это даст? Если я правильно понимаю, то сначала запускается ядро и даёт имена дискам. Потом запускается systemd из initramfs и запускает mdadm, который читает свой конфиг и собирает массивы, потом делается pivot_root на корневой раздел, но он в readonly.

После этого запускается systemd с корневого раздела, он уже читает fstab (но можно и без fstab обойтись, конфигами самого systemd) и перемонтирует корневой раздел в read-write.

Как вариант, mdadm не запускается из initramfs, зато запускается во время запуска systemd с корневого раздела. Разница в том, откуда будет читаться его конфиг - из initramfs или с корневого раздела. (хотя нет, это бред какой-то, не будет же корневого раздела видно. Может ядро собрать массив автоматически, но тогда не надо запускать mdadm вообще)

Einstok_Fair ★★☆
() автор топика
Последнее исправление: Einstok_Fair (всего исправлений: 1)
Ответ на: комментарий от Deleted

что я должен в этом логе увидеть? Там написано, цитирую:

[  458.021014] md/raid:md2: device sdh operational as raid disk 0
[  458.021016] md/raid:md2: device sdd operational as raid disk 3
[  458.021016] md/raid:md2: device sde operational as raid disk 2
[  458.021017] md/raid:md2: device sdf operational as raid disk 1
[  458.021517] md/raid:md2: raid level 6 active with 4 out of 5 devices, algorithm 2
Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от redgremlin

Я прочитал, ага :)

mdadm.conf - там указаны UUID'ы, а не sdX. Поэтому от смены порядка дисков не изменится ничего.

Deleted
()
Ответ на: комментарий от Einstok_Fair

Ну, по крайней мере, mdadm --examine --scan выдаёт в UUID'ах.

Deleted
()
Ответ на: комментарий от intelfx

Пофигу как, собираются всё равно по UUID потом.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.