#!/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 options='' db_get partman-ext3/lazy_itable_init if [ "$RET" = true ]; then options='-E lazy_itable_init' fi if log-output -t partman --pass-stdout \ mkfs.$filesystem $options $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