From 36387e28eb6cf1f1b2542ff5bbc4d185995c8076 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Thu, 22 Nov 2007 12:05:21 +0000 Subject: initrdscripts: Introduce boot order support for universal initramfs modules. --- packages/initrdscripts/files/80-loopboot.sh | 54 +++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 packages/initrdscripts/files/80-loopboot.sh (limited to 'packages/initrdscripts/files/80-loopboot.sh') diff --git a/packages/initrdscripts/files/80-loopboot.sh b/packages/initrdscripts/files/80-loopboot.sh new file mode 100644 index 0000000000..55a1948db8 --- /dev/null +++ b/packages/initrdscripts/files/80-loopboot.sh @@ -0,0 +1,54 @@ +#!/bin/sh + +if [ "$ROOT_DEVICE" = "/dev/loop" ]; then + loop_mount() { + loopdev=/dev/loop$loop_num + mountpt=/mnt/loop$loop_num + + [ -e $loopdev ] || mknod $loopdev b 7 $loop_num + + # if only one argument was specified, let it be path not dev + if [ -z "$path" ] && [ -n "$dev" ]; then + path="$dev" + dev="" + fi + [ -z "$offset" ] && offset=0 + + if [ -n "$dev" ]; then + hostpt=`expr "$dev" : '.*/\([^/]*\)'` + [ -z "$hostpt" ] && hostpt="$dev" + + echo "Mounting $dev on $hostpt" + mkdir $hostpt + mount $dev $hostpt + cd $hostpt + fi + + echo "Loopback setup of $path (offset $offset)" + losetup -o "$offset" "$loopdev" "$path" + + echo "Mounting $loopdev on $mountpt" + mkdir "$mountpt" + mount "$loopdev" "$mountpt" + cd "$mountpt" + BOOT_ROOT="$mountpt" + loop_num=`expr "$loop_num" + 1` + } + + modprobe vfat + modprobe loop + + loop_num=0 + + for arg in $CMDLINE; do + optarg=`expr "x$arg" : 'x[^=]*=\(.*\)'` + echo $arg xxx $optarg + case $arg in + looproot=*) + dev=`expr "$optarg" : '\([^:]*\).*'` + path=`expr "$optarg" : '[^:]*:\([^:]*\).*'` + offset=`expr "$optarg" : '[^:]*:[^:]*:\([^:]*\).*'` + loop_mount ;; + esac + done +fi -- cgit v1.2.3 From d0e74671ac72a53a9864e35e16c2d27ed91874bf Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Thu, 22 Nov 2007 12:16:41 +0000 Subject: initrdscripts: Separate fs kernel module loading to separate plugin. --- packages/initrdscripts/files/80-loopboot.sh | 1 - 1 file changed, 1 deletion(-) (limited to 'packages/initrdscripts/files/80-loopboot.sh') diff --git a/packages/initrdscripts/files/80-loopboot.sh b/packages/initrdscripts/files/80-loopboot.sh index 55a1948db8..7fbf69a202 100644 --- a/packages/initrdscripts/files/80-loopboot.sh +++ b/packages/initrdscripts/files/80-loopboot.sh @@ -35,7 +35,6 @@ if [ "$ROOT_DEVICE" = "/dev/loop" ]; then loop_num=`expr "$loop_num" + 1` } - modprobe vfat modprobe loop loop_num=0 -- cgit v1.2.3 From cb561eb11cc765d2314c30bb861c9187315d9efc Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Thu, 22 Nov 2007 17:29:37 +0000 Subject: initramfs-module-loopboot: Allow to use absolute path for loop file location. --- packages/initrdscripts/files/80-loopboot.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'packages/initrdscripts/files/80-loopboot.sh') diff --git a/packages/initrdscripts/files/80-loopboot.sh b/packages/initrdscripts/files/80-loopboot.sh index 7fbf69a202..d84244428e 100644 --- a/packages/initrdscripts/files/80-loopboot.sh +++ b/packages/initrdscripts/files/80-loopboot.sh @@ -21,11 +21,10 @@ if [ "$ROOT_DEVICE" = "/dev/loop" ]; then echo "Mounting $dev on $hostpt" mkdir $hostpt mount $dev $hostpt - cd $hostpt fi echo "Loopback setup of $path (offset $offset)" - losetup -o "$offset" "$loopdev" "$path" + losetup -o "$offset" "$loopdev" "$hostpt/$path" echo "Mounting $loopdev on $mountpt" mkdir "$mountpt" -- cgit v1.2.3