One of the key features of the upcoming release of Bedrock Linux, Flopsie, is a new union filesystem intended to fix the /etc-issue. This has been backported to Bosco for those who would like to try it out without having to wait for Flopsie's release. Note that this backport has had minimal testing and may be potentially problematic. If you experience problems, rolling back to Bosco's setup is advised.
Note: This filesystem is named "bru". The utility update utility previously known as "bru" will be merged into another utility, tentatively named "pmm". Apologies for the confusion - it is best to get it out of the way now while the project is still in alpha.
Additionally note that this requires support for FUSE either built-in to the kernel or as a readily accessible kernel module.
Make a directory in which to download and compile the necessary components as well as a directory in which to "install" a local development stack.
Download the backported version of bru from here and source for the musl libc library from here and FUSE here into
/tmp/backport/src. Note that both projects have patches for bru and, at the time of writing, the latest version development (HEAD from git) of both is required. At the time of writing the version of latest stable musl is 0.9.14, and so most likely any later version not including that version most likely will work. For FUSE, bru will require 3.X.
Compile and install musl with the
--prefix into the local development stack
/tmp/backport/dev --disable-shared --enable-static
Compile and install FUSE, again with the
--prefix into the local development
stack location. Use the
musl-gcc wrapper created by musl as the
/tmp/backport/dev --disable-shared --enable-static --disable-util --disable-example
Utilize this newly created development stack to compile bru.c. Make the output
brU with a capital "u" to differentiate it from Bosco's
utility. In the following release it will just be
bru and what is now
will be merged into a placeholder for
/tmp/backport/dev/bin/musl-gcc -Wall bru.c -o brU -lfuse3
cp /tmp/backport/src/brU /bedrock/sbin/brU
Comment out the share items from your
/bedrock/etc/brclients.conf which share
/etc. This will be setup to be shared with
brU directly in
- keep the list.
brU should be added to
brs so that it is set up at boot. First, back
brs so that you can undo this later:
cp /bedrock/sbin/brs /bedrock/sbin/brs-backup
/bedrock/sbin/brs in your preferred text editor and add the
if [ "$CLIENT" != "bedrock" ]
brc $CLIENT /bedrock/sbin/brU /etc /var/chroot/$CLIENT/etc \
/profile /hostname /hosts /passwd \
/group /shadow /sudoers /resolv.conf &
done in the inner for loop (and just above the final
fi in the
script). Adjust the arguments after
/var/chroot/bedrock/etc to the list of
files you would like shared in
Finally, you need to make sure the FUSE module is
modprobe'd. If you
compiled your kernel with fuse built-in, you can skip this step. Otherwise,
add the following to
brs just before the line
client modprobe fuse
client is a client which has a version of
modprobe which can load
the module. Some distros compress their modules; distros which do not may not
modprobe configured to decompress modules.
At this point you should be good to go - all you need to do is reboot.
If the backport is not working for you, you can roll it back by doing the following:
cp /bedrock/sbin/brs-backup /bedrock/sbin/brs
and then re-adding the commented out
/etc items from