Re: [Lug-bg] udev правила и схеми
- Subject: Re: [Lug-bg] udev правила и схеми
- From: Peter Pentchev <roam@xxxxxxxxxxx>
- Date: Mon, 29 Jun 2009 01:11:19 +0300
On Sat, Jun 27, 2009 at 03:00:52PM +0300, markucz@xxxxxxxxx wrote:
> Здравейте,
>
> Изправен съм пред следния проблем - имам дадено устройство, примерно sda4:
> brw-rw---- root disk 8, 4 /dev/sda4
> Нужно ми е udev да създава второ устройство със същите major/minor номера, но
> с друг собственик и други права на достъп, да речем
> brw-rw-r-- root vdisk 8, 4 /dev/windows
> symlink *не* върши работа.
> Тук запецвам, защото udev явно не се интересува от major/minor номерата. Мога
> да сложа един ред в rc.local, който да вика mknod, но има ли гаранция, че
> udev винаги ще присвоява на /dev/sda4 едни и същи major/minor?
Ако винаги го открива като sda4, да, винаги ще му присвоява един и
също major и minor number. Под Linux има динамично присвояване на
major и minor numbers на повечето драйвери на устройства, но по
исторически причини има някои устройства (и драйвери), за които
номерата са определени статично - и SCSI block devices с major
number 8 са едни от тях. За повече информация виж файла
Documentation/devices.txt в сорсовете на ядрото.
Така че, да, докато системата ти открива съответния дял като sda4,
можеш да разчиташ на това, че той ще има major number 8 и minor 4.
То всъщност можеш да разчиташ и на това, че в /dev ще има запис за
него с име "sda4" де :)
А това дали системата ти ще го открива така вече зависи от прекалено
много фактори... и според мен е много вероятно в един момент да
се окаже, че вече не е sda или че вече не е 4. Понякога дори едно
"нищо и никакво" обновяване на BIOS е достатъчно, за да размести
начина, по който той представя устройствата на различните операционни
системи; друг път пък има промяна в алгоритъма на разпознаване на
устройства в операционната система, така че едни и същи устройства
биват открити под други номера, и всякак става весело. Има си причина
за това толкова много операционни системи да развият поддръжка за
имена / етикети / labels на дяловете по дисковете, за да могат да
бъдат откривани без твърде висока вероятност за грешка дори и ако
са в друг ред, а понякога дори и ако са на друго устройство :)
Можеш да опиташ да направиш нещо друго - или по някакъв начин да
сложиш етикет на устройството, но не съм съвсем сигурен как може
да стане това за NTFS дял, или по някакъв друг начин да тръгнеш от
find /dev -mindepth 1 -maxdepth 1 -type b -name sd\* | while read f; do
...
done
...и да се опиташ да определиш дали това е дялът, който ти трябва.
Тук обаче има всякакви шашави неща - първо, хубаво е да си сигурен,
че udev ще ти покаже нещо в /dev чак когато там наистина се появи
устройство; второ, това, че имаш такова устройство, не значи непременно,
че то е "активно" (примерно може да имаш device node за CD-ROM устройство,
но при опит да прочетеш първите няколко сектора с изненада да установиш,
че вътре просто няма диск :)), трето, някои устройства може да са
малко чувствителни към операции за четене или изобщо да не ги поддържат...
Може да се окаже сложно :)
Поздрави,
Петър
--
Peter Pentchev roam@xxxxxxxxxxx roam@xxxxxxxx roam@xxxxxxxxxxx
PGP key: http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553
If I had finished this sentence,
Attachment:
pgpiXKpMhDOlz.pgp
Description: PGP signature
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|