fix some portability problems (by pavel).
This commit is contained in:
parent
92fca67cf5
commit
98ca2ba846
4 changed files with 61 additions and 29 deletions
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
||||||
|
2000-04-18 Pavel Roskin <pavel_roskin@geocities.com>
|
||||||
|
|
||||||
|
* util/grub-install.in: Don't use `!' in `test' for more
|
||||||
|
portability.
|
||||||
|
Don't use `for' without `in' for compatability with ash.
|
||||||
|
Check install_device before running grub if possible. Added
|
||||||
|
error messages if install_device is not set or not unique.
|
||||||
|
Exit if mkdir fails.
|
||||||
|
Add a message about successful installation.
|
||||||
|
Remove unneeded backslash in the final message.
|
||||||
|
(convert): use `test -b' instead of `test -e' because ash
|
||||||
|
doesn't understand the later. Correct error message accordingly.
|
||||||
|
|
||||||
2000-04-17 OKUJI Yoshinori <okuji@gnu.org>
|
2000-04-17 OKUJI Yoshinori <okuji@gnu.org>
|
||||||
|
|
||||||
The user doesn't have to recompile GRUB for his/her buggy BIOS
|
The user doesn't have to recompile GRUB for his/her buggy BIOS
|
||||||
|
|
5
NEWS
5
NEWS
|
@ -16,6 +16,11 @@ New in 0.5.95 - XXXX-XX-XX:
|
||||||
LBA mode, you should specify it. It is necessary if your BIOS is too
|
LBA mode, you should specify it. It is necessary if your BIOS is too
|
||||||
buggy. In the previous version, it was a compile-time option, but you
|
buggy. In the previous version, it was a compile-time option, but you
|
||||||
don't have to recompile GRUB any longer.
|
don't have to recompile GRUB any longer.
|
||||||
|
* Likewise, now the command "setup" and the script "grub-install" also
|
||||||
|
accept `--force-lba' option. Specifying this option to "setup" or
|
||||||
|
"grub-install" has the same effect as to the command "install".
|
||||||
|
* The configure script doesn't accept the option
|
||||||
|
`--disable-lba-support-bitmap-check' any longer. Use the option above.
|
||||||
|
|
||||||
New in 0.5.94 - 2000-03-06:
|
New in 0.5.94 - 2000-03-06:
|
||||||
* Stage 1 supports both the LBA mode and the CHS mode.
|
* Stage 1 supports both the LBA mode and the CHS mode.
|
||||||
|
|
|
@ -2,7 +2,7 @@ You can use the netboot support to download OS images from a network.
|
||||||
Nearly all the device drivers are coming from the network-based boot
|
Nearly all the device drivers are coming from the network-based boot
|
||||||
loader, Etherboot. Please visit its web page. They have rich
|
loader, Etherboot. Please visit its web page. They have rich
|
||||||
documentations so you will be able to get useful information from there.
|
documentations so you will be able to get useful information from there.
|
||||||
The URL is <http://www.slug.org.au/etherboot/>.
|
The URL is <http://etherboot.sourceforge.net/>.
|
||||||
|
|
||||||
These below are common options for configure. Perhaps you may not need
|
These below are common options for configure. Perhaps you may not need
|
||||||
to specify them.
|
to specify them.
|
||||||
|
|
|
@ -63,8 +63,10 @@ EOF
|
||||||
# This part is OS-specific.
|
# This part is OS-specific.
|
||||||
convert () {
|
convert () {
|
||||||
# First, check if the device file exists.
|
# First, check if the device file exists.
|
||||||
if test ! -e "$1"; then
|
if test -b "$1"; then
|
||||||
echo "$1: Not found." 1>&2
|
:
|
||||||
|
else
|
||||||
|
echo "$1: Not found or not a block device." 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -116,7 +118,7 @@ convert () {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check the arguments.
|
# Check the arguments.
|
||||||
for option; do
|
for option in "$@"; do
|
||||||
case "$option" in
|
case "$option" in
|
||||||
-h | --help)
|
-h | --help)
|
||||||
usage
|
usage
|
||||||
|
@ -135,6 +137,7 @@ for option; do
|
||||||
debug=yes ;;
|
debug=yes ;;
|
||||||
*)
|
*)
|
||||||
if test "x$install_device" != x; then
|
if test "x$install_device" != x; then
|
||||||
|
echo "More than one install_devices?" 1>&2
|
||||||
usage
|
usage
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -142,6 +145,12 @@ for option; do
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if test "x$install_device" = x; then
|
||||||
|
echo "install_device not specified." 1>&2
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# If the debugging feature is enabled, print commands.
|
# If the debugging feature is enabled, print commands.
|
||||||
if test $debug = yes; then
|
if test $debug = yes; then
|
||||||
set -x
|
set -x
|
||||||
|
@ -153,17 +162,23 @@ grubdir=${bootdir}/grub
|
||||||
device_map=${grubdir}/device.map
|
device_map=${grubdir}/device.map
|
||||||
|
|
||||||
# Check if GRUB is installed
|
# Check if GRUB is installed
|
||||||
if test ! -f "$grub_shell"; then
|
if test -f "$grub_shell"; then
|
||||||
|
:
|
||||||
|
else
|
||||||
echo "${grub_shell}: Not found." 1>&2
|
echo "${grub_shell}: Not found." 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test ! -f "$pkgdatadir/stage1"; then
|
if test -f "$pkgdatadir/stage1"; then
|
||||||
|
:
|
||||||
|
else
|
||||||
echo "${pkgdatadir}/stage1: Not found." 1>&2
|
echo "${pkgdatadir}/stage1: Not found." 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test ! -f "$pkgdatadir/stage2"; then
|
if test -f "$pkgdatadir/stage2"; then
|
||||||
|
:
|
||||||
|
else
|
||||||
echo "${pkgdatadir}/stage2: Not found." 1>&2
|
echo "${pkgdatadir}/stage2: Not found." 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -172,11 +187,13 @@ fi
|
||||||
# Stage 1.5 does not exist.
|
# Stage 1.5 does not exist.
|
||||||
|
|
||||||
# Create the GRUB directory if it is not present.
|
# Create the GRUB directory if it is not present.
|
||||||
test -d "$bootdir" || mkdir "$bootdir"
|
test -d "$bootdir" || mkdir "$bootdir" || exit 1
|
||||||
test -d "$grubdir" || mkdir "$grubdir"
|
test -d "$grubdir" || mkdir "$grubdir" || exit 1
|
||||||
|
|
||||||
# Create the device map file if it is not present.
|
# Create the device map file if it is not present.
|
||||||
if test ! -f "$device_map"; then
|
if test -f "$device_map"; then
|
||||||
|
:
|
||||||
|
else
|
||||||
# Create a safe temporary file.
|
# Create a safe temporary file.
|
||||||
test -x /bin/tempfile && log_file=`tempfile --prefix=grub`
|
test -x /bin/tempfile && log_file=`tempfile --prefix=grub`
|
||||||
|
|
||||||
|
@ -192,25 +209,21 @@ EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check for INSTALL_DEVICE.
|
# Check for INSTALL_DEVICE.
|
||||||
if test "x$install_device" = x; then
|
case "$install_device" in
|
||||||
|
/dev/*)
|
||||||
|
install_drive=`convert "$install_device"`
|
||||||
|
# I don't know why, but some shells wouldn't die if exit is
|
||||||
|
# called in a function.
|
||||||
|
if test "x$install_drive" = x; then
|
||||||
|
exit 1
|
||||||
|
fi ;;
|
||||||
|
\([hf]d[0-9]*\))
|
||||||
|
install_drive="$install_device" ;;
|
||||||
|
*)
|
||||||
|
echo "Format of install_device not recognized." 1>&2
|
||||||
usage
|
usage
|
||||||
exit 1
|
exit 1 ;;
|
||||||
else
|
esac
|
||||||
case "$install_device" in
|
|
||||||
/dev/*)
|
|
||||||
install_drive=`convert "$install_device"`
|
|
||||||
# I don't know why, but some shells wouldn't die if exit is
|
|
||||||
# called in a function.
|
|
||||||
if test "x$install_drive" = x; then
|
|
||||||
exit 1
|
|
||||||
fi ;;
|
|
||||||
\([hf]d[0-9]*\))
|
|
||||||
install_drive="$install_device" ;;
|
|
||||||
*)
|
|
||||||
usage
|
|
||||||
exit 1 ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get the root drive.
|
# Get the root drive.
|
||||||
# For now, this uses the program `df' to get the device name, but is
|
# For now, this uses the program `df' to get the device name, but is
|
||||||
|
@ -256,9 +269,10 @@ fi
|
||||||
rm -f $log_file
|
rm -f $log_file
|
||||||
|
|
||||||
# Prompt the user to check if the device map is correct.
|
# Prompt the user to check if the device map is correct.
|
||||||
|
echo "Installation finished. No error reported."
|
||||||
echo "This is the contents of the device map $device_map."
|
echo "This is the contents of the device map $device_map."
|
||||||
echo "Check if this is correct or not. If any of the lines is incorrect,"
|
echo "Check if this is correct or not. If any of the lines is incorrect,"
|
||||||
echo "fix it and re-run the script \`grub-install\'."
|
echo "fix it and re-run the script \`grub-install'."
|
||||||
echo
|
echo
|
||||||
|
|
||||||
cat $device_map
|
cat $device_map
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue