[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::digital_unix

Title:DIGITAL UNIX(FORMERLY KNOWN AS DEC OSF/1)
Notice:Welcome to the Digital UNIX Conference
Moderator:SMURF::DENHAM
Created:Thu Mar 16 1995
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:10068
Total number of notes:35879

9216.0. "Too many levels of symbolic links" by PERFOM::HENNING () Tue Mar 18 1997 17:43

What have I done wrong?
    
    rlogin prf04
    Password:
    Login incorrect
    login: john
    Password:
    Can't open /var/adm/lastlog
    Digital UNIX V4.0B  (Rev. 564); Tue Mar 18 16:16:37 EST 1997
    
    The installation software has successfully installed your system.
    
    There are logfiles that contain a record of your installation.
    These are:
    
            /var/adm/smlogs/install.cdf     - configuration description file
            /var/adm/smlogs/install.log     - general log file
            /var/adm/smlogs/install.FS.log  - file system creation logs
            /var/adm/smlogs/setld.log       - log for the setld(8) utility
            /var/adm/smlogs/fverify.log     - verification log file
    
    
    login: no shell: Too many levels of symbolic links.
    rlogin: connection closed.
    (2) perf.zko.dec.com:henning...
    
This is a freshly-installed Rawhide with serial console.  

A still-logged in window was giving the same message (Too many levels of
symbolic links) on vi, vipw, and ex.  

The first symptom that I recall which seemed odd was that 

	zcat mumble.tar.Z | tar xvf -

failed - I think it said it couldn't find tar.  "whereis tar" said it was
in sbin, but

	zcat mumble.tar.Z | /sbin/tar xvf -

also couldn't find tar.  Uncompress followed by tar worked fine.

Unfortunately I don't have to offending system in front of me right now,
but that's some of what I can recall.

Oh yes.  The system disk is on an HS-something controller which has it as a 
stripe set.  The install procedure appears to have configured the disk
as a fairly small / partition, a 128mb b partition, and the remaining space
(12GB?) as the g partition.

This is ufs.
T.RTitleUserPersonal
Name
DateLines
9216.1VAXCPU::michaudJeff Michaud - ObjectBrokerTue Mar 18 1997 18:0412
> What have I done wrong?
>     login: no shell: Too many levels of symbolic links.
>     rlogin: connection closed.

	sounds like you have an infinite loop using symbolic links
	(for example, "link -s foo foo" will create an infinite loop).
	In your case it's probably with your directory structure.

	To find the problem look at your passwd file entry for the user you
	are trying to login as note the full filename of the shell.  Then
	following each directory level one by one until you find where
	the loop starts.
9216.2anyone heard this problem before?PERFOM::HENNINGTue Mar 18 1997 18:214
thanks Jeff - did try some basics like that, nothing obvious yet...

I was hoping someone would recognize this evil situation that I seem to
have painted myself into.  Ring any bells, anyone?
9216.3/bin vs. /usr/bin/ ?RHETT::PARKERWed Mar 19 1997 09:2936
    
    /bin should be a sym link to /usr/bin and tar is normally found
    there. Maybe /usr/bin is a link to /bin or something else? If
    you can get down to single-user mode, which you should be able
    to, I'd check / and /usr to make sure the sym links are ok...
    
    Here is what mine are:
    
    In / :
    
    lrwxrwxrwx   1 root     system         7 Dec 22  1997 bin -> usr/bin
    
    lrwxrwxrwx   1 root     system         7 Dec 22  1997 lib -> usr/lib
    
    lrwxr-xr-x   1 root     system         7 Dec 22  1997 var -> usr/var
    
    In /usr (if /var is NOT a seperate file system) :
    
    lrwxrwxrwx   1 root     system        10 Dec 22  1997 adm -> ../var/adm
    
    lrwxrwxrwx   1 root     system        10 Dec 22  1997 tmp -> ../var/tmp
    
    lrwxrwxrwx   1 root     system         5 Dec 22  1997 ucb -> ./bin
    
    Are interesting ones - is ucb in the search path? 
    
    The default path for sh is :
    
    PATH=$HOME/bin:${PATH:-/usr/bin:.}
    
    I would try to recreate the problem myself but I'd rather not! :-)
    
    Hth,
    
    Lee
    
9216.4Did I break it myself? but how? & how do I fix it?PERFOM::HENNINGWed Mar 19 1997 09:52354
.0 was done over a dial-up line.  I'm back at work now, and fortunately my
windows on this system survived the night.  Here's a bit more detail.
    
This is the current state of /etc/passwd

# cat passwd
root:b7jvN7ETrGBVQ:0:1:system PRIVILEGED account:/:/bin/csh
nobody:*Nologin:65534:65534:anonymous NFS user:/:
nobodyV:*Nologin:60001:60001:anonymous SystemV.4 NFS user:/:
daemon:*:1:1:system background account:/:
bin:*:3:4:system librarian account:/bin:
uucp:Nologin:4:2:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/lib/uucp/uucico
uucpa:Nologin:4:2:uucp adminstrative account:/usr/lib/uucp:
auth:*:6:11:Authentication Subsystem:/tcb/bin:
cron:*:7:14:Cron Subsystem:/usr/adm/cron:
lp:*:8:12:Line Printer Subsystem:/users/lp:
tcb:*:9:18:Trusted Computing Base:/tcb:
adm:*:10:19:Administration Subsystem:/usr/adm:
ris:Nologin:11:21:Remote Installation Services Account:/usr/adm/ris:/bin/sh
wnn:Nologin:12:1:Wnn System Account:/tmp:/bin/sh
john:p0sq5c1031x.U:13:15:johnh:/usr/users/john:/bin/csh

And the priv'd window is still misbehaving this morning:

    # pwd
    /
    # cd etc
    # ex fstab
    "/var/tmp" Too many levels of symbolic links
    # vi fstab
    "/var/tmp" Too many levels of symbolic links
    # vipw
    "/var/tmp" Too many levels of symbolic links
    # more /var/adm/messages
    /var/adm/messages: Too many levels of symbolic links
    # tail /var/adm/messages
    /var/adm/messages: Too many levels of symbolic links
    # whereis tail
    tail: /usr/bin/tail
    # /usr/bin/tail /var/adm/messages
    /var/adm/messages: Too many levels of symbolic links
    
But cat gives a slightly different message:
    
    # cat /var/adm/messages
    cat: cannot open /var/adm/messages
    
Walking down the directory tree looks like this....
    
    # cd /
    # ls -ld var
    lrwxr-xr-x   1 root     system         7 Mar 18 15:39 var -> usr/var
    
Now the link for var is no different from what I see on a normally
functioning unix system:
    
    dstant.zko.dec.com> ls -ld var
    lrwxr-xr-x   1 root     system         7 Jan  9 16:54 var -> usr/var
    
By doing it one step at a time, I can get to messages and cat it:
    
    # cd var
    # ls -ld adm
    drwxr-xr-x  10 adm      adm          512 Mar 18 16:19 adm
    # cd adm
    # ls -ld messages
    -rw-r-----   1 root     adm         4718 Mar 18 16:23 messages
# cat messages
Mar 18 16:18:53 prf04 vmunix: Alpha boot: available memory from 0xb8a000 to 0x17
ffe000
Mar 18 16:18:53 prf04 vmunix: Digital UNIX V4.0B  (Rev. 564); Tue Mar 18 16:16:3
7 EST 1997
Mar 18 16:18:53 prf04 vmunix: physical memory = 384.00 megabytes.
Mar 18 16:18:53 prf04 vmunix: available memory = 372.45 megabytes.
Mar 18 16:18:53 prf04 vmunix: using 1466 buffers containing 11.45 megabytes of m
emory
Mar 18 16:18:53 prf04 vmunix: Master cpu at slot 0.
Mar 18 16:18:53 prf04 vmunix: Firmware revision: 3.0
Mar 18 16:18:54 prf04 vmunix: PALcode: Digital-UNIX/OSF version 1.21
Mar 18 16:18:54 prf04 vmunix: AlphaServer 4X00 5/400 4MB
Mar 18 16:18:54 prf04 vmunix: pci1 at mcbus0 slot 5
Mar 18 16:18:54 prf04 vmunix: psiop0 at pci1 slot 1
Mar 18 16:18:54 prf04 vmunix: Loading SIOP: script c0000d00, reg 4222000, data c
000ccf0
Mar 18 16:18:54 prf04 vmunix: scsi0 at psiop0 slot 0
Mar 18 16:18:54 prf04 vmunix: rz5 at scsi0 target 5 lun 0 (LID=0) (DEC     RRD45
   (C) DEC  1645)
Mar 18 16:18:54 prf04 vmunix: pza0 at pci1 slot 2
Mar 18 16:18:54 prf04 vmunix: pza0 firmware version: DEC  L01  A10
Mar 18 16:18:54 prf04 vmunix: scsi1 at pza0 slot 0
Mar 18 16:18:54 prf04 vmunix: pza1 at pci1 slot 3
Mar 18 16:18:54 prf04 vmunix: pza1 firmware version: DEC  L01  A10
Mar 18 16:18:54 prf04 vmunix: scsi2 at pza1 slot 0
Mar 18 16:18:54 prf04 vmunix: rz18 at scsi2 target 2 lun 0 (LID=1) (DEC     HSZ4
0            V27Z) (Wide16)
Mar 18 16:18:54 prf04 vmunix: rzb18 at scsi2 target 2 lun 1 (LID=2) (DEC     HSZ
40            V27Z) (Wide16)
Mar 18 16:18:54 prf04 vmunix: rzc18 at scsi2 target 2 lun 2 (LID=3) (DEC     HSZ
40            V27Z) (Wide16)
Mar 18 16:18:54 prf04 vmunix: rzd18 at scsi2 target 2 lun 3 (LID=4) (DEC     HSZ
40            V27Z) (Wide16)
Mar 18 16:18:54 prf04 vmunix: rze18 at scsi2 target 2 lun 4 (LID=5) (DEC     HSZ
40            V27Z) (Wide16)
Mar 18 16:18:54 prf04 vmunix: rzf18 at scsi2 target 2 lun 5 (LID=6) (DEC     HSZ
40            V27Z) (Wide16)
Mar 18 16:18:54 prf04 vmunix: rzg18 at scsi2 target 2 lun 6 (LID=7) (DEC     HSZ
40            V27Z) (Wide16)
Mar 18 16:18:54 prf04 vmunix: rz19 at scsi2 target 3 lun 0 (LID=9) (DEC     HSZ4
0            V27Z) (Wide16)
Mar 18 16:18:54 prf04 vmunix: rzb19 at scsi2 target 3 lun 1 (LID=10) (DEC     HS
Z40            V27Z) (Wide16)
Mar 18 16:18:54 prf04 vmunix: rzc19 at scsi2 target 3 lun 2 (LID=11) (DEC     HS
Z40            V27Z) (Wide16)
Mar 18 16:18:54 prf04 vmunix: rzd19 at scsi2 target 3 lun 3 (LID=12) (DEC     HS
Z40            V27Z) (Wide16)
Mar 18 16:18:55 prf04 vmunix: rze19 at scsi2 target 3 lun 4 (LID=13) (DEC     HS
Z40            V27Z) (Wide16)
Mar 18 16:18:55 prf04 vmunix: rzf19 at scsi2 target 3 lun 5 (LID=14) (DEC     HS
Z40            V27Z) (Wide16)
Mar 18 16:18:55 prf04 vmunix: rzg19 at scsi2 target 3 lun 6 (LID=15) (DEC     HS
Z40            V27Z) (Wide16)
Mar 18 16:18:55 prf04 vmunix: gpc0 at eisa0
Mar 18 16:18:55 prf04 vmunix: pci0 at mcbus0 slot 4
Mar 18 16:18:55 prf04 vmunix: eisa0 at pci0
Mar 18 16:18:55 prf04 vmunix: ace0 at eisa0
Mar 18 16:18:55 prf04 vmunix: ace1 at eisa0
Mar 18 16:18:55 prf04 vmunix: lp0 at eisa0
Mar 18 16:18:55 prf04 vmunix: fdi0 at eisa0
Mar 18 16:18:55 prf04 vmunix: fd0 at fdi0 unit 0
Mar 18 16:18:55 prf04 vmunix: tu0: DECchip 21040-AA: Revision: 2.4
Mar 18 16:18:55 prf04 vmunix: tu0 at pci0 slot 2
Mar 18 16:18:55 prf04 vmunix: tu0: DEC TULIP Ethernet Interface, hardware addres
s: 00-00-F8-21-73-3D
Mar 18 16:18:55 prf04 vmunix: tu0: console mode: selecting 10Base2 (BNC) port
Mar 18 16:18:55 prf04 vmunix: pza2 at pci0 slot 3
Mar 18 16:18:55 prf04 vmunix: pza2 firmware version: DEC  L01  A10
Mar 18 16:18:55 prf04 vmunix: scsi3 at pza2 slot 0
Mar 18 16:18:55 prf04 vmunix: pza3 at pci0 slot 4
Mar 18 16:18:55 prf04 vmunix: pza3 firmware version: DEC  F01  A10
Mar 18 16:18:56 prf04 vmunix: scsi4 at pza3 slot 0
Mar 18 16:18:56 prf04 vmunix: pza4 at pci0 slot 5
Mar 18 16:18:56 prf04 vmunix: pza4 firmware version: DEC  N01  A10
Mar 18 16:18:56 prf04 vmunix: scsi5 at pza4 slot 0
Mar 18 16:18:56 prf04 vmunix: No FRU table entry found in console-rpb
Mar 18 16:18:56 prf04 vmunix: --Not creating a FRU table errorlog packet
Mar 18 16:18:56 prf04 vmunix: kernel console: ace0
Mar 18 16:18:56 prf04 vmunix: dli: configured
Mar 18 16:18:56 prf04 vmunix: Starting secondary cpu 1
Mar 18 16:18:56 prf04 vmunix: Starting secondary cpu 2
Mar 18 16:18:56 prf04 vmunix: Starting secondary cpu 3
Mar 18 16:19:17 prf04 vmunix: Can't find an OSF-BASE, UNIX-WORKSTATION, or UNIX-
SERVER license PAK
Mar 18 16:21:16 prf04 vmunix: Can't find an OSF-BASE, UNIX-WORKSTATION, or UNIX-
SERVER license PAK
Mar 18 16:23:30 prf04 vmunix: Can't find an OSF-BASE, UNIX-WORKSTATION, or UNIX-
SERVER license PAK

There doesn't seem to be anything unusual in install.log:

# cd smlogs
# cat install.log

 *** Creating the root file system on device rz18a ***


 *** Creating the usr file system on device rz18g ***


 *** Creating the swap1 file system on device rz18b ***


 *** Loading the operating system software subsets ***

 The installation procedure will now load the software on your
 disk partitions.  This process will take from 45 to 120 minutes
 to complete depending on your distribution media and processor type.

Checking file system space required to install specified subsets:

File system space checked OK.

33 subset(s) will be installed.

Loading 1 of 33 subset(s)....

Base System
   Copying from /ALPHA/BASE (disk)
        Working....Tue Mar 18 15:40:46 EST 1997
        Working....Tue Mar 18 15:42:47 EST 1997
   Verifying

Loading 2 of 33 subset(s)....

.
.
.

Loading 33 of 33 subset(s)....

Ref Pages: Programming
   Copying from /ALPHA/BASE (disk)
        Working....Tue Mar 18 16:00:00 EST 1997
   Verifying

33 of 33 subset(s) installed successfully.


Install start: Tue Mar 18 15:31:58 EST 1997
Install finish: Tue Mar 18 16:01:40 EST 1997


Here's the disk structure:

# df -k
Filesystem  1024-blocks        Used   Available Capacity  Mounted on
/dev/rz18a        63311       45613       11366    81%    /
/proc                 0           0           0   100%    /proc
/dev/rz18g     11992287      363868    10429190     4%    /usr

# cd /dev
# ls rz*
rz18a   rz19e   rzb18a  rzb19e  rzc19a  rzd18e  rze18a  rze19e  rzf19a  rzg18e
rz18b   rz19f   rzb18b  rzb19f  rzc19b  rzd18f  rze18b  rze19f  rzf19b  rzg18f
rz18c   rz19g   rzb18c  rzb19g  rzc19c  rzd18g  rze18c  rze19g  rzf19c  rzg18g
rz18d   rz19h   rzb18d  rzb19h  rzc19d  rzd18h  rze18d  rze19h  rzf19d  rzg18h
rz18e   rz5a    rzb18e  rzc18a  rzc19e  rzd19a  rze18e  rzf18a  rzf19e  rzg19a
rz18f   rz5b    rzb18f  rzc18b  rzc19f  rzd19b  rze18f  rzf18b  rzf19f  rzg19b
rz18g   rz5c    rzb18g  rzc18c  rzc19g  rzd19c  rze18g  rzf18c  rzf19g  rzg19c
rz18h   rz5d    rzb18h  rzc18d  rzc19h  rzd19d  rze18h  rzf18d  rzf19h  rzg19d
rz19a   rz5e    rzb19a  rzc18e  rzd18a  rzd19e  rze19a  rzf18e  rzg18a  rzg19e
rz19b   rz5f    rzb19b  rzc18f  rzd18b  rzd19f  rze19b  rzf18f  rzg18b  rzg19f
rz19c   rz5g    rzb19c  rzc18g  rzd18c  rzd19g  rze19c  rzf18g  rzg18c  rzg19g
rz19d   rz5h    rzb19d  rzc18h  rzd18d  rzd19h  rze19d  rzf18h  rzg18d  rzg19h

Now I should mention that the unusual behavior started AFTER I tried to add 
another swap partition.  Here's some of what I had done (cut/paste from 
windows that also survived the night).  First, I tried to add a swap 
partition on h, but that didn't work because apparently h was not created:

