~ubuntu-branches/ubuntu/hardy/partman-basicfilesystems/hardy-updates

« back to all changes in this revision

Viewing changes to finish.d/check_basicfilesystems

  • Committer: Bazaar Package Importer
  • Author(s): Colin Watson
  • Date: 2004-10-06 02:44:52 UTC
  • Revision ID: james.westby@ubuntu.com-20041006024452-dqyxcwf0tarnj0qr
Tags: 26ubuntu1
Set pass field to 0 for FAT filesystems, to prevent filesystem checks
that sometimes behave strangely (closes: Ubuntu #1912).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
 
 
3
. /lib/partman/definitions.sh
 
4
 
 
5
for dev in $DEVICES/*; do
 
6
    [ -d "$dev" ] || continue
 
7
    cd $dev
 
8
    partitions=
 
9
    open_dialog PARTITIONS
 
10
    while { read_line num id size type fs path name; [ "$id" ]; }; do
 
11
        [ "$fs" != free ] || continue
 
12
        partitions="$partitions $id,$num"
 
13
    done
 
14
    close_dialog
 
15
    
 
16
    for part in $partitions; do
 
17
        id=${part%,*}
 
18
        num=${part#*,}
 
19
        [ -f $id/method -a ! -f $id/format \
 
20
            -a -f $id/acting_filesystem ] || continue
 
21
        filesystem=$(cat $id/acting_filesystem)
 
22
        case $filesystem in
 
23
            ext2|fat16|fat32)
 
24
                log "Check the file system in $dev/$id"
 
25
                template=partman-basicfilesystems/progress_checking
 
26
                RET=''
 
27
                db_metaget  partman/filesystem_short/"$filesystem" description || RET=''
 
28
                [ "$RET" ] || RET="$filesystem"
 
29
                db_subst $template TYPE "$RET"
 
30
                db_subst $template PARTITION "$num"
 
31
                db_subst $template DEVICE $(humandev $(cat device))
 
32
                name_progress_bar $template
 
33
                open_dialog CHECK_FILE_SYSTEM $id
 
34
                read_line status
 
35
                close_dialog
 
36
                if [ "$status" != good ]; then
 
37
                    db_fset partman-basicfilesystems/check_failed seen false
 
38
                    db_subst partman-basicfilesystems/check_failed TYPE "$filesystem"
 
39
                    db_subst partman-basicfilesystems/check_failed PARTITION "$num"
 
40
                    db_subst partman-basicfilesystems/check_failed DEVICE $(humandev $(cat device))
 
41
                    db_set partman-basicfilesystems/check_failed 'true'
 
42
                    db_input critical partman-basicfilesystems/check_failed || true
 
43
                    db_go || true
 
44
                    db_get partman-basicfilesystems/check_failed
 
45
                    if [ "$RET" = 'true' ]; then
 
46
                        exit 1
 
47
                    fi
 
48
                fi
 
49
                ;;
 
50
        esac
 
51
    done
 
52
done