299c6611809f82178a1e115283040e9cd34baa6e
[grml-udev-config.git] / scripts / forensic-mark-readonly
1 #!/bin/sh
2 # Filename:      forensic-mark-readonly
3 # Purpose:       force device to readonly mode when booting with bootoption forensic/readonly
4 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
5 # Bug-Reports:   see http://grml.org/bugs/
6 # License:       This file is licensed under the GPL v2 or any later version.
7 ################################################################################
8
9 # check for forensic/readonly bootoption
10 if grep -qe forensic -qe readonly /proc/cmdline ; then
11  # we get $DEVNAME via udev's environment
12  if [ -n "$DEVNAME" ] ; then
13    if [ "$(blockdev --getro $DEVNAME)" = "1" ] ; then
14      logger "forensic mode: device $DEVNAME already set to readonly mode, nothing to do"
15    else
16      logger "forensic mode: setting $DEVNAME [$ID_SERIAL] to readonly"
17      if blockdev --setro "$DEVNAME" ; then
18        logger "|-> done; execute 'blockdev --setrw $DEVNAME' to unlock"
19      else
20        logger "|-> error while executing blockdev: $(blockdev --setro $DEVNAME 2>&1)"
21      fi
22    fi
23  fi
24 fi
25
26 ## END OF FILE #################################################################