Merging casper 1.199.
[live-boot-grml.git] / scripts / live-bottom / 43disable_updateinitramfs
index 095bf74..6ceeacf 100755 (executable)
@@ -1,36 +1,59 @@
 #!/bin/sh
-# Fix for LP#150188
 
-PREREQ=""
-DESCRIPTION="Disabling update-initramfs (useless on a live CD)..."
+#set -e
+
+# initramfs-tools header
 
-. /scripts/casper-functions
+PREREQ=""
 
 prereqs()
 {
-       echo "$PREREQ"
+       echo "${PREREQ}"
 }
 
-case $1 in
-# get pre-requisites
-prereqs)
-       prereqs
-       exit 0
-       ;;
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
 esac
 
-log_begin_msg "$DESCRIPTION"
+# live-initramfs header
+
+. /scripts/live-functions
+
+log_begin_msg "Possibly disabling update-initramfs (useless on a live CD)..."
+
+# live-initramfs script
 
 chroot /root dpkg-divert --add --rename --quiet \
-        /usr/sbin/update-initramfs
-cat > /root/usr/sbin/update-initramfs <<EOF
-#! /bin/sh
+       /usr/sbin/update-initramfs
 
-echo "update-initramfs is disabled since running on a live CD"
+# Running off a USB disk or other writable media.
+if [ -w /root/cdrom ] && \
+   ! grep -q '^[^ ]* /root/cdrom [^ ]* [^ ]*\<ro\>' /proc/mounts
+then
+
+cat > /root/usr/sbin/update-initramfs << 'EOF'
+#!/bin/sh
+
+update-initramfs.distrib "$@"
+cp /initrd.img /cdrom/live/initrd.gz
+cp /vmlinuz /cdrom/live/vmlinuz
 exit 0
+EOF
 
+else
+
+cat > /root/usr/sbin/update-initramfs << EOF
+#!/bin/sh
+
+echo "update-initramfs is disabled since running on read-only media"
+exit 0
 EOF
 
-chmod 755 /root/usr/sbin/update-initramfs
+fi
+
+chmod 0755 /root/usr/sbin/update-initramfs
 
 log_end_msg