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-fs" 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>
