Cleaning up comment to keep only the part that's relevant here.
[live-boot-grml.git] / components / 3020-swap
1 #!/bin/sh
2
3 #set -e
4
5 Swap ()
6 {
7         for _PARAMETER in ${LIVE_BOOT_CMDLINE}
8         do
9                 case "${_PARAMETER}" in
10                         live-boot.swap=*|swap=*)
11                                 LIVE_SWAP="true"
12                                 LIVE_SWAP_DEVICES="${_PARAMETER#*swap=}"
13                                 ;;
14
15                         live-boot.swap|swap)
16                                 LIVE_SWAP="true"
17                                 ;;
18                 esac
19         done
20
21         case "${LIVE_SWAP}" in
22                 true)
23                         ;;
24
25                 *)
26                         return 0
27                         ;;
28         esac
29
30         LIVE_SWAP_DEVICES="${LIVE_SWAP_DEVICES:-/dev/sd* /dev/vd*}"
31
32         for _DEVICE in $(echo ${LIVE_SWAP_DEVICES} | sed -e 's|,| |g')
33         do
34                 if [ ! -b "${_DEVICE}" ]
35                 then
36                         continue
37                 fi
38
39                 blkid -o udev -p ${_DEVICE%%[0-9]*} | grep -q "^ID_FS_USAGE=raid" && continue
40
41                 _MAGIC="$(/bin/dd if=${_DEVICE} bs=4086 skip=1 count=1 2>/dev/null | /bin/dd bs=10 count=1 2>/dev/null)" || continue
42
43                 case "${_MAGIC}" in
44                         SWAPSPACE2|SWAP-SPACE)
45                                 _SWAP_DEVICES="${_SWAP_DEVICES} ${_DEVICE}"
46                                 ;;
47                 esac
48         done
49
50         # Remove all auto swap entries
51         if grep -qs "swap swap" /root/etc/fstab
52         then
53                 grep -v "swap swap" /root/etc/fstab > /root/etc/fstab.tmp
54                 mv /root/etc/fstab.tmp /root/etc/fstab
55         fi
56
57         # Add new swap entries
58         for _DEVICE in ${_SWAP_DEVICES}
59         do
60                 echo "${_DEVICE} swap swap defaults 0 0" >> /root/etc/fstab
61         done
62 }