Portál AbcLinuxu, 13. května 2025 03:59

Dotaz: Udev pravidla pro disky blbnou

10.2.2008 14:47 uu
Udev pravidla pro disky blbnou
Přečteno: 443×
Odpovědět | Admin
Mám 2 stejné pevné disky a 2 různé. Pro ty 2 různé funguje udev dobře. Je to /dev/sdg1, /dev/sdg2 a /dev/sdh1, ale pro ty 2 stejné je to /dev/sdl, ale už /dev/sdc1, /dev/sdc2, /dev/sdc3, které patří k tomu /dev/sdl. Proč a jak přejměnovat všechny /dev/sdcX na /dev/sdlX?
/etc/udev/rules.d/10-local.rules

BUS=="scsi", SYSFS{model}=="ST3320620AS", NAME="sdg%n"
BUS=="scsi", SYSFS{model}=="ST3250620NS", NAME="sdh%n"
BUS=="scsi", SYSFS{dev}=="8:0", NAME="sda%n"
BUS=="scsi", SYSFS{dev}=="8:32", NAME="sdl%n"
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.2.2008 17:15 uu
Rozbalit Rozbalit vše Re: Udev pravidla pro disky blbnou
Odpovědět | | Sbalit | Link | Blokovat | Admin
Trochu jsem postoupil, ale problém teď je, že pokaždé se vytvoří špatné symlinky i když pokaždé na něco jiného.
BUS=="block", SYSFS{dev}=="8:0", NAME="sda%n"
BUS=="block", SYSFS{dev}=="8:32", NAME="sdb%n"
BUS=="block", SYSFS{dev}=="8:48", NAME="sdc%n"
BUS=="block", SYSFS{dev}=="8:16", NAME="sdd%n"



