Betriebssysteme > Solaris/x86 und OpenSolaris

Install-/Jumpserver für Solaris 2.4 x86

<< < (2/5) > >>

vab:
Ach Herrje, RPL...

Hast Du es mal mit rpld -a versucht?
Eventuell mußt Du dem mal mit truss oder dtrace zuschauen, was er beim Start treibt.

Das inetboot.i86pc.Solaris_2.4 sollte er dann per tftp holen.  Vielleicht läßtDu den tftpd mal mit -d laufen.
Ist aber natürlich der zweite Schritt, erst muß der Client mal seine Netz-Konfig haben.


Gruß -- Volker

escimo:
Mein EDIT-Eintrag habe ich wohl vergesssen zu speichern.
Da waren die Ausgaben von RPLD dabei, warum der nicht will... :-\

Der RPL will mein Netzwerk-Interfacenamen der VM (VMWare Workstation) nicht verwenden (e1000g0)
Wenn ich rpld mit Ausgabe auf Konsole starte, "zerstückelt" RPL mir den NIC-Namen und beschwert sich dann frech, dass er /dev/e1000 - eben nicht e1000g0 - nicht findet.
Ich ergänze den Output heute abend nochmal.

EDIT

lprd kommt wohl nicht mit 64-Bit Libs zurecht?



--- Zitat ---bash-3.00# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
e1000g0: flags=1004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4> mtu 1500 index 2
        inet 192.168.1.17 netmask ffffff00 broadcast 192.168.1.255
        ether 0:c:29:b8:3a:4b

bash-3.00# ls -l /dev/e1000*
lrwxrwxrwx   1 root     root          32 Dec  1  2009 /dev/e1000g -> ../devices/pseudo/clone@0:e1000g
lrwxrwxrwx   1 root     root          55 Dec  1  2009 /dev/e1000g0 -> ../devices/pci@0,0/pci15ad,790@11/pci15ad,750@1:e1000g0

bash-3.00# /usr/sbin/rpld -a -b 0 -d 9 -D 0
found interface = /dev/e1000
ConfigFile = /etc/rpld.conf
DebugLevel = 9
DebugDest  = console
MaxClients = -1 (unlimited)
BackGround = FALSE
LogFile    = /var/spool/rpld.log
StartDelay = 20
DelayGran  = 2
FrameSize  = 1500
Interface  = /dev/e1000
Opening /dev/e
Cannot open device /dev/e
--- Ende Zitat ---

LPRD ist (nur) ein 32-Bit Binary


--- Code: ---bash-3.00# file /usr/sbin/rpld
/usr/sbin/rpld: ELF 32-bit LSB executable 80386 Version 1, dynamically linked, stripped

bash-3.00# ldd /usr/sbin/rpld
        libsocket.so.1 =>        /lib/libsocket.so.1
        libc.so.1 =>     /lib/libc.so.1
        libnsl.so.1 =>   /lib/libnsl.so.1
        libmp.so.2 =>    /lib/libmp.so.2
        libmd.so.1 =>    /lib/libmd.so.1
        libscf.so.1 =>   /lib/libscf.so.1
        libdoor.so.1 =>  /lib/libdoor.so.1
        libuutil.so.1 =>         /lib/libuutil.so.1
        libgen.so.1 =>   /lib/libgen.so.1
        libm.so.2 =>     /lib/libm.so.2

