home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- . /lib/partman/lib/base.sh
-
- enable_swap
-
- 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 \
- -a -f $id/acting_filesystem ] || continue
- filesystem=$(cat $id/acting_filesystem)
- case $filesystem in
- ext3|ext4)
- if [ -f $id/formatted ] && \
- [ $id/formatted -nt $id/method ] && \
- ([ ! -f $id/filesystem ] || \
- [ $id/formatted -nt $id/filesystem ]); then
- continue
- fi
- log "Try to create file system for $dev/$id"
- if [ -f $id/mountpoint ]; then
- template=partman-basicfilesystems/progress_formatting_mountable
- db_subst $template MOUNT_POINT "$(cat $id/mountpoint)"
- else
- template=partman-basicfilesystems/progress_formatting
- fi
- open_dialog PARTITION_INFO $id
- read_line x1 x2 x3 x4 x5 device x6
- close_dialog
-
- RET=''
- db_metaget partman/filesystem_short/$filesystem description || RET=''
- [ "$RET" ] || RET=$filesystem
- db_subst $template TYPE "$RET"
- db_subst $template PARTITION "$num"
- db_subst $template DEVICE $(humandev $(cat device))
-
- status=failed
-
- # Commented out for now. As libparted can't create resizable
- # file systems and ext2prepare is too buggy to use for etch,
- # we will always use mkfs.ext3 directly in etch, although
- # that doesn't give us a progress bar.
- # This will also give us dir_index by default.
- #if [ -x /sbin/tune2fs ] && ! [ -f $id/usage ]; then
- # name_progress_bar $template
- # open_dialog CREATE_FILE_SYSTEM $id ext2
- # read_line status
- # close_dialog
- # sync
- # if [ "$status" = OK ]; then
- # log-output -t partman --pass-stdout \
- # /sbin/tune2fs -j $device >/dev/null || status=failed
- # sync
- # fi
- #fi
-
- if [ "$status" != OK ]; then
- db_progress START 0 3 partman/text/formatting
- db_progress INFO $template
- db_progress SET 1
- if [ -f $id/usage ]; then
- usage="-T $(cat $id/usage)"
- else
- usage=''
- fi
- # According to Szabolcs Szakacsits, the NTFS-3g
- # author, it is safer to format the loop file,
- # rather than the device.
- if [ -s loop ]; then
- device="$(cat loop)"
- force=-F
- fi
- if log-output -t partman --pass-stdout \
- mkfs.$filesystem $force "$device" $usage >/dev/null; then
- sync
- status=OK
- else
- status=failed
- fi
- db_progress STOP
- fi
- if [ "$status" = OK ]; then
- label=''
- if [ -f $id/label ]; then
- label=$(cat $id/label | \
- sed 's/\(................\).*/\1/g')
- fi
- if [ "$label" ]; then
- log-output -t partman --pass-stdout \
- tune2fs -L "$label" $device >/dev/null
- fi
- if [ -f $id/reserved_for_root ]; then
- log-output -t partman --pass-stdout \
- tune2fs -m $(cat $id/reserved_for_root) $device >/dev/null
- fi
- fi
- if [ "$status" != OK ]; then
- RET=''
- db_metaget partman/filesystem_short/"$filesystem" description || RET=''
- [ "$RET" ] || RET="$filesystem"
- db_subst partman-ext3/create_failed TYPE "$RET"
- db_subst partman-ext3/create_failed PARTITION "$num"
- db_subst partman-ext3/create_failed DEVICE $(humandev $(cat device))
- db_input critical partman-ext3/create_failed || true
- db_go || true
- #disable_swap
- exit 1
- fi
- >$id/formatted
- ;;
- esac
- done
- done
-
- #disable_swap
-