Solaris 10: Kernel Modul Parameter setzen

Gerade eben wollte ich auf einem unserer Solaris 10 Systeme den Parameter nfs_portmon des nfssrv Modules von 1 auf 0 setzen, damit er die unprivilegierten Ports nicht prüft.

Nun wird überall im Netz geraten, in /etc/system den Eintrag vorzunehmen und dann einen reboot durchzuführen. Warum aber sollte ich ein ganzes System mit unzähligen Zonen neu starten, wenn ich doch nur einen Parameter ändern möchte?

Es muss doch bei Solaris 10 möglich sein, wie unter Linux (mit dem sysctl Befehl) die Kernelkonfiguration zu manipulieren. Nach ein wenig suchen fand ich denn auch die Lösung. mdb

# mdb -kw
Loading modules: [ unix krtld genunix specfs dtrace cpu.generic ...etc...
> nfs_portmon/D
nfs_portmon:
nfs_portmon:    1
> nfs_portmon/W 0
nfs_portmon:    0x1             =       0x0
> nfs_portmon/D
nfs_portmon:
nfs_portmon:    0
> $q

Mdb ist der modulare debugger von Sun. Man startet ihn mit den Parametern -kw, welche auf die Objektdatei /dev/ksyms und das Core File /dev/kmem schreibend zugreifen.

Nun kann man im Debugger einfach den Parameter (ohne Angabe des Modules, da dies automatisch aufgeschlüsselt wird) gefolgt von einem /D für dump oder einem /W <wert> für write angegeben werden.

Um den Debugger zu beenden, gibt man $q ein.

So einfach geht das 🙂 (und erst noch ohne rebooot!).