"vxdg reminor rootdg 300" funktioniert nicht

Author:Frank
Datum:23.02.2004 letztes Update 23.02.2004
Zusammenfassung:Manchmal ist es im Veritas Volumen Manager Umfeld notwendig die Minor Nummer der rootdg zu ändern. Dieser Befehl funktionier aber nicht richtig, so das letztendlich die Minor Nummer "von Hand" angepasst werden muss.

 Vorher

Das umfeld besteht uus einer Sun Server unter Solaris9 mit angesteckten Array´s. Wir benutzen den Veritas Volumen Manager Version 3.5 um die Platten verwalten zu können. Bei der Installation den VxVm kann man freundlicherweise gleich die Bottplatten encapsulieren lassen. Das ist sinnvoll für ein spiegeln der Bootplatte. Defaultmäßig wird die Bottplatte in die Diskgroup "rootdg" reingeschoben. Die Major/Minor Nummer der entsprechenden Device kann man sich per ls ansehen.
# ls -lL /dev/vx/dsk/rootdg
brw-------   1 root     root     211,  6 Feb 13 12:28 globaldevices
brw-------   1 root     root     211,  7 Feb 13 12:28 rootn17vol
brw-------   1 root     root     211,  0 Feb 13 12:28 rootvol
brw-------   1 root     root     211,  8 Feb 13 12:28 swapvol
brw-------   1 root     root     211,  5 Feb 13 12:28 var
Wie man sieht ist die Major Nummer 211. Die Minor Nummer ist von 0 bis 8. Nun haben wir die kranke Idee die Minornummer neu zu vergeben und zwar ab der Nummer 300. Dazu führen wir aus:
# vxdg reminor rootdg 300
vxvm:vxdg: WARNING: Volume var: Device is open, will renumber on import
vxvm:vxdg: WARNING: Volume globaldevices: Device is open, will renumber on import
vxvm:vxdg: WARNING: Volume swapvol: Device is open, will renumber on import
Klar die Device sind gemountet deshalb kann er es nicht machen, also reboot.
# reboot -- -r

Feb 13 08:45:11 rpcbind: rpcbind terminating on signal.
Feb 13 08:45:11 db2 reboot: rebooted by root
Feb 13 08:45:11 db2 syslogd: going down on signal 15
syncing file systems... done
rebooting...
Resetting ... 
VxVM starting special volumes ( swapvol rootvol var globaldevices )...
/dev/vx/dsk/swapvol: No such device or address
Configuring /dev and /devices
Configuring the /dev directory (compatibility devices)
The /var file system (/dev/vx/rdsk/var) is being checked.
Can't open /dev/vx/rdsk/var
/dev/vx/rdsk/var: CAN'T CHECK FILE SYSTEM.
/dev/vx/rdsk/var: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.

WARNING - Unable to repair the /var filesystem. Run fsck
manually (fsck -F ufs /dev/vx/rdsk/var). Exit the shell when
done to continue the boot process.


Type control-d to proceed with normal startup,
(or give root password for system maintenance): 

 Nachher

Ups, das ging in die Hose, offensichtlich kann nur das Rootfilesystem finden. Schauen wir uns mit ls mal an wie die Nummern jetzt aussehen:
# ls -alL /dev/vx/dsk/rootdg
drwxr-xr-x   2 root     other        512 Feb 19 07:10 .
drwxr-xr-x   3 root     other        512 Feb 18 13:01 ..
brw-------   1 root     root     211,  6 Feb 13 12:28 globaldevices
brw-------   1 root     root     211,301 Feb 18 13:01 rootn17vol
brw-------   1 root     root     211,  0 Feb 13 12:28 rootvol
brw-------   1 root     root     211,  8 Feb 13 12:28 swapvol
brw-------   1 root     root     211,  5 Feb 13 12:28 var
Es wurde also nur ein Device geändert (rootn17vol), weil es zum zeitpunkt des reminor nicht gemountet war.

 Reperatur

Hier hilft nur noch Neuanlegen der Device von Hand. Zurst alle Einträge löschen.
# rm /dev/dsk/var /dev/vx/dsk/rootdg/var
# rm /dev/rdsk/var /dev/vx/rdsk/rootdg/var
Mittels vxprint kriegen wir raus welche Minornummer das var Device haben sollte.
# vxprint -l -v var
Disk group: rootdg

Volume:   var
info:     len=2097414
type:     usetype=fsgen
state:    state=ACTIVE kernel=ENABLED cdsrecovery=0/0 (clean)
assoc:    plexes=var-01
policies: read=ROUND exceptions=GEN_DET_SPARSE
flags:    closed writeback
logging:  type=REGION loglen=0 serial=0/0 (disabled)
apprecov: seqno=0/0
recovery: mode=default
recov_id=0
device:   minor=303 bdev=211/303 cdev=211/303 path=/dev/vx/dsk/rootdg/var
perms:    user=root group=root mode=0600
In diesem Fall also Major 211 und Minor 303. Mitd diesen Info´s können wir die Device anlegen.
# mknod /dev/vx/dsk/var b 211 303
# mknod /dev/vx/dsk/rootdg/var b 211 303
# mknod /dev/vx/rdsk/var c 211 303      
# mknod /dev/vx/rdsk/rootdg/var c 211 303
Jetzt rebboten (touch /reconfigure - init 0 - boot) Und schon kommt die Maschine wieder hoch.
# ls -alL /dev/vx/dsk/rootdg
drwxr-xr-x   2 root     root         512 Feb 20 18:50 .
drwxr-xr-x   3 root     root         512 Feb 20 18:50 ..
crw-------   1 root     root     211,300 Feb 20 18:50 globaldevices
crw-------   1 root     root     211,301 Feb 18 13:01 rootn17vol
crw-------   1 root     root     211,  0 Feb 13 12:28 rootvol
crw-------   1 root     root     211,302 Feb 20 18:50 swapvol
crw-------   1 root     root     211,303 Feb 20 18:47 var