[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Hiding nodes with unionmount
From: |
Sergiu Ivanov |
Subject: |
Re: Hiding nodes with unionmount |
Date: |
Thu, 30 Jul 2009 15:37:39 +0300 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
Hello,
On Thu, Jul 30, 2009 at 11:12:03AM +0200, Arne Babenhauserheide wrote:
> Am Donnerstag, 30. Juli 2009 10:48:00 schrieb Carl Fredrik Hammar:
> > A cleaner solution would be to first mount a hypothetical ``filterfs''
> > that removes the files, and then do a unionmount on top of that. Also you
> > could just simply set a lib.so.1 -> lib.so.3 symlink in the mountee, which
> > would shadow the underlying lib.so.1.
>
> That's definitely sounds cleaner.
>
> Could a filterfs and unionmount be combined to a fully transparent writeable
> filesystem which uses a readonly filesystem as base?
>
> That way I could use a LiveCD as base and store my changes on a USB-stick. To
> setup my environment (including my user data) I'd just set my "this is my
> system" translator on root.
>
> $ settrans -a / mine /mnt/usb/arne.tbz
You mean union-mounting ``mine'' here, right? Note that you still
require root privileges to set a translator on / . (At least I'm not
allowed to do that in my instance of the Hurd).
When I tried to set a translator on / as root, I didn't really succeed
either, but this could be because I was doing something wrong. I did
the following:
# settrans -a / <trans>
I can see no difference between the output of ls / before mounting
<trans> and after it, although I can see the translator process
running. Also, I can settrans -gf / , and it kills <trans>, and I
still can ls / quite successfully. However, whenever I do fsysopts /,
I never see anything but the expected ext2fs.static translator.
> Other users would still see the original system, but I'd work in my
> own environment.
I'm not sure it is really possible, since you are setting a translator
on / .
> It could even use a version tracking backend, which tells it which files need
> to be filtered and added. That way a change in the base system could be
> reflected in the filterfs. This would then use a lot more space, but if the
> main repository would be used as a base by all users, that space would only
> be
> required once.
I'm sorry, but I cannot see why you need a version tracking back-end
in this case. Actually, what I cannot fully understand is the
``version tracking'' part :-) If your point is that filterfs should
show only *a part* of the base filesystem, then you don't really need
any version tracking. Just tell the all-mighty filterfs to mask away
the corresponding files. Do I understand something wrong?
> Instead of that it could also just access an installed package database for
> filtering installed programs - in Gentoo that would just mean accessing the
> files inside /var/db and telling the filterfs (or a preprocessor) not only to
> mask files but to mask installed packages so they can get replaced completely
> by the users installed packages.
So, your personal setup also includes the modified files from some
system directories, right? (like /var/db, /etc/)
> I could have a Gentoo where every user can modify the whole system without
> affecting any other user.
This sounds cool :-) And also very much like sub-hurds, actually ;-) I
don't know whether sub-hurds must always use a chrooted environment,
but, even if not, working within one and doing a chroot explicitly
gives you a personal world per user, too.
Regards,
scolobb