Bug#698733: Fix detection of /usr/ partition as a GNU/Linux root partition when /lib* directories are moved to /usr/ completely (e.g. in Fedora 17/18)
Package: os-prober
Version: 1.57
Tags: patch
In distributions which have moved /lib* completely inside /usr/, if /usr
is in a separate partition os-prober will consider that /usr partition
as a root partition. This patch makes sure that /usr partitions are not
detected as / partition by checking if that partition also contains a
/boot directory which is supposed to exist in /. If not, another
directory like /dev could be used.
diff -up os-prober-1.57/os-probes/mounted/common/90linux-distro.usrmovefix os-prober-1.57/os-probes/mounted/common/90linux-distro
--- os-prober-1.57/os-probes/mounted/common/90linux-distro.usrmovefix 2013-01-23 00:39:20.333616357 +0330
+++ os-prober-1.57/os-probes/mounted/common/90linux-distro 2013-01-23 00:39:51.834222545 +0330
@@ -17,7 +17,7 @@ type="$3"
# symlinks we need to also check in $dir/usr/lib* for distributions that
# moved /lib* to /usr and only left symlinks behind.
# TODO: look for ld-linux.so on arches that have it
-if (ls "$dir"/lib*/ld*.so* || ls "$dir"/usr/lib*/ld*.so*) >/dev/null 2>/dev/null; then
+if (ls "$dir"/lib*/ld*.so* && [ -d "$dir/boot" ] || ls "$dir"/usr/lib*/ld*.so*) >/dev/null 2>/dev/null; then
if [ -e "$dir/etc/debian_version" ]; then
short="Debian"
long="$(printf "Debian GNU/Linux (%s)\n" "$(cat "$dir/etc/debian_version")")"
Reply to: