Skip to content

Commit

Permalink
Dropping unionfs-fuse support:
Browse files Browse the repository at this point in the history
  * unionfs-fuse itself has been always very buggy for us.
  * unionfs-fuse code in live-boot as been experimental at best.
  * the FUSE implementation is horribly slow due to the nature of
    FUSE (~10min to boot a live system with unionfs-fuse compared
    to <<1min with aufs).
  * and last but not least, there's overlay in kernel mainline now.
  • Loading branch information
daniel-baumann committed Jan 4, 2015
1 parent 44e7b72 commit ec9bd07
Show file tree
Hide file tree
Showing 6 changed files with 5 additions and 65 deletions.
6 changes: 0 additions & 6 deletions backend/initramfs-tools/live.hook
Expand Up @@ -110,12 +110,6 @@ manual_add_modules aufs
manual_add_modules overlay
manual_add_modules unionfs

# Filesystem: unionfs-fuse
if [ -x /usr/bin/unionfs-fuse ]
then
copy_exec /usr/bin/unionfs-fuse /bin
fi

# Filesystem: vfat
manual_add_modules nls_cp437
manual_add_modules nls_iso8859-1
Expand Down
15 changes: 0 additions & 15 deletions components/9990-main.sh
Expand Up @@ -148,15 +148,6 @@ Live ()

log_end_msg

# unionfs-fuse needs /dev to be bind-mounted for the duration of
# live-bottom; udev's init script will take care of things after that
case "${UNIONTYPE}" in
unionfs-fuse)
mount -n -o bind /dev "${rootmnt}/dev"
;;
esac


# aufs2 in kernel versions around 2.6.33 has a regression:
# directories can't be accessed when read for the first the time,
# causing a failure for example when accessing /var/lib/fai
Expand Down Expand Up @@ -201,12 +192,6 @@ Live ()

Swap

case "${UNIONFS}" in
unionfs-fuse)
umount "${rootmnt}/dev"
;;
esac

exec 1>&6 6>&-
exec 2>&7 7>&-
kill ${tailpid}
Expand Down
21 changes: 0 additions & 21 deletions components/9990-misc-helpers.sh
Expand Up @@ -1294,34 +1294,13 @@ do_union ()
noxino_opt="noxino"
;;

unionfs-fuse)
rw_opt="RW"
ro_opt="RO"
;;

*)
rw_opt="rw"
ro_opt="ro"
;;
esac

case "${UNIONTYPE}" in
unionfs-fuse)
unionmountopts="-o cow -o noinitgroups -o default_permissions -o allow_other -o use_ino -o suid"
unionmountopts="${unionmountopts} ${unionrw}=${rw_opt}"
if [ -n "${unionro}" ]
then
for rofs in ${unionro}
do
unionmountopts="${unionmountopts}:${rofs}=${ro_opt}"
done
fi
( sysctl -w fs.file-max=391524 ; ulimit -HSn 16384
unionfs-fuse ${unionmountopts} "${unionmountpoint}" ) && \
( mkdir -p /run/sendsigs.omit.d
pidof unionfs-fuse >> /run/sendsigs.omit.d/unionfs-fuse || true )
;;

overlay)
# XXX: can multiple unionro be used? (overlay only handles two dirs, but perhaps they can be chained?)
# XXX: and can unionro be optional? i.e. can overlay skip lowerdir?
Expand Down
25 changes: 4 additions & 21 deletions components/9990-overlay.sh
Expand Up @@ -10,21 +10,12 @@ setup_unionfs ()

case ${UNIONTYPE} in
aufs|unionfs|overlay)
modprobe -q -b ${UNIONTYPE}

if ! cut -f2 /proc/filesystems | grep -q "^${UNIONTYPE}\$" && [ -x /bin/unionfs-fuse ]
if ! cut -f2 /proc/filesystems | grep -q "^${UNIONTYPE}\$"
then
echo "${UNIONTYPE} not available, falling back to unionfs-fuse."
echo "This might be really slow."

UNIONTYPE="unionfs-fuse"
panic "${UNIONTYPE} not available."
fi
;;
esac

case "${UNIONTYPE}" in
unionfs-fuse)
modprobe fuse
modprobe -q -b ${UNIONTYPE}
;;
esac

Expand Down Expand Up @@ -358,15 +349,7 @@ setup_unionfs ()
# do nothing # mount -o bind "${d}" "${live_rootfs}"
;;
*)
case "${UNIONTYPE}" in
unionfs-fuse)
mount -o bind "${d}" "${live_rootfs}"
;;

*)
mount -o move "${d}" "${live_rootfs}"
;;
esac
mount -o move "${d}" "${live_rootfs}"
;;
esac
done
Expand Down
1 change: 0 additions & 1 deletion debian/control
Expand Up @@ -23,7 +23,6 @@ Suggests:
curlftpfs,
cryptsetup,
httpfs2,
unionfs-fuse,
wget,
Description: Live System Boot Components
The Live Systems project maintains the components to build Debian based Live
Expand Down
2 changes: 1 addition & 1 deletion debian/live-boot.bug-script
Expand Up @@ -7,7 +7,7 @@ dpkg -l busybox busybox-initramfs initramfs-tools udev
dpkg -l rsync uuid-runtime

# Checking suggests
dpkg -l curlftpfs cryptsetup httpfs2 unionfs-fuse wget
dpkg -l curlftpfs cryptsetup httpfs2 wget

# Checking other packages
dpkg -l plymouth
Expand Down

0 comments on commit ec9bd07

Please sign in to comment.