I was making liveUSB iso file, doing many mounts, plus chroot script
having mount -t proc proc /proc
in the script (chroot
is a new thing for me, I noticed the issue when I was ding some "cleaning" and script run with chroot was not running any more). And now have IMO very strange situation, how is it possible for system to behave in such a way?
$ if [ -d "newdir/proc" ]; then echo 1;fi
1
$ if [ -d "newdir/pro" ]; then echo 1;fi
$ sudo ls -al "newdir"
total 0
The issue also is that umount newdir
outputs "target is busy". findmnt | grep proc
no longer shows "newdir/proc" line.
Added 1:
$ sudo ls -al "newdir/media/root/usb" # another mount
total 0
$ sudo ls -al "newdir/media/root"
total 0
$ sudo ls -al "newdir/media"
total 0
If it could make a difference, newdir
is in tmpfs
system.
Added 2:
After suggestion from the answer by @Bart I ran lsof
and realised I had another terminal where I did chroot newdir
to see IIRC results of the script. Now I exited that chroot, lsof | grep nwdir
no longer outputs list if those bash commands, only warnings about fuse.gvfsd-fuse
and fuse /run/user/1000/doc
. Still the same for:
$ sudo ls -al "newdir/media/root"
total 0
However after that I was able to do w/out errors in output umount newdir
and after that sudo ls -al "newdir/media/root"
gave no such file
.
P.S. the cause of the unexpected behavior was identified with help here: not closed terminal with chroot. However, I've read how to access files using handles of open processes, but here "ghosting" evidenced itself for ordinary way to run ls
, I still hope I will see explanation why/how it worked that way.
ls -ld /path/to/newdir
say about permissions?