summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xinitramfs-init19
1 files changed, 13 insertions, 6 deletions
diff --git a/initramfs-init b/initramfs-init
index 6b9fe4d..d35f5ae 100755
--- a/initramfs-init
+++ b/initramfs-init
@@ -53,6 +53,15 @@ find_ovl() {
echo "$ovl"
}
+retry_mount() {
+ # usb might need some time to settle so we retry a few times
+ for i in $(seq 0 19); do
+ mount $@ 2>&1 && return 0
+ sleep 1
+ done
+ return 1
+}
+
# gotta start from somewhere :)
echo "Alpine Init $VERSION"
@@ -116,7 +125,9 @@ eend 0
# check if root=... was set
if [ -n "$KOPT_root" ]; then
- mount $KOPT_root $NEWROOT
+ ebegin "Mounting root"
+ retry_mount $KOPT_root $NEWROOT 2>/dev/null
+ eend $?
cat /proc/mounts | while read DEV DIR TYPE OPTS ; do
if [ "$DIR" != "/" -a "$DIR" != "$NEWROOT" -a -d "$DIR" ]; then
mkdir -p $NEWROOT/$DIR
@@ -136,11 +147,7 @@ if [ -n "$ALPINE_DEV_FS" ]; then
mount_opts="-t $ALPINE_DEV_FS"
fi
-# usb might need some time to settle so we retry a few times
-for i in $(seq 0 19); do
- mount $mount_opts /dev/$ALPINE_DEV $ALPINE_MNT >/dev/null 2>&1 && break
- sleep 1
-done
+retry_mount $mount_opts /dev/$ALPINE_DEV $ALPINE_MNT >/dev/null 2>&1
eend $?
ebegin "Mounting loopback device for kernel modules"