Mailing List Archive

Support open source code!


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Neat Bug ....



>>>>> "Joe" == Joe Marchak <j_marcha@example.com> writes:

    Joe> I had some 500Mb and 750 Mb drives left over, so I decided to
    Joe> hook them up as spare space in /usr as /usr, /usr/local,
    Joe> /usr/local2.  What I found was a reproducible problem where
    Joe> if the drive that was defined for /usr/local (or any other
    Joe> subdirectory of /usr) was written ahead of the one for /usr
    Joe> in fstab, the /usr/local wouldn't be mounted properly.  It
    Joe> got confused with /usr.

    Joe> Just switching the order in fstab fixed the problem.  This
    Joe> was independent of which drives I used, and also was
    Joe> consistent with 1.2.13 and 2.0.

    Joe> Anyone else seen this problem?

This isn't a "bug", it's a "feature"!  :-)  Presumably you have a /usr
directory on your root drive, and a /usr/local directory in that file
system, as well as a /local directory on the sdc1 device.  Otherwise,
you shouldn't be able to mount to /usr/local at all at that stage of
the boot process.

>>>>> "glynn" == glynn  <glynn@example.com> writes:

    glynn> IMHO If You`re mounting /usr/local and then /usr , you`ll
    glynn> not be able to see /usr/local

This is because at boot time (let's not worry about how root got
mounted) your file system looks like this (':' indicates a mountable
object):

+------------------ visible ------------------+
| /:sdb1/                                     |
|       +- usr/                               |
|       |     +- local/                       |
|       +- var/                               |
|       etc...                                |
+----------------- invisible -----------------+
| :sdc1/                                      |
|      +- local/                              |
|      |       +- bin/                        |
|      +- var/                                |
|      etc...                                 |
| :sdd1/                                      |
|      +- bin/                                |
|      |     +- X11/                          |
|      +- lib/                                |
|      etc...                                 |
| :sde1/                                      |
|      etc...                                 |
+---------------------------------------------+

After mounting sdd1 on /usr/local, it looks like

+------------------ visible ------------------+
| /:sdb1/                                     |
|       +- usr/                               |
|       |     +- local/sdd1:/                 |
|       |                   +- bin/           |
|       |                   |     +- X11/     |
|       |                   +- lib/           |
|       |                   etc...            |
|       +- var/                               |
|       etc...                                |
+----------------- invisible -----------------+
| :sdc1/                                      |
|      +- local/                              |
|      |       +- bin/                        |
|      +- var/                                |
|      etc...                                 |
| sde1:/                                      |
|      etc...                                 |
+---------------------------------------------+

After mounting sdc1 on /usr, it looks like

+------------------ visible ------------------+
| /:sdb1/                                     |
|       +- usr/:sdc1/                         |
|       |           +- local/ *** visible *** |
|       |           +- bin/                   |
|       |           +- var/                   |
|       |           etc...                    |
|       |     +- local/sdd1:/  *** ORPHAN *** |
|       |                   +- bin/           |
|       |                   |     +- X11/     |
|       |                   +- lib/           |
|       |                   etc...            |
|       +- var/                               |
|       etc...                                |
+----------------- invisible -----------------+
| sde1:/                                      |
|      etc...                                 |
+---------------------------------------------+

Note that there are *two* potential /usr/local objects.  You can't
have both unless you're using an IFS, and I don't see how you could
(efficiently) have both using your scheme (IFS does multiple mounts to
a given point on one FS, but you have to keep track of the nominal
mount point, rather than simply following single links).

This means that you can have an arbitrarily large number of objects
which can be used as the directory /usr/local, and they can be changed 
on the fly.

Note that the notation dir/:dev/ means that the entry at dir/ is
a pointer to the root directory on dev.

    glynn> This is how mounting works and bootup process of mounting
    glynn> is in fstab sequence ... (read the bootup messages)

    glynn> For example if you mount a CDROM on a existing
    glynn> dir. hierarchy you`ll not see the dir. hierarchy again
    glynn> until you unmount the CDROM

Well, um.  Seems to me that unless you're using the Inherited File
System (which allows you to inherit files not existing in the object
currently mounted on a given point from previously mounted objects
which have not been dismounted from that point) mount(1) ought to warn 
you that the directory you're mounting to is not empty.

So maybe it's a bug after all.

-- 
                           Stephen John Turnbull
University of Tsukuba                                        Yaseppochi-Gumi
Institute of Policy and Planning Sciences  http://turnbull.sk.tsukuba.ac.jp/
Tennodai 1-1-1, Tsukuba, 305 JAPAN                 turnbull@example.com
-----------------------------------------------------------------
a word from the sponsor will appear below
-----------------------------------------------------------------
The TLUG mailing list is proudly sponsored by TWICS - Japan's First
Public-Access Internet System.  Now offering 20,000 yen/year flat
rate Internet access with no time charges.  Full line of corporate
Internet and intranet products are available.   info@example.com
Tel: 03-3351-5977   Fax: 03-3353-6096


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links