modules_install "$MODULES"
mkdir -p $MNTIMAGE/sys
mkdir -p $MNTIMAGE/proc
- echo "mount -t proc none /proc" >> "$s"
- echo "cmdline=\`cat /proc/cmdline\`" >> "$s"
- echo "if [ \"\$cmdline\" != \"\${cmdline#* resume2=}\" ]; then" >> "$s"
+cat << EOF >> "$s"
+mount -t proc none /proc
+if [ "\$(awk ' /resume2=/ { print "yes"; } ' /proc/cmdline)" = "yes" ]; then
+EOF
modules_add_linuxrc "$MODULES" "$s"
- echo " echo > /proc/software_suspend/activate" >> "$s"
- echo " umount /proc" >> "$s"
- echo " exit 0" >> "$s"
- echo "fi" >> "$s"
- echo "umount /proc" >> "$s"
+cat << EOF >> "$s"
+ echo > /proc/software_suspend/activate
+fi
+umount /proc
+EOF
}
initrd_gen_softraid() {
fi
}
+initrd_gen_procdata() {
+ [ -n "$verbose" ] && echo "Adding rootfs finding based on root= option support."
+ mkdir -p $MNTIMAGE/proc
+cat << EOF >> "$s"
+set +x
+mount -t proc none /proc
+root="\$(busybox awk ' /root=\/dev\// { gsub(/.*root=\/dev\//,NIL,\$0); gsub(/ .*/,NIL,\$0); print \$0; } ' /proc/cmdline)"
+if [ -n "\$root" ]; then
+ rootnr="\$(busybox awk -v root="\$root" ' { if (\$4 == root) { print 256*\$1+\$2; } } ' /proc/partitions)"
+ if [ -n "\$rootnr" ]; then
+ echo "\$rootnr" > /proc/sys/kernel/real-root-dev
+ fi
+fi
+echo "umount /proc"
+set -x
+EOF
+}
+
# main generation
if is_yes "$USESUSPEND"; then
initrd_gen_suspend
fi
elif is_yes "$uselvm" ; then
initrd_gen_lvm
+else
+ initrd_gen_procdata
fi
chmod +x "$RCFILE"