Adding upstream version 3.0~a36.
[live-boot-grml.git] / scripts / boot / 3020-swapon
1 #!/bin/sh
2
3 #set -e
4
5 Swapon ()
6 {
7         if [ "${LIVE_SWAPON}" != "true" ]
8         then
9                 return 0
10         fi
11
12         LIVE_SWAPON_DEVICES="${LIVE_SWAPON_DEVICES:-/dev/sd* /dev/vd*}"
13
14         if [ -e /run ]
15         then
16                 # wheezy
17                 _FSTAB="/root/etc/fstab.d/swap"
18         else
19                 # squeeze
20                 _FSTAB="/root/etc/fstab"
21         fi
22
23         for _DEVICE in $(echo ${LIVE_SWAPON_DEVICES} | sed -e 's|,| |g')
24         do
25                 if [ ! -b "${_DEVICE}" ]
26                 then
27                         continue
28                 fi
29
30                 blkid -o udev -p ${_DEVICE%%[0-9]*} | grep -q "^ID_FS_USAGE=raid" && continue
31
32                 _MAGIC="$(/bin/dd if=${_DEVICE} bs=4086 skip=1 count=1 2>/dev/null | /bin/dd bs=10 count=1 2>/dev/null)" || continue
33
34                 case "${_MAGIC}" in
35                         SWAPSPACE2|SWAP-SPACE)
36                                 _SWAP_DEVICES="${_SWAP_DEVICES} ${_DEVICE}"
37                                 ;;
38                 esac
39         done
40
41         # Remove all auto swap entries
42         if grep -qs "swap swap" "${_FSTAB}"
43         then
44                 grep -v "swap swap" "${_FSTAB}" > "${_FSTAB}".tmp
45                 mv "${_FSTAB}".tmp "${_FSTAB}"
46         fi
47
48         # Add new swap entries
49         for _DEVICE in ${_SWAP_DEVICES}
50         do
51                 echo "${_DEVICE} swap swap defaults 0 0" >> "${_FSTAB}"
52         done
53 }