File: format_swap

package info (click to toggle)
partman-basicfilesystems 127
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,532 kB
  • ctags: 10
  • sloc: sh: 1,149; makefile: 2
file content (69 lines) | stat: -rwxr-xr-x 1,782 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/sh

ARCH="$(archdetect)"

# The mkswap utility only supports Linux-type swap partitions, used
# on Linux and Hurd;  do not use it on kfreebsd which does need to
# format swap partitions
case $ARCH in
    kfreebsd-*)
        exit 0
        ;;
    *)
        ;;
esac

. /lib/partman/lib/base.sh

for dev in $DEVICES/*; do
	[ -d "$dev" ] || continue
	cd $dev
	partitions=
	open_dialog PARTITIONS
	while { read_line num id size type fs path name; [ "$id" ]; }; do
		[ "$fs" != free ] || continue
		partitions="$partitions $id,$num"
	done
	close_dialog

	for part in $partitions; do
		id=${part%,*}
		num=${part#*,}
		[ -f $id/method -a -f $id/format ] || continue
		method=$(cat $id/method)
		if [ "$method" = swap ]; then
			if [ -f $id/formatted ] && \
			   [ $id/formatted -nt $id/method ]; then
				continue
			fi
			log "Try to format swap space in $dev/$id"
			template=partman-basicfilesystems/progress_swap_formatting
			open_dialog PARTITION_INFO $id
			read_line x1 x2 x3 x4 x5 device x6
			close_dialog
			db_subst $template PARTITION "$num"
			db_subst $template DEVICE $(humandev $(cat device))
			db_progress START 0 3 partman/text/formatting
			db_progress INFO $template
			db_progress SET 1
			if log-output -t partman --pass-stdout \
			   mkswap $device >/dev/null; then
				sync
				status=OK
			else
				status=failed
			fi
			db_progress STOP

			if [ "$status" != OK ]; then
				db_subst partman-basicfilesystems/create_swap_failed TYPE linux-swap
				db_subst partman-basicfilesystems/create_swap_failed PARTITION "$num"
				db_subst partman-basicfilesystems/create_swap_failed DEVICE $(humandev $(cat device))
				db_input critical partman-basicfilesystems/create_swap_failed || true
				db_go || true
				exit 1
			fi
			>$id/formatted
		fi
	done
done