[Unionfs] Oops when inserting rw branch with unionfs on root filesystem

Erez Zadok ezk at cs.sunysb.edu
Wed Mar 26 13:06:52 EDT 2008


In message <47EA283B.7070307 at expires-20080606.gate.mooo.com>, Klaus Fuerstberger writes:
> Erez Zadok said the following on 25.03.2008 22:50:
> >> I have a unionfs root filesystem. Sometimes I want to sync the unionfs 
> >> changes in ram back to the CF card. This is done with rsync and ist no 
> >> problem. But now I want to free the used ram of the unionfs. Mostly it 
> >> works, if I simlpe delete the /ram/changes/*, but sometimes the system 
> >> freezes.
> 
> Answering to my own posting:
> I noticed that this *always* works fine, when I did a "mount -t unionfs
> -o remount,incgen none /" just after deleting the contents of the rw
branch with unionfs 2.2.4. With the new 2.3.1 this does not work
> anymore. More below.
> 
> >> Now I thought it would be the cleanest to insert another leftmost 
> >> read-write branch at highest priority and delete the old read-write 
> >> branch with the used memory. This resulted in the crash below.
> >> Is there any clean method, beside a reboot, to free the used memory of 
> >> the union after the rsync?
> 
> This works now with 2.3.1 I'm able to insert a topleft rw branch. 
> Although I'm not able to delete the old rw branch because it is mounted 
> on the root filesystem and busy.
> 
> But originally I wanted the following:
> #########################
> mount -t ext3 -o remount,rw /dev/hda1 /ram/rootfs
> rsync -av --exclude=/tmp/ --exclude=/ram/ --exclude=/proc/
> --exclude=/sys/ --exclude=/dev/ --delete / /ram/rootfs/
> mount -t ext3 -o remount,ro /dev/hda1 /ram/rootfs
> sync
> rm -r /ram/changes/*
> mount -t unionfs -o remount,incgen none /
> #########################
> 
> As I said above, this works with unionfs 2.2.4 and kernel 2.6.24.3
> 
> Now with unionfs 2.3.1 and kernel 2.6.24.4 I got this oops just after
> "rm -r /ram/changes/*". This is mostly reproducable.
> 
> #########################
> alixtest login: BUG: unable to handle kernel NULL pointer dereference at 
> virtual address 00000018
[...]

Do you have a livecd I can use w/ this?  Or a VMware image?  Otherwise, plz
send me all your scripts to reproduce this from a plain machine.  I need in
particular to know when/how you're using pivot_root/chroot, etc.

BTW, I believe what you're trying to do is similar in spirit to Dave
Miller's setup: using unionfs for snapshotting and rsync'ing b/t snapshots
and bases..  Perhaps he can share his scripts with you?

Thanks,
Erez.


More information about the unionfs mailing list