Bug#582858: initramfs-tools: MODULES=dep fails when / is ubifs
* Martin Michlmayr <tbm@cyrius.com> [2010-06-08 21:31]:
> This is the output from 'mount', and here's what i-t does:
>
> eval "$(mount | awk '/\/dev\// {if ($3 == "/") {print "root=" $1 "\nFSTYPE=" $5; exit}}')"
>
> it looks for something with /dev/ in it. In your case, this does't
> match so root= and FSTYPE= are empty. I think we should simply add a
> check to i-t at this point to produce an error when $root is empty.
[PATCH] Produce an error when root cannot be determined with MODULES=dep
A lot of code in dep_add_modules() uses $root. Therefore, produce an
error message if we cannot determine the root device.
Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
diff --git a/hook-functions b/hook-functions
index 6a6e233..154ae3e 100644
--- a/hook-functions
+++ b/hook-functions
@@ -226,6 +226,11 @@ dep_add_modules()
# findout root block device + fstype
eval "$(mount | awk '/\/dev\// {if ($3 == "/") {print "root=" $1 "\nFSTYPE=" $5; exit}}')"
+ if [ -z "$root" ]; then
+ echo "mkinitramfs: failed to determine root device"
+ echo "mkinitramfs: workaround is MODULES=most"
+ echo "Error please report bug on initramfs-tools and include the output of 'mount'"
+ fi
# handle ubifs and return since ubifs root is a char device but
# most of the commands below only work with block devices.
--
Martin Michlmayr
http://www.cyrius.com/
Reply to: