49 lines
1.2 KiB
Bash
Executable File
49 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
. /lib/partman/lib/base.sh
|
|
|
|
bad=
|
|
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,$path"
|
|
done
|
|
close_dialog
|
|
|
|
for part in $partitions; do
|
|
id="${part%,*}"
|
|
path="${part#*,}"
|
|
[ -f "$id/method" ] || continue
|
|
[ -f "$id/format" ] || continue
|
|
[ -f "$id/acting_filesystem" ] || continue
|
|
[ -f "$id/mountpoint" ] || continue
|
|
filesystem="$(cat "$id/acting_filesystem")"
|
|
mountpoint="$(cat "$id/mountpoint")"
|
|
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
|
|
open_dialog ALIGNMENT_OFFSET $id
|
|
read_line offset
|
|
close_dialog
|
|
if [ "$offset" != 0 ]; then
|
|
db_subst partman-ext3/bad_alignment PARTITION "$path"
|
|
db_subst partman-ext3/bad_alignment MOUNTPOINT "$mountpoint"
|
|
db_subst partman-ext3/bad_alignment OFFSET "$offset"
|
|
db_input critical partman-ext3/bad_alignment || true
|
|
db_go || true
|
|
exit 1
|
|
fi
|
|
;;
|
|
esac
|
|
done
|
|
done
|