home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- . /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
- rm -f $id/old_uuid
- if [ -f $id/detected_filesystem ]; then
- old_fs=$(cat $id/detected_filesystem)
- if [ "$old_fs" = linux-swap ]; then
- # Save the old UUID so that we can restore it later.
- dd if=$device of=$id/old_uuid bs=1 skip=1036 count=16 2>/dev/null || true
- fi
- fi
- db_subst $template PARTITION "$num"
- db_subst $template DEVICE $(humandev $(cat device))
- name_progress_bar $template
- open_dialog CREATE_FILE_SYSTEM $id linux-swap
- read_line status
- close_dialog
- sync
- if [ "$status" != OK ]; then
- db_progress START 0 3 partman/text/formatting
- db_progress INFO $template
- db_progress SET 1
- # According to Szabolcs Szakacsits, the NTFS-3g author, it is
- # safer to format the loop file, rather than the device.
- [ ! -s loop ] || device="$(cat loop)"
- if log-output -t partman --pass-stdout \
- mkswap $device >/dev/null; then
- sync
- status=OK
- else
- status=failed
- fi
- db_progress STOP
- fi
-
- 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
- if [ -s "$id/old_uuid" ]; then
- # Restore the old UUID so that systems using UUIDs in
- # /etc/fstab don't unexpectedly end up without swap.
- dd if=$id/old_uuid of=$device bs=1 seek=1036 count=16 conv=notrunc 2>/dev/null || true
- fi
- rm -f $id/old_uuid
- >$id/formatted
- fi
- done
- done
-