Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Jul 2000 01:58:38 -0400 (EDT)
From:      "Mark W. Krentel" <krentel@dreamscape.com>
To:        marcel@cup.hp.com
Cc:        freebsd-emulation@FreeBSD.ORG, freebsd-fs@FreeBSD.ORG
Subject:   Re: panic running linux binaries from ext2fs
Message-ID:  <200007070558.BAA01241@dreamscape.com>

next in thread | raw e-mail | index | archive | help
I've run some more experiments and I've narrowed the problem somewhat.

Using the Slackware 7 live file system, I tar-copied /cdrom/live/bin
onto ufs and ext2fs partitions.  Then I ran Slackware's ls from ufs,
cdrom and ext2fs and listed directories on ufs, cdrom and ext2fs.
Sometimes it worked ok, sometimes the output of ls was corrupt (too
few files), and the pattern is quite clear.

                        directory listed on 
    binary on        ufs       cdrom       ext2fs
      ufs            ok       corrupt      corrupt
     cdrom           ok       corrupt      corrupt
     ext2fs          ok       corrupt      corrupt

I also updated libncurses.so.5.0 and installed emacs's libexec and
share files and repeated the above test with dired from emacs.  I got
the same results, except that the corrupt directory listings were
slightly different between ls and emacs.  For example, in one
directory on ext2fs that actually has 77 files, ls reported 71 files,
but dired listed only 29.  But they always either both worked or both
had too few files.  And sometimes the bottom row panics, but not this
time.

For example, this is Slackware's ls (on ufs) listing a directory on
ext2fs that actually has 89 files.

   % ./ls /mnt/bin
   awk    chmod         cp  gawk        keys;^  mkdir   mv     sed   touch
   bash   chown         dd  gawk-3.0.4  ln      mknod   rm     sh
   chgrp  consolechars  df  igawk       ls      mktemp  rmdir  sync

And the same Linux ls listing a cdrom directory with 801 files.
It comes up 792 files short.

   % ./ls /cdrom/live/usr/bin  
   00_TRANS.TBL  a2p  aafire  aainfo  aasavefont  aatest  aclocal  addr  addr2line

So, apparently the Linux ls is having trouble reading non-ufs file
systems.  And I noticed that dired was unable to do path completion.
I typed /cdrom/li and hit tab, and emacs complained that there was no
completion, probably because there is no /compat/linux/cdrom/li*.  But
there is /cdrom/live/bin and dired listed it, although incorrectly.

I'll take a wild guess and say that the Linuxulator opens a file or
directory and gets an error, but it doesn't notice the error and
proceeds blindly along.  Maybe where it chooses between lookups in
/compat/linux or /.  But that's a wild guess.

Still interested?

--Mark


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-emulation" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200007070558.BAA01241>