[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: