fstab="/etc/fstab"
usage () {
- echo "usage: `basename $0` [--version] [-v] [-f] [--ifneeded] [--preload <module>]" >&2
- echo " [--omit-scsi-modules] [--omit-raid-modules] [--omit-ide-modules]" >&2
- echo " [--with=<module>] [--image-version] [--fstab=<fstab>] [--nocompress]" >&2
- echo " [--fs=rom|ext2|cram] [--no-bsp]" >&2
- echo " <initrd-image> <kernel-version>" >&2
- echo " (ex: `basename $0` /boot/initrd-2.2.5-15.img 2.2.5-15)" >&2
- exit 1
+ echo "usage: `basename $0` [--version] [-v] [-f] [--ifneeded] [--preload <module>]" >&2
+ echo " [--omit-scsi-modules] [--omit-raid-modules] [--omit-ide-modules]" >&2
+ echo " [--with=<module>] [--image-version] [--fstab=<fstab>] [--nocompress]" >&2
+ echo " [--fs=rom|ext2|cram] [--no-bsp]" >&2
+ echo " <initrd-image> <kernel-version>" >&2
+ echo " (ex: `basename $0` /boot/initrd-2.2.5-15.img 2.2.5-15)" >&2
+ exit 1
}
# anyway no bsp
USEBSP="no"
else # Check for other filesystems
- rootFs="`awk '{if ($2 == "/") {print $3}}' $fstab`"
- findmodule "-$rootFs"
+ rootFs="`awk '{if ($2 == "/") {print $3}}' $fstab`"
+ findmodule "-$rootFs"
fi
for n in $BASICMODULES; do
- findmodule "$n"
+ findmodule "$n"
done
if [ -n "$ifneeded" -a -z "$MODULES" ]; then
- if [ -n "$verbose" ]; then
- echo "No modules are needed -- not building initrd image."
- fi
- exit 0
+ if [ -n "$verbose" ]; then
+ echo "No modules are needed -- not building initrd image."
+ fi
+ exit 0
fi
if [ -n "$verbose" ]; then
- echo "Using modules: $MODULES"
+ echo "Using modules: $MODULES"
fi
MNTIMAGE="`mktemp -d /tmp/initrd.XXXXXX`"
RCFILE="$MNTIMAGE/linuxrc"
if [ -f "$MNTIMAGE" ]; then
- echo "$MNTIMAGE already exists. Remove it and try again" >&2
- exit 1
+ echo "$MNTIMAGE already exists. Remove it and try again" >&2
+ exit 1
fi
if [ -f "$IMAGE" ]; then
- echo "$IMAGE already exists. Remove it and try again" >&2
- exit 1
+ echo "$IMAGE already exists. Remove it and try again" >&2
+ exit 1
fi
if [ "$FS" = "ext2" ] ; then
rm -rf "$MNTPOINT"/lost+found
for MODULE in $MODULES; do
- cp $verbose -a "/lib/modules/$kernel/$MODULE" "$MNTIMAGE/lib"
+ cp $verbose -a "/lib/modules/$kernel/$MODULE" "$MNTIMAGE/lib"
done
# mknod'ing the devices instead of copying them works both with and
echo "insmod $module.o $options" >> "$s"
done
else
- inst /bin/trash "$MNTIMAGE/bin/sh"
- inst /sbin/insmod.static "$MNTIMAGE/bin/insmod"
-
- mknod "$MNTIMAGE/dev/null" c 1 3
- mknod "$MNTIMAGE/dev/ram" b 1 1
- mknod "$MNTIMAGE/dev/systty" c 4 0
- for i in 1 2 3 4; do
- mknod "$MNTIMAGE/dev/tty$i" c 4 1
- done
- mknod "$MNTIMAGE/dev/zero" c 1 5
+ inst /bin/trash "$MNTIMAGE/bin/sh"
+ inst /sbin/insmod.static "$MNTIMAGE/bin/insmod"
- echo "#!/bin/sh" > "$RCFILE"
- echo "" >> "$RCFILE"
-
- for MODULE in $MODULES; do
- module="`echo $MODULE | awk -F/ '{ $0=$NF } /.o$/ { $0=substr($0,1,length($0)-2); } { print $0; }'`"
- options="`awk '{ if($1 == "options" && $2 == "'${module}'") { for(i=3;i<=NF;i++) printf("%s ",$i); }}' "$modulefile"`"
+ mknod "$MNTIMAGE/dev/null" c 1 3
+ mknod "$MNTIMAGE/dev/ram" b 1 1
+ mknod "$MNTIMAGE/dev/systty" c 4 0
+ for i in 1 2 3 4; do
+ mknod "$MNTIMAGE/dev/tty$i" c 4 1
+ done
+ mknod "$MNTIMAGE/dev/zero" c 1 5
- if [ -n "$verbose" ]; then
- echo "Loading module $module with options $options"
- fi
- echo "echo \"Loading $module module\"" >> "$RCFILE"
- echo "insmod -k /lib/$module.o $options" >> "$RCFILE"
- done
+ echo "#!/bin/sh" > "$RCFILE"
+ echo "" >> "$RCFILE"
- if [ -n "$loopDev" ]; then
- if [ ! -d /initrd ]; then
- mkdir /initrd
- fi
+ for MODULE in $MODULES; do
+ module="`echo $MODULE | awk -F/ '{ $0=$NF } /.o$/ { $0=substr($0,1,length($0)-2); } { print $0; }'`"
+ options="`awk '{ if($1 == "options" && $2 == "'${module}'") { for(i=3;i<=NF;i++) printf("%s ",$i); }}' "$modulefile"`"
+
+ if [ -n "$verbose" ]; then
+ echo "Loading module $module with options $options"
+ fi
+ echo "echo \"Loading $module module\"" >> "$RCFILE"
+ echo "insmod -k /lib/$module.o $options" >> "$RCFILE"
+ done
+
+ if [ -n "$loopDev" ]; then
+ if [ ! -d /initrd ]; then
+ mkdir /initrd
+ fi
- cp -a "$loopDev" "$MNTIMAGE/dev"
- cp -a "$rootdev" "$MNTIMAGE/dev"
- echo "echo Mounting device containing loopback root filesystem" >> "$RCFILE"
- echo "mount -t $loopFs $loopDev /loopfs" >> "$RCFILE"
- echo "echo Setting up loopback device $rootdev" >> $RCFILE
- echo "losetup $rootdev /loopfs$loopFile" >> "$RCFILE"
- fi
+ cp -a "$loopDev" "$MNTIMAGE/dev"
+ cp -a "$rootdev" "$MNTIMAGE/dev"
+ echo "echo Mounting device containing loopback root filesystem" >> "$RCFILE"
+ echo "mount -t $loopFs $loopDev /loopfs" >> "$RCFILE"
+ echo "echo Setting up loopback device $rootdev" >> $RCFILE
+ echo "losetup $rootdev /loopfs$loopFile" >> "$RCFILE"
+ fi
fi
chmod +x "$RCFILE"
esac
if is_yes "$COMPRESS" ; then
- gzip -9 < "$IMAGE" > "$target"
+ gzip -9 < "$IMAGE" > "$target"
else
- cp -a "$IMAGE" "$target"
+ cp -a "$IMAGE" "$target"
fi
rm -rf "$MNTIMAGE" "$MNTPOINT" "$IMAGE"