# vi /etc/fstab
"/etc/fstab" 4 lines, 113 characters
/dev/rz18a       /              ufs rw 1 1
/proc            /proc  procfs rw 0 0
/dev/rz18g       /usr   ufs rw 1 2
/dev/rz18b       swap1  ufs sw 0 2
/dev/rz18h       swap2  ufs sw 0 2
# swapon -a
swapon: /dev/rz18h: No space left on device
# swapon -s
Swap partition /dev/rz18b (default swap):
    Allocated space:        16384 pages (128MB)
    In-use space:               1 pages (  0%)
    Free space:             16383 pages ( 99%)

So I tried to disklabel the other disk but the manpage wasn't available.  I 
also tried to display the label on the system disk - I *thought* I
remembered that -r would just display the existing label, but was that
incorrect?

# man disklabel
/usr/lib/terminfo/.: No such file or directory
# disklabel -r rz19
Disk is unlabeled or, /dev/rrz19a does not start at block 0 of the disk
# disklabel -r rz18
# /dev/rrz18a:
type: SCSI
disk: HSZ40
label:
flags: dynamic_geometry
bytes/sector: 512
sectors/track: 113
tracks/cylinder: 20
sectors/cylinder: 2260
cylinders: 11121
sectors/unit: 25134084
rpm: 3600
interleave: 1
trackskew: 7
cylinderskew: 26
headswitch: 0           # milliseconds
track-to-track seek: 0  # milliseconds
drivedata: 0

