Kernel wird kreativ bei der IDE-Gerätenamenvergabe

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
Svenstaro
Beiträge: 27
Registriert: 13.04.2006 01:36:01
Kontaktdaten:

Kernel wird kreativ bei der IDE-Gerätenamenvergabe

Beitrag von Svenstaro » 04.02.2007 20:58:19

Ich habe einen Server mit derzeit 8 IDE-Geräten, 7 Platten und ein DVD-ROM.
Aus diesem Grund muss ich zum Motherboardcontroller 2 zusätzliche IDE Controllerkarten einsetzen
(Ich weiß, ich könnte bei der Anzahl auch mit 2 Controllern insgesamt auskommen, geht leider physisch nicht).
Normalerweise ist mein / auf hdb1. Stecke ich einen Controller rein ist dieser auf hdf1. Bei einem weiteren Controller auf hdj1.
Ist zwar blöd, aber das könnte ich so akzeptieren, wenn doch nur die Namen nicht rutschen würden! Manchmal ist / nämlich wieder auf hdb1, ohne, dass ich bei der Hardware etwas umkonfiguriere. Dies wirft Scripts und natürlich den Bootvorgang selbst stark durcheinander.
Wie kann ich dem Kernel ( Debian 4.0, Kernel 2.6.18 ) sagen, dass er 1. den internen Controller vor Zusatzcontrollern präferiert und 2., dass er sich die Kennungen merkt?

Vielen Dank im Voraus :)

Benutzeravatar
Tintom
Moderator
Beiträge: 3070
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Beitrag von Tintom » 04.02.2007 21:54:32

Du solltest die Forumssuche nach udev bzw. udev-rules befragen, das sollte das richtige für dich sein.

Benutzeravatar
Svenstaro
Beiträge: 27
Registriert: 13.04.2006 01:36:01
Kontaktdaten:

Beitrag von Svenstaro » 05.02.2007 06:21:51

Ah, das ist mal ein Stichwort.

Hab mich mal versucht:

menu.lst

Code: Alles auswählen

title		Debian GNU/Linux, kernel 2.6.18-3-686
root		(hd0,0)
kernel		/boot/vmlinuz-2.6.18-3-686 root=/dev/rootpart1 ro 
initrd		/boot/initrd.img-2.6.18-3-686
savedefault
z10_sven.rules

Code: Alles auswählen

BUS="ide", KERNEL="hd*", SYSFS{model}="HDT722516DLAT80", NAME="%k", SYMLINK+="rootpart%n"
fstab

Code: Alles auswählen

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc          	/proc           proc    defaults        0       0
/dev/rootpart1	/               ext3    defaults,usrquota,grpquota,errors=remount-ro 0       1
/dev/mapper/data1vg-data1lv /data1          ext3    defaults        0       2
/dev/mapper/data2vg-data2lv /data2          ext3    defaults        0       2
/dev/rootpart3	none            swap    sw              0       0
# /dev/hdf        /media/cdrom0   iso9660 ro,user,noauto  0       0
# /dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0
Das Ziel ist, die Platte, die am integrierten IDE Controller als Primary Slave (also eigentlich hdb) und allen ihren Partitionen
irgendeine Art von festen Namen zuzuweisen.

Und nun bleibt er beim booten mit "Waiting for root filesystem stecken" :/

Sieht jemand meinen Fehler?

storm
Beiträge: 1581
Registriert: 01.05.2004 13:21:26
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DE

Beitrag von storm » 05.02.2007 20:27:59

Svenstaro hat geschrieben: z10_sven.rules

Code: Alles auswählen

BUS="ide", KERNEL="hd*", SYSFS{model}="HDT722516DLAT80", NAME="%k", SYMLINK+="rootpart%n"
Mmh, zumindest die Syntax der Regeln für udev wurde geändert, deine Zeile müsste eher so aussehen:

Code: Alles auswählen

BUS=="ide", KERNEL=="hd*", ATTR{model}=="HDT722516DLAT80", NAME="%k", SYMLINK+="rootpart%n"
Assign-Operatoren gibt es zwei, Name=value und Name:=value, wobei letzterer nach dieser Zuweisung keine nachfolgende, neue Zuweisung zulässt. Näheres in udev(7).

/edit: es kann sein, dass statt ATTR auch ATTRS stehen muss, was bedeutet, dass udevd nicht nur im entsprechenden Verzeichnis des Gerätes nach der Datei model sucht, sondern in der device-Hierarchie nach oben weitersucht, bis er sie findet. Hier findet sich die Datei aber auch, also sollte es so gehen.

ciao, storm
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */

Benutzeravatar
Svenstaro
Beiträge: 27
Registriert: 13.04.2006 01:36:01
Kontaktdaten:

Beitrag von Svenstaro » 05.02.2007 20:44:38

Doh! Natürlich die == und = Zeichen nicht beachtet.. Danke, sowas übersieht man leicht mal. Und das mit Sysfs passt schon, ich vergleiche ja die Informationen aus /sys, LINK meint das ginge.

Antworten