Updating read-only handling to new parameter handling.
authorDaniel Baumann <daniel@debian.org>
Tue, 5 Jun 2012 16:16:05 +0000 (18:16 +0200)
committerDaniel Baumann <daniel@debian.org>
Tue, 5 Jun 2012 17:35:56 +0000 (19:35 +0200)
scripts/boot.sh
scripts/boot/arguments.sh
scripts/boot/read-only.sh

index 2fe563e..d2a5c62 100755 (executable)
@@ -446,9 +446,7 @@ mountroot ()
 
        Arguments
 
-       # make sure all harddisk devices are read-only
-       # this is important for forensic investigations
-       case "${READ_ONLY}" in
+       case "${LIVE_READ_ONLY}" in
                true)
                        Read_only
                        ;;
index f9e8d33..5f34512 100755 (executable)
@@ -7,16 +7,17 @@ Arguments ()
        for ARGUMENT in $(cat /proc/cmdline)
        do
                case "${ARGUMENT}" in
+                       live-boot.read-only|read-only)
+                               LIVE_READ_ONLY="true"
+                               export LIVE_READ_ONLY
+                               ;;
+
                        live-boot.verify-checksums|verify-checksums)
                                LIVE_VERIFY_CHECKSUMS="true"
                                export LIVE_VERIFY_CHECKSUMS
                                ;;
 
                        # parameters below need review
-                       read-only)
-                               READ_ONLY="true"
-                               ;;
-
                        skipconfig)
                                NOFASTBOOT="true"
                                NOFSTAB="true"
index c8990df..48aa06c 100755 (executable)
@@ -4,14 +4,30 @@
 
 Read_only ()
 {
-       # Marking the usual block devices for harddisks read-only
-       for _DEVICE in /dev/sd* /dev/vd*
+       # Marking some block devices as read-only to ensure that nothing
+       # gets written as linux still writes to 'only' read-only mounted filesystems.
+       _DEVICES="/dev/sd* /dev/vd*"
+
+       for _DEVICE in ${_DEVICES}
        do
-               if [ -b "${_DEVICE}" ]
+               if [ -b "${_DEVICE}" ]
                then
-                       printf "Setting device %-9s to read-only mode:" ${_DEVICE} > /dev/console
-
-                       blockdev --setro ${_DEVICE} && printf " done [ execute \"blockdev --setrw %-9s\" to unlock]\n" ${_DEVICE} > /dev/console || printf "failed\n" > /dev/console
+                       continue
                fi
+
+               echo -n "Setting ${_DEVICE} read-only..." > /dev/console
+
+               blockdev --setro ${_DEVICE}
+               _RETURN="${?}"
+
+               case "${_RETURN}" in
+                       0)
+                               echo " done, use 'blockdev --setrw ${_DEVICE}' to set read-write." > /dev/console
+                               ;;
+
+                       *)
+                               echo " failed." > /dev/console
+                               ;;
+               esac
        done
 }