8 partitions:
#        size   offset    fstype   [fsize bsize   cpg]
  a:   131072        0    4.2BSD     1024  8192    16   # (Cyl.    0 - 57*)
  b:   262144   131072      swap                        # (Cyl.   57*- 173*)
  c: 25134084        0    unused        0     0         # (Cyl.    0 - 11121*)
  d:        0        0    unused        0     0         # (Cyl.    0 - -1)
  e:        0        0    unused        0     0         # (Cyl.    0 - -1)
  f:        0        0    unused        0     0         # (Cyl.    0 - -1)
  g: 24740868   393216    4.2BSD     1024  8192    16   # (Cyl.  173*- 11121*)
  h:        0        0      swap                        # (Cyl.    0 - -1)
#
# disklabel -rw rz19 HSZ40
HSZ40: unknown disk type

So I gave up on disklabelling for now and decided to try to live with only 
a 128 MB swap partition.  I left root and did an ftp  -which worked - but
it was at the zcat where things began to seem wierd:

prf04.zko.dec.com> zcat ~/spec95_v1.13/pexe*Z | tar xvf -
No match.
tar: Command not found.
prf04.zko.dec.com> whereis tar
tar: /sbin/tar /usr/bin/tar
prf04.zko.dec.com> /sbin/tar
tar: you must specify exactly one of the c, t, r, u or x options
   (etc)