bash-3.00# truss /usr/sbin/rpld -a -b 0 -d 9 -D 0
execve("/usr/sbin/rpld", 0x080476A0, 0x080476C4)  argc = 8
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEFF0000
resolvepath("/usr/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
resolvepath("/usr/sbin/rpld", "/usr/sbin/rpld", 1023) = 14
sysconfig(_CONFIG_PAGESIZE)                     = 4096
stat64("/usr/sbin/rpld", 0x08047430)            = 0
open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
stat64("/lib/libsocket.so.1", 0x08046CD0)       = 0
resolvepath("/lib/libsocket.so.1", "/lib/libsocket.so.1", 1023) = 19
open("/lib/libsocket.so.1", O_RDONLY)           = 3
mmap(0x00010000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) = 0xFEFB0000
mmap(0x00010000, 114688, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEF90000
mmap(0xFEF90000, 43986, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEF90000
mmap(0xFEFAB000, 2645, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 45056) = 0xFEFAB000
munmap(0xFEF9B000, 65536)                       = 0
memcntl(0xFEF90000, 12080, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3)                                        = 0
stat64("/lib/libc.so.1", 0x08046CD0)            = 0
resolvepath("/lib/libc.so.1", "/lib/libc.so.1", 1023) = 14
open("/lib/libc.so.1", O_RDONLY)                = 3
mmap(0xFEFB0000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFEFB0000
mmap(0x00010000, 1212416, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEE60000
mmap(0xFEE60000, 1102437, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEE60000
mmap(0xFEF7E000, 30183, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 1105920) = 0xFEF7E000
mmap(0xFEF86000, 4240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFEF86000
munmap(0xFEF6E000, 65536)                       = 0
memcntl(0xFEE60000, 124080, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3)                                        = 0
stat64("/lib/libnsl.so.1", 0x08046CD0)          = 0
resolvepath("/lib/libnsl.so.1", "/lib/libnsl.so.1", 1023) = 16
open("/lib/libnsl.so.1", O_RDONLY)              = 3
mmap(0xFEFB0000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFEFB0000
mmap(0x00010000, 647168, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEDC0000
mmap(0xFEDC0000, 525537, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEDC0000
mmap(0xFEE51000, 19877, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 528384) = 0xFEE51000
mmap(0xFEE56000, 30040, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFEE56000
munmap(0xFEE41000, 65536)                       = 0
memcntl(0xFEDC0000, 57900, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3)                                        = 0
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEFC0000
mmap(0x00010000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEFA0000
munmap(0xFEFB0000, 32768)                       = 0
getcontext(0x080472A0)
getrlimit(RLIMIT_STACK, 0x08047298)             = 0
getpid()                                        = 1254 [1253]
lwp_private(0, 1, 0xFEFA2A00)                   = 0x000001C3
setustack(0xFEFA2A60)
sigfillset(0xFEF85DD0)                          = 0
sysi86(SI86FPSTART, 0xFEF86740, 0x0000133F, 0x00001F80) = 0x00000001
sysconfig(_CONFIG_PAGESIZE)                     = 4096
open("/etc/rpld.conf", O_RDONLY)                = 3
fstat64(3, 0x08046890)                          = 0
brk(0x0806A270)                                 = 0
brk(0x0806E270)                                 = 0
fstat64(3, 0x080467D0)                          = 0
ioctl(3, TCGETA, 0x08046864)                    Err#25 ENOTTY
read(3, " #\n #   D e f a u l t  ".., 8192)     = 496
llseek(3, 0, SEEK_CUR)                          = 496
close(3)                                        = 0
open("/dev/ip", O_RDONLY)                       = 3
ioctl(3, SIOCGIFNUM, 0x0804760C)                = 0
ioctl(3, SIOCGIFCONF, 0x08046DF8)               = 0
ioctl(3, SIOCGIFFLAGS, 0x0806A278)              = 0
ioctl(3, SIOCGIFFLAGS, 0x0806A298)              = 0
ioctl(1, TCGETA, 0x08046134)                    = 0
fstat64(1, 0x080460A0)                          = 0
found interface = /dev/e1000
write(1, " f o u n d   i n t e r f".., 29)      = 29
open("/dev/e", O_RDWR)                          Err#2 ENOENT
close(3)                                        = 0
ConfigFile = /etc/rpld.conf
write(1, " C o n f i g F i l e   =".., 28)      = 28
DebugLevel = 9
write(1, " D e b u g L e v e l   =".., 15)      = 15
DebugDest  = console
write(1, " D e b u g D e s t     =".., 21)      = 21
MaxClients = -1 (unlimited)
write(1, " M a x C l i e n t s   =".., 28)      = 28
BackGround = FALSE
write(1, " B a c k G r o u n d   =".., 19)      = 19
LogFile    = /var/spool/rpld.log
write(1, " L o g F i l e         =".., 33)      = 33
StartDelay = 20
write(1, " S t a r t D e l a y   =".., 16)      = 16
DelayGran  = 2
write(1, " D e l a y G r a n     =".., 15)      = 15
FrameSize  = 1500
write(1, " F r a m e S i z e     =".., 18)      = 18
Interface  = /dev/e1000
write(1, " I n t e r f a c e     =".., 24)      = 24
Opening /dev/e
write(1, " O p e n i n g   / d e v".., 15)      = 15
open("/dev/e", O_RDWR)                          Err#2 ENOENT
Cannot open device /dev/e
write(1, " C a n n o t   o p e n  ".., 26)      = 26
_exit(-1)
--- Ende Code ---

escimo:
Mmm. Habe nochmal auf Null zurückgesetzt.

VM-Guest Solaris 10 32-Bit unter VirtualBox mit PCnet-PCI II (pcn0) als Netzwerkbrücke konfiguriert, Solaris 10 core + Anpassungen (ohne X11) installiert. SSHD konfiguriert. Alles schick.


--- Code: ---# pkginfo | grep SUNWbs
system      SUNWbsr                      Boot Server daemons (Root)
system      SUNWbsu                      Boot Server daemons (Usr)

# pkginfo | grep SUNWtf
system      SUNWtftp                     Trivial File Transfer Server
system      SUNWtftpr                    Trivial File Transfer Server (Root)

# pkginfo | grep SUNWnfs
system      SUNWnfsckr                   Network File System (NFS) client kernel support (Root)
system      SUNWnfscr                    Network File System (NFS) client support (Root)
system      SUNWnfscu                    Network File System (NFS) client support (Usr)
system      SUNWnfsskr                   Network File System (NFS) server kernel support (Root)
system      SUNWnfssr                    Network File System (NFS) server support (Root)
system      SUNWnfssu                    Network File System (NFS) server support (Usr)
--- Ende Code ---

Dann...

1. Volume Manager SMF Service deaktiviert


--- Code: ---# svcs -a | grep vol
disabled       15:09:11 svc:/system/filesystem/volfs:default
--- Ende Code ---

EDIT BEGIN
2. CD-Image mounten lofiadm
/!\ Das geht irgendwie nach wie vor nicht. Daher bediene ich mich aus einem selbsterstellten TGZ der Slices 0+2, welches ich nach dem Mount unter Ubuntu mittels FTP auf der Solaris 10 VM abgelegt und entpackt habe


--- Code: ---# lofiadm -a /home/sx/solaris.2.4.x86.iso
dev/lofi/1
# mount -o ro -F hsfs /dev/lofi/1 /mnt
# cd /mnt
# ls -l
total 184
-rwxr-xr-x   1 root     bin        42942 Jul 22  1994 add_install_client
drwxr-xr-x   2 root     other       2048 Aug  3  1994 archinfo
drwxr-xr-x   3 bin      bin         2048 Aug  3  1994 auto_install_sample
-rw-r--r--   1 root     other       6999 Aug  3  1994 Copyright
drwxr-xr-x   3 root     other       2048 Aug  3  1994 export
drwxr-xr-x  14 root     bin         2048 Okt 18  1994 Patches
drwxr-xr-x   4 root     bin         2048 Aug  3  1994 Posix.2
-rwxr-xr-x   1 root     bin        12298 Jul 22  1994 rm_install_client
-rwxr-xr-x   1 root     bin         6381 Jul 22  1994 setup_install_server
drwxr-xr-x 108 root     other      14336 Aug  3  1994 Solaris_2.4

--- Ende Code ---
EDIT END

3. Anlage Jumpstart Verzeichnisstruktur
(i) Verzeichnisnamen "jumpstart" habe ich zugunsten "install" ersetzt


--- Code: ---# mkdir -p /export/install/{2_4,2_4_x86}
# ./setup_install_server /export/install/2_4_x86
Verifying target directory...
Copying the CD image to disk...
Install Server setup complete
--- Ende Code ---

4. Konfiguration Install-Client erzeugen
(i) Bootserver nicht nötig, da Installserver später im selben Subnetz laufen wird wie Install-Client


--- Code: ---# egrep "^(hosts)|(ethers)|(bootparams)" /etc/nsswitch.conf
hosts: files dns # Added by DHCP
ethers:     files
bootparams: files

# grep scenic /etc/inet/hosts
192.168.1.35    scenic  # Siemens Nixdorf Scenic Pro C5

# cat /etc/ethers
#00:A0:24:6C:63:39 scenic
0:a0:24:6c:63:39 scenic

# pwd
/export/install/2_4_x86

# ./add_install_client -s jumper:/export/install scenic i86pc
Warning: no interface configured for subnet 192.168.1.0
making /rplboot
saving original /etc/dfs/dfstab in /etc/dfs/dfstab.orig
Adding "share -F nfs -o ro,anon=0 /export/install" to /etc/dfs/dfstab
starting rpld
starting rarpd
starting bootparamd
updating /etc/bootparams
copying inetboot to /rplboot

# cat /etc/bootparams
scenic root=jumper:/export/install/2_4_x86/export/exec/kvm/i386.i86pc.Solaris_2.4       install=jumper:/export/install boottype=:in   numbootfiles=3    bootfile=/rplboot/192.168.1.35.hw.com:45000     bootfile=/rplboot/192.168.1.35.glue.com:35000   bootfile=/rplboot/192.168.1.35.inetboot:8000    bootaddr=35000
--- Ende Code ---


5. NFS-Server konfigurieren (Export-Verzeichnis)
(i) Refresh nach Anpassung alternativ über "svcadm refresh network/nfs/server"

--- Code: ---# grep ^share /etc/dfs/dfstab
share -F nfs -o ro,anon=0 /export/install

# shareall
--- Ende Code ---


6. TFTP Server konfiguriert
(i) ist eigentlich nicht nötig aber der Vollständigkeit auf RPL-Rootverzeichnis gelegt

--- Code: ---# tail -2 /etc/inetd.conf
#tftp   dgram   udp6    wait    root    /usr/sbin/in.tftpd      in.tftpd -s /tftpboot
tftp    dgram   udp6    wait    root    /usr/sbin/in.tftpd      in.tftpd -s /rplboot

# inetconv -i /etc/inetd.conf
inetconv: Notice: Service manifest for 100235/1 already generated as /var/svc/manifest/network/rpc/100235_1-rpc_ticotsord.xml, skipped
tftp -> /var/svc/manifest/network/tftp-udp6.xml
Importing tftp-udp6.xml ...Done

# svcs -a | grep -i tftp
online          8:20:39 svc:/network/tftp/udp6:default
--- Ende Code ---

7. Services und Daemon(s) starten

--- Code: ---# svcs -a | egrep "(nfs\/server)|(tftp)|(rarp)|(bootparam)"
disabled       12:41:39 svc:/network/rpc/bootparams:default
disabled       12:41:39 svc:/network/rarp:default
online         14:31:01 svc:/network/nfs/server:default
online         14:38:54 svc:/network/tftp/udp6:default

# svcadm enable network/rpc/bootparams
# svcadm enable network/rarp

# svcs -a | egrep "(nfs\/server)|(tftp)|(rarp)|(bootparam)"
online         14:31:01 svc:/network/nfs/server:default
online         14:38:54 svc:/network/tftp/udp6:default
online         15:05:20 svc:/network/rpc/bootparams:default
online         15:05:27 svc:/network/rarp:default

# /usr/sbin/rpld -a
# echo $?
0

# reboot
<VM_REBOOT>

# ps -ef | egrep -i "(bootparam)|(rarpd)|(rpld)" | grep -v grep
    root   274     1   0 15:09:18 ?           0:00 /usr/sbin/rpc.bootparamd
    root   448     1   0 15:09:22 ?           0:00 /usr/sbin/in.rarpd -a
    root   482     1   0 15:09:22 ?           0:00 /usr/sbin/rpld -a

# svcs -a | egrep "(nfs\/server)|(tftp)|(rarp)|(bootparam)"
online         15:09:18 svc:/network/rpc/bootparams:default
online         15:09:20 svc:/network/tftp/udp6:default
online         15:09:21 svc:/network/nfs/server:default
online         15:09:21 svc:/network/rarp:default


# grep ^share /etc/dfs/dfstab
share -F nfs -o ro,anon=0 /export/install
# share
-               /export/install   ro,anon=0   ""

--- Ende Code ---

vab:
Das sieht ja schon ganz nett aus.  Funktioniert es nun? :-)

Zwei Anmerkungen:


* Das Kopieren von einer Slice herunter funktioniert so einfach nicht.  Dazu muß man entweder eine "echte" CD mounten, oder jede Slice einzeln von der CD herunterkopieren und einzeln mounten.  Dazu hab ich 2003(!) mal ein Tool geschrieben, das die Slices in Files schreibt, die dann per lofi gemountet werden können.
* Das von Dir rot markierte im Output von rpld scheint einfach ein Bug zu sein.  Das Programm verkraftet nicht, daß schon der Treibername "e1000g" Ziffern enthält.  Wenn Deine Karte "hme0" heißen würde, hätte es vermutlich geklappt.
Gruß -- Volker

escimo:
Hi Volker,

EDIT BEGIN
danke für deine Anmerkungen.
der Inhalt hat zumindest eine identische Größe. Vergleich der Datenmenge nach Ausführung von setup_install_server
bash-3.2# du -sh 2_4_x86 2_4_x86.backup
 231M   2_4_x86                ---> lofiadm ISO Mount
 231M   2_4_x86.backup    ---> Entpacken aus TGZ
EDIT END

Ob es funktioniert? - Ein ganz klares NEIN.
Ich konnte zumindest in die interaktive Installation einsteigen. Weit gekommen bin ich damit nicht. Der hängt bei der Konfiguration der Devices bzw. beim Laden von Treibern ...


--- Zitat ---Boot path: /isa/elx@0,0
Boot args: /kernel/unix

Select the type of installation you want to perform:
(...)
<<< starting interactive installation >>>

Booting /kernel/unix...
SunOS Release 5.4 Vesion generic [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1994, Sun Microsystems, Inc.
whoami: no domain name
/

--- Ende Zitat ---

Habe noch keine Idee warum. Gebootet habe ich mit dem Driver Update 10 (DU10) Boot-Disks. Ggf. ist beim Kopieren der S2-Slice unter Linux auch was schiefgegangen. In der VM konnte ich das bis jetzt noch nicht beheben/umgehen.

Auszug /var/spool/rpld.log ab RPL von Install-Client

--- Zitat ---FIND frame received
host is scenic
Entered clientlookup(), number of clients = 0
No clients yet, returning
There are 3 bootfiles for this client
Sending out FOUND Frame
SEND FILE REQUEST received
Entered clientlookup(), number of clients = 1
Looking for client 0 A0 24 6C 63 39
Client found
SEND FILE REQUEST received
Entered clientlookup(), number of clients = 1
Looking for client 0 A0 24 6C 63 39
Client found
SEND FILE REQUEST received
Entered clientlookup(), number of clients = 1
Looking for client 0 A0 24 6C 63 39
Client found
reading file /rplboot/192.168.1.35.hw.com, seeking to 0
SEND FILE REQUEST received
Entered clientlookup(), number of clients = 1
Looking for client 0 A0 24 6C 63 39
Client found
SEND FILE REQUEST received

(...)

Entered clientlookup(), number of clients = 1
Looking for client 0 A0 24 6C 63 39
Client found
reading file /rplboot/192.168.1.35.glue.com, seeking to 0
SEND FILE REQUEST received

(...)

Entered clientlookup(), number of clients = 1
Looking for client 0 A0 24 6C 63 39
Client found
reading file /rplboot/192.168.1.35.inetboot, seeking to 136785
SEND FILE REQUEST received

(...)

SEND FILE REQUEST received
Entered clientlookup(), number of clients = 1
Looking for client 0 A0 24 6C 63 39
Client found
reading file /rplboot/192.168.1.35.inetboot, seeking to 142657
Current file reaches eof, closing
All files downloaded, update state to ST_SEND_FINAL
SEND FILE REQUEST received
Entered clientlookup(), number of clients = 1
Looking for client 0 A0 24 6C 63 39
Client found
Invalid status 1 when SEND FILE comes in
sending down the last frame
removing client 0 A0 24 6C 63 3
--- Ende Zitat ---

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln