ubuntu-22.04.3-desktop-amd64/casper/filesystem/usr/lib/partman/update.d/21biosgrub_sync_flag

52 lines
880 B
Bash
Executable File

#! /bin/sh
# Remove the bios_grub flag for partitions whose method is not biosgrub, and
# set it for partitions whose method is biosgrub.
. /lib/partman/lib/base.sh
dev=$1
num=$2
id=$3
size=$4
type=$5
fs=$6
path=$7
name=$8
cd $dev
if [ "$fs" = free ]; then
exit 0
fi
method=
if [ -f "$id/method" ]; then
method="$(cat "$id/method")"
fi
has_biosgrub=no
flags=''
open_dialog GET_FLAGS "$id"
while { read_line flag; [ "$flag" ]; }; do
if [ "$flag" != bios_grub ]; then
flags="${flags:+$flags$NL}$flag"
else
has_biosgrub=yes
fi
done
close_dialog
if [ "$method" = biosgrub ] && [ "$has_biosgrub" = no ]; then
open_dialog SET_FLAGS "$id"
write_line "$flags"
write_line bios_grub
write_line NO_MORE
close_dialog
elif [ "$method" != biosgrub ] && [ "$has_biosgrub" = yes ]; then
open_dialog SET_FLAGS "$id"
write_line "$flags"
write_line NO_MORE
close_dialog
fi