prf04.zko.dec.com>
prf04.zko.dec.com> zcat ~/spec95_v1.13/pexe*Z | /sbin/tar xvf -
/sbin/tar: Command not found.

prf04.zko.dec.com> cp ~/spec95_v1.13/pex*Z .
prf04.zko.dec.com> ls
101.tomcatv        104.hydro2d        125.turb3d         146.wave5
102.swim           107.mgrid          141.apsi           bench.lst
103.su2cor         110.applu          145.fpppp          pexes_18mar.tar.Z
prf04.zko.dec.com> uncompress *Z
prf04.zko.dec.com> ls
101.tomcatv      104.hydro2d      125.turb3d       146.wave5
102.swim         107.mgrid        141.apsi         bench.lst
103.su2cor       110.applu        145.fpppp        pexes_18mar.tar
prf04.zko.dec.com> tar xvf pexes_18mar.tar
blocksize = 256
x applu.pexe, 360448 bytes, 704 tape blocks
x hydro2d.pexe, 196608 bytes, 384 tape blocks
x mgrid.pexe, 81920 bytes, 160 tape blocks
x su2cor.pexe, 245760 bytes, 480 tape blocks
x swim.pexe, 81920 bytes, 160 tape blocks
x tomcatv.pexe, 49152 bytes, 96 tape blocks
x turb3d.pexe, 106496 bytes, 208 tape blocks
x wave5.pexe, 663552 bytes, 1296 tape blocks

