diff --git a/ChangeLog b/ChangeLog index 4af54cb..0f18209 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,7 @@ SystemRescue ChangeLog ------------------------------------------------------------------------------ 10.03 (YYYY-MM-DD): ------------------------------------------------------------------------------ +* Fix using findroot when /sbin/init is an absolute symlink (#340) * Added sleuthkit (Tools for raw file system inspection) (#349) * Added timeshift (snapshot-based backup solution) (#350) diff --git a/airootfs/etc/initcpio/hooks/findroot b/airootfs/etc/initcpio/hooks/findroot index 63923d4..9934ed7 100644 --- a/airootfs/etc/initcpio/hooks/findroot +++ b/airootfs/etc/initcpio/hooks/findroot @@ -45,7 +45,15 @@ run_hook() { echo "Checking for ${init} on device ${curdev} ..." if mount -r ${curdev} ${newroot} 2>/dev/null then - if test -x ${newroot}/${init} + # check if /sbin is a symlink and if it is absolute or relative + if test -L "${newroot}/sbin" && readlink "${newroot}/sbin" | grep -q "^/" + then + echo "Absolute /sbin symlink on device ${curdev}" + echo "This usrmerge layout is currently not supported by findroot." + umount ${newroot} + continue + fi + if test -x ${newroot}/${init} || test -L ${newroot}/${init} then echo "Found ${init} on device ${curdev}" rootcount=$((rootcount + 1))