ls /dev/sd* -la
brw-rw---- 1 root disk    8,  0 2008-02-10 17:08 /dev/sda
brw-rw---- 1 root disk    8,  1 2008-02-10 17:08 /dev/sda1
brw-rw---- 1 root disk    8,  2 2008-02-10 17:08 /dev/sda2
brw-rw---- 1 root disk    8,  3 2008-02-10 17:08 /dev/sda3
lrwxrwxrwx 1 root root        3 2008-02-10 17:08 /dev/sdb -> sdb
lrwxrwxrwx 1 root root        4 2008-02-10 17:08 /dev/sdb1 -> sdb1
lrwxrwxrwx 1 root root        4 2008-02-10 17:08 /dev/sdb2 -> sdb2
brw-rw---- 1 root disk    8, 35 2008-02-10 17:08 /dev/sdb3
lrwxrwxrwx 1 root root        3 2008-02-10 17:08 /dev/sdc -> sdc
brw-rw---- 1 root disk    8, 49 2008-02-10 17:08 /dev/sdc1
brw-rw---- 1 root disk    8, 16 2008-02-10 17:08 /dev/sdd
brw-rw---- 1 root disk    8, 17 2008-02-10 17:08 /dev/sdd1
brw-rw---- 1 root disk    8, 18 2008-02-10 17:08 /dev/sdd2
brw-rw---- 1 root plugdev 8, 64 2008-02-10 17:08 /dev/sde
brw-rw---- 1 root plugdev 8, 80 2008-02-10 17:08 /dev/sdf
Co se to děje? Pokud přemapovávám na někam dál třeba na /dev/sdj, tak to jde. Tohle je problém už s přidělenými zařízeními. Jak tedy udělám, aby /dev/sdc bylo /dev/sdb. Pak /dev/sdb bylo /dev/sdc.
10.2.2008 21:04 pantera | skóre: 17 | blog: Bl0g
Rozbalit Rozbalit vše Re: Udev pravidla pro disky blbnou
jenom se zeptam, neni to nahodou Debian? Resim podobny problem, ale zatim jsem na to nemel cas...
10.2.2008 21:28 uu
Rozbalit Rozbalit vše Re: Udev pravidla pro disky blbnou
Odnož, kubuntu.
10.2.2008 21:37 pantera | skóre: 17 | blog: Bl0g
Rozbalit Rozbalit vše Re: Udev pravidla pro disky blbnou
hmmm.... pri startu mi udev prehazuje nazvy zarizeni - tim padem jsem mel problem s parametrem root= v grubu, coz se tady resilo. Sice se to vyresilo zmenou na uuid disku, ale stejne mi vadi, ze si ty nazvy prehazuje :( Bohuzel neporadim - v udev zatim plavu. Pokud nekdo na neco prijde, budu rad - v diskuzich na netu o tomto problemu mluvili i o jako mozne chybe v udev, ale to je nepotvrzena informace...
10.2.2008 22:18 uu
Rozbalit Rozbalit vše Re: Udev pravidla pro disky blbnou
To já mám zařízení pořád stejně srovnaná, díky uuid mi to bootoje bez problému, ale vadí mi to, že je to sečažený dost nepřehledně a mě to nevyhovuje.
10.2.2008 22:59 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Udev pravidla pro disky blbnou
Odpovědět | | Sbalit | Link | Blokovat | Admin
Protože major 8 a minor 0 (32) má disk samotný, ne jeho oddíly. Doporučuji použít něco, co se opravdu vztahuje k tomu disku, např. výstup scsi_id, který obsahuje i sériové číslo. Příklad:
KERNEL=="sd?", PROGRAM=="scsi_id -g -s %p", RESULT=="SATA     Hitachi HDT7250      VFK401R4154P5K", SYMLINK+="sata/a"
KERNEL=="sd*[0-9]", PROGRAM=="scsi_id -g -s %p", RESULT=="SATA     Hitachi HDT7250      VFK401R4154P5K", SYMLINK+="sata/a%n"
10.2.2008 23:32 uu
Rozbalit Rozbalit vše Re: Udev pravidla pro disky blbnou
Tohle zabere i na ty špatné symlinky? Protože jinak mi to mapování už funguje, až na to že pokaždý se vytvoří několik špatných symlinků místo zařízení a tak vždy o něco příjdu.
11.2.2008 00:23 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Udev pravidla pro disky blbnou
Tohle řeší hlavně problém persistence, vaše pravidla předpokládají, že jádro detekuje disky ve "správném" (nebo aspoň pokaždé stejném) pořadí, což nemusí být vždy pravda. Co se týká symbolických linků, ty pravděpodobně vytváří nějaké jiné pravidlo. Zkusil bych použít jména nekolidující s těmi, která používá standardně jádro.
11.2.2008 06:40 uu
Rozbalit Rozbalit vše Re: Udev pravidla pro disky blbnou
No když použiju jiná jména, tak to funguje, ale mě by hlavně zajímalo, jak to udělat, aby to fungovalo právě s těmi jmény, akorát v jiném pořadí. Jaké jiné pravidlo může linky vytvářet? Soubor s těmito pravidly začíná 10-.. I když tomu ale dám 70-.., chová se to pořád stejně.
cat /etc/udev/rules.d/* | grep "sd"
BUS=="block", SYSFS{dev}=="8:0", NAME="sda%n"
BUS=="block", SYSFS{dev}=="8:32", NAME="sdb%n"
BUS=="block", SYSFS{dev}=="8:48", NAME="sdc%n"
BUS=="block", SYSFS{dev}=="8:16", NAME="sdd%n"
KERNEL=="sd*[!0-9]|sr*|st*", ATTRS{ieee1394_id}=="?*", ENV{ID_SERIAL}="$attr{ieee1394_id}", ENV{ID_BUS}="ieee1394"
KERNEL=="sd*[!0-9]|sr*|st*", ENV{ID_SERIAL}!="?*", IMPORT{program}="usb_id --export %p"
KERNEL=="sd*[!0-9]|sr*|st*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted --fallback-to-sysfs -s %p -d $tempnode"
KERNEL=="sd*[!0-9]|sr*|cciss?c[0-9]d[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
KERNEL=="sd*[0-9]|cciss*p[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
KERNEL=="sd*[!0-9]|sr*", ENV{ID_VENDOR}=="ATA", PROGRAM="ata_id $tempnode", RESULT=="?*", ENV{ID_ATA_COMPAT}="$result", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}"
KERNEL=="sd*[0-9]", ENV{ID_ATA_COMPAT}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_ATA_COMPAT}-part%n"
ATTR{type}=="0|7|14",                   RUN+="/sbin/modprobe -Qba sd_mod"
ENV{VIO_TYPE}=="viodasd",               RUN+="/sbin/modprobe -Qba viodasd"
ENV{TIFM_CARD_TYPE}=="SD",              RUN+="/sbin/modprobe -Qba tifm_sd"
Tam takové pravidlo, které ty symlinky vytváří nevidím.
11.2.2008 13:46 uu
Rozbalit Rozbalit vše Re: Udev pravidla pro disky blbnou
Jak zjistím co to přepisuje?
11.2.2008 14:25 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Udev pravidla pro disky blbnou
Těžko říct, asi by bylo nutné si všechna pravidla projít a zkontrolovat, co se tam přesně děje. Řekl jsem vám, co bych udělal na vašem místě: za prvé bych použil spolehlivější identifikaci jednotlivých disků než major a minor číslo zařízení, za druhé bych použil nekolidující jména. Ale zařiďte se podle sebe…

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.