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

RE: /scripts/local: Waiting for root file system...



> > I've downloaded the snapshot:
> > 
> http://git.debian.org/?p=kernel/initramfs-tools.git;a=snapshot;h=HEAD
> > 
> > But I can' find it! There's no /scripts/init-premount/udev
> > 
> > rootdelay is mentioned only in these files:
> > <snipp>
> > 
> > Am I missing something?
> 
> yup,
> each package shipps its own hooks. i-t is very modular by design.
> you have to check udev source the extra dir.

Thanks for pointer, I've found the described code in
http://ftp.debian.org/debian/pool/main/u/udev/udev_0.114-2.diff.gz

It should work but it doesn't seem "clean solution" to me
because originally rootdelay was used in /scripts/local
but now it's used also in init-premount/udev which
doubles the time user have to wait to be dropped into
initramfs shell (when no root is available).

The solution I'm proposing is cleaner and requires
less hand work for the end user. Here's the `diff -u`
(tested and working):

--- local.orig  2007-10-05 14:01:43.000000000 +0400
+++ local       2007-10-05 13:59:07.000000000 +0400
@@ -24,6 +24,12 @@

                slumber=$(( ${slumber} * 10 ))
                while [ ${slumber} -gt 0 ] && [ ! -e "${ROOT}" ]; do
+                       if [ $(( ${slumber} % 99 )) -eq 0 ]; then
+                         [ "$quiet" != "y" ] && log_begin_msg "Retrying
/scripts/local-top"
+                         run_scripts /scripts/local-top
+                         [ "$quiet" != "y" ] && log_end_msg
+                       fi
+
                        /bin/sleep 0.1
                        slumber=$(( ${slumber} - 1 ))
                done

If you'd like I can create a Bugzilla entry for this.


Petya.



Reply to: