95 lines
4.4 KiB
Diff
95 lines
4.4 KiB
Diff
From f2dc76d4d82ac9bbe5ccb4e8ccc49c14e8574c20 Mon Sep 17 00:00:00 2001
|
|
From: Fedora Ninjas <pjones@fedoraproject.org>
|
|
Date: Wed, 25 Apr 2012 13:09:15 +0200
|
|
Subject: [PATCH 2/2] add support for PowerMac HFS partitions
|
|
|
|
Signed-off-by: Fedora PPC secondary arch maintainer <karsten@fedoraproject.org>
|
|
---
|
|
util/grub-install.in | 67 ++++++++++++++++++++++++++++++++------------------
|
|
1 files changed, 43 insertions(+), 24 deletions(-)
|
|
|
|
diff --git a/util/grub-install.in b/util/grub-install.in
|
|
index 26be9d9..f1f9bae 100644
|
|
--- a/util/grub-install.in
|
|
+++ b/util/grub-install.in
|
|
@@ -757,33 +757,52 @@ elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-ieee1275" ]
|
|
|
|
# If a install device is defined, copy the core.elf to PReP partition.
|
|
else
|
|
- if [ "$("${grub_probe}" -m "${device_map}" -d "${install_device}" -t msdos_parttype)" != "41" ]; then
|
|
- gettext "The chosen partition is not a PReP partition." 1>&2
|
|
- echo 1>&2
|
|
- exit 1
|
|
- fi
|
|
-
|
|
+ if [ "$("${grub_probe}" -m "${device_map}" -d "${install_device}" -t msdos_parttype)" = "41" ]; then
|
|
if [ "$(file -s "${install_device}" -b | awk '{ print $1 }')" = ELF ] || (cmp -s -n $(blockdev --getsize64 ${install_device}) /dev/zero "${install_device}"); then
|
|
- # Change boot device to the harddisk root
|
|
- boot_device="$ofpath"
|
|
- dd if="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" of="${install_device}" status=noxfer || {
|
|
- gettext "Failed to copy Grub to the PReP partition." 1>&2
|
|
- echo 1>&2
|
|
- exit 1
|
|
- }
|
|
+ # Change boot device to the harddisk root
|
|
+ boot_device="$ofpath"
|
|
+ dd if="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" of="${install_device}" status=noxfer || {
|
|
+ gettext "Failed to copy Grub to the PReP partition." 1>&2
|
|
+ echo 1>&2
|
|
+ exit 1
|
|
+ }
|
|
else
|
|
- gettext "The PReP partition is not empty. If you are sure you want to use it, run dd to clear it:" 1>&2
|
|
- echo 1>&2
|
|
- echo " dd if=/dev/zero of=${install_device}"
|
|
- exit 1
|
|
+ gettext "The PReP partition is not empty. If you are sure you want to use it, run dd to clear it:" 1>&2
|
|
+ echo 1>&2
|
|
+ echo " dd if=/dev/zero of=${install_device}"
|
|
+ exit 1
|
|
fi
|
|
- dev="`echo "${install_device}" | sed -e 's/\/dev\///' -e 's/[0-9]\+//'`"
|
|
- boot_device="`$ofpathname "$dev"`" || {
|
|
- # TRANSLATORS: "device tree path" is the name of the device
|
|
- # for IEEE1275
|
|
- gettext_printf "Couldn't find IEEE1275 device tree path for %s.\nYou will have to set \`boot-device' variable manually.\n" "$dev" 1>&2
|
|
- exit 1
|
|
- }
|
|
+ dev="`echo "${install_device}" | sed -e 's/\/dev\///' -e 's/[0-9]\+//'`"
|
|
+ boot_device="`$ofpathname "$dev"`" || {
|
|
+ # TRANSLATORS: "device tree path" is the name of the device
|
|
+ # for IEEE1275
|
|
+ gettext_printf "Couldn't find IEEE1275 device tree path for %s.\nYou will have to set \`boot-device' variable manually.\n" "$dev" 1>&2
|
|
+ exit 1
|
|
+ }
|
|
+ else
|
|
+ hmount ${install_device} >/dev/null 2>&1
|
|
+ if [ $? -eq 0 ]; then
|
|
+ humount "${install_device}"
|
|
+ # Change boot device to the harddisk root
|
|
+ boot_device="$ofpath"
|
|
+ hmount "${install_device}"
|
|
+ hcopy "${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" ":" || {
|
|
+ gettext "Failed to copy Grub to the HFS partition." 1>&2
|
|
+ gettext "Maybe the HFS partition is not empty. If you are sure you want to use it, run hformat to clear it:" 1>&2
|
|
+ echo 1>&2
|
|
+ echo " hformat ${install_device}"
|
|
+ exit 1
|
|
+ }
|
|
+ humount "${install_device}"
|
|
+ # We're on PowerMac, it's either /dev/sdaX or /dev/hdaX:
|
|
+ dev="`echo "${install_device}" | sed -e 's/\/dev\/.da//'`"
|
|
+ boot_device="hd:${dev},core.${imgext}"
|
|
+ else
|
|
+ gettext "The chosen partition is neither a PReP nor a HFS partition." 1>&2
|
|
+ echo 1>&2
|
|
+ exit 1
|
|
+ fi
|
|
+ fi
|
|
fi
|
|
|
|
"$nvsetenv" boot-device "$boot_device" || {
|
|
--
|
|
1.7.6.5
|
|
|