diff --git a/initramfs-init b/initramfs-init
index b2375fece3b332688888b4b0ab269ee5c881c330..79016ee3c5f4fffe2193da98bd890687d422333e 100755
--- a/initramfs-init
+++ b/initramfs-init
@@ -74,6 +74,10 @@ for i in `cat /proc/cmdline` ; do
 done
 
 ALPINE_DEV=${KOPT_alpine_dev%%:*}
+ALPINE_DEV_FS=${KOPT_alpine_dev##*:}
+if [ "$ALPINE_DEV_FS" = "$ALPINE_DEV" ]; then
+	unset ALPINE_DEV_FS
+fi
 ALPINE_MNT=/media/$ALPINE_DEV
 
 # hide kernel messages
@@ -109,7 +113,11 @@ eend 0
 
 # locate boot media and mount it
 ebegin "Mounting boot media"
-mount $ALPINE_MNT >/dev/null 2>&1
+mkdir -p $ALPINE_MNT
+if [ -n "$ALPINE_DEV_FS" ]; then
+	mount_opts="-t $ALPINE_DEV_FS"
+fi
+mount $mount_opts /dev/$ALPINE_DEV $ALPINE_MNT >/dev/null 2>&1
 eend $?
 ebegin "Mounting loopback device for kernel modules"
 modprobe loop