mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-10 07:04:03 +00:00
sysutils/grub2: Resolve install sysutils/grub2 on UFS problem
PR: 185741 Submitted by: onborodin (gmail)
This commit is contained in:
parent
c527807b5e
commit
6a68eb1b2d
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=363000
72
sysutils/grub2/files/patch-util_grub-install.in
Normal file
72
sysutils/grub2/files/patch-util_grub-install.in
Normal file
@ -0,0 +1,72 @@
|
||||
--- util/grub-install.in.orig 2012-06-26 21:31:03.000000000 +0000
|
||||
+++ util/grub-install.in
|
||||
@@ -107,6 +107,8 @@ usage () {
|
||||
print_option_help "--recheck" "$(gettext "delete device map if it already exists")"
|
||||
print_option_help "--force" "$(gettext "install even if problems are detected")"
|
||||
print_option_help "--force-file-id" "$(gettext "use identifier file even if UUID is available")"
|
||||
+ print_option_help "--force-label" "$(gettext "use filesystem label even if UUID is available")"
|
||||
+
|
||||
print_option_help "--disk-module=$(gettext "MODULE")" "$(gettext "disk module to use (biosdisk or native). This option is only available on BIOS target.")"
|
||||
print_option_help "--no-nvram" "$(gettext "don't update the \`boot-device' NVRAM variable. This option is only available on IEEE1275 targets.")"
|
||||
print_option_help "--removable" "$(gettext "the installation device is removable. This option is only available on EFI.")"
|
||||
@@ -159,6 +161,9 @@ do
|
||||
--force-file-id)
|
||||
force_file_id=y ;;
|
||||
|
||||
+ --force-label)
|
||||
+ force_fs_label=y ;;
|
||||
+
|
||||
# Accept and ignore for compatibility
|
||||
--font)
|
||||
shift;;
|
||||
@@ -585,7 +590,7 @@ fi
|
||||
partmap_module=
|
||||
for x in `echo "${grub_device}" | xargs "$grub_probe" --device-map="${device_map}" --target=partmap --device 2> /dev/null`; do
|
||||
case "$x" in
|
||||
- netbsd | openbsd)
|
||||
+ netbsd | openbsd | freebsd )
|
||||
partmap_module="$partmap_module part_bsd";;
|
||||
"") ;;
|
||||
*)
|
||||
@@ -593,6 +598,11 @@ for x in `echo "${grub_device}" | xargs
|
||||
esac
|
||||
done
|
||||
|
||||
+case `uname -o` in
|
||||
+ FreeBSD)
|
||||
+ partmap_module="$partmap_module part_msdos part_bsd";;
|
||||
+esac
|
||||
+
|
||||
# Device abstraction module, if any (lvm, raid).
|
||||
devabstraction_module="`echo "${grub_device}" | xargs "$grub_probe" --device-map="${device_map}" --target=abstraction --device`"
|
||||
|
||||
@@ -668,16 +678,28 @@ if [ "x${devabstraction_module}" = "x" ]
|
||||
echo 1>&2
|
||||
hints=
|
||||
fi
|
||||
+
|
||||
+ if [ x"$force_fs_label" = xy ]; then
|
||||
+ fs_label="`echo "${grub_device}" | xargs "$grub_probe" --device-map="${device_map}" --target=fs_label --device`"
|
||||
+ fi
|
||||
+
|
||||
+ if [ x"$fs_label" != x ]; then
|
||||
+ echo "search.fs_label ${fs_label} root $hints " >> "${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/load.cfg"
|
||||
+ search_module=search_label
|
||||
+ else
|
||||
+
|
||||
if [ x"$uuid" != x ]; then
|
||||
echo "search.fs_uuid ${uuid} root $hints " >> "${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/load.cfg"
|
||||
search_module=search_fs_uuid
|
||||
else
|
||||
mkdir -p "${grubdir}/uuid"
|
||||
- file="`mktemp "${grubdir}/uuid/XXXXXXXXXXXXXXXXXXXXXXXXX"`"
|
||||
+ file="`mktemp "${grubdir}/uuid/XXXX-XXXX-XXXX"`"
|
||||
relfile="`${grub_mkrelpath} "$file"`"
|
||||
echo "search.file '${relfile}' root $hints " >> "${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/load.cfg"
|
||||
search_module=search_fs_file
|
||||
fi
|
||||
+ fi
|
||||
+
|
||||
echo 'set prefix=($root)'"$(echo "${relative_grubdir}" | sed "s,\\([ \"'\\\\]\\),\\\\\\1,g")" >> "${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/load.cfg"
|
||||
config_opt_file="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/load.cfg"
|
||||
modules="$modules $search_module"
|
Loading…
Reference in New Issue
Block a user