And then right after this I tried to become superuser again and first ran
into the really strange behavior:

prf04.zko.dec.com> cd ..
prf04.zko.dec.com> su
Password:
No shell
prf04.zko.dec.com> su
Password:
No shell
prf04.zko.dec.com> su -f
Password:
No shell
prf04.zko.dec.com> ls /bin/csh
/bin/csh not found

So did I break it by trying to use h as the swap partition?
Or by the disklabel -r ?
Or by trying to switch to the C shell (this has always worked before...)??
9216.5PERFOM::HENNINGWed Mar 19 1997 09:539
re: .3

# sh
# echo $PATH
/sbin:/usr/sbin:/usr/bin:/usr/bin/X11
# csh
# echo $PATH
/sbin:/usr/sbin:/usr/bin:/usr/bin/X11

9216.6COL01::LINNARTZMon Mar 24 1997 09:4014
    due to the ex/vi/... problems, I would check all where all /tmp
    links points to.
    
    as an aid, I use truss or trace like
    trace [-o tt] /sbin/ls -l /usr/var
    and grep for readlink syscall
    
    as to other, a fverify on the installed modules would make me feel
    safer, as the subset uses something like 
    cat <kit> | uncompress -d | tar xvf -
    and if tar doesn't work right, I wouldn't be sure if I could trust
    the installation
    
    Pit