enable the fallback in bios.c, add new options into grub-install.

This commit is contained in:
okuji 2000-01-10 17:54:22 +00:00
parent adcd2008e1
commit 68b1a3d231
11 changed files with 810 additions and 572 deletions

View file

@ -1,3 +1,25 @@
2000-01-10 OKUJI Yoshinori <okuji@gnu.org>
* stage2/bios.c (NO_INT13_FALLBACK): Undefined.
(get_diskinfo) [!NO_BUGGY_BIOS_IN_THE_WORLD]: Do not check if
bit 0 in DRP.FLAGS is set, because at least one BIOS does not
set it correctly. Reported by "Forever shall I be."
<zinx@linuxfreak.com>.
* util/grub-install.in: Handle the new options `--root' and
`--grub-shell'.
(rootdir): New variable.
(usage): Print the help messages about the options --root and
--grub-shell.
(bootdir): Initialized after the option analysis.
(grubdir): Likewise.
(device_map): Likewise.
(root_device): Set to the result for the directory ROOTDIR
instead of "/".
* docs/user-ref.texi (Invoking grub-install): Added the
descriptions about --root and --grub-shell.
* docs/grub-install.8: Regenerated.
2000-01-08 OKUJI Yoshinori <okuji@gnu.org>
* util/grub-install.in (grubdir_device): New variable.

View file

@ -24,36 +24,44 @@
/* Defined if _end is defined. */
#undef HAVE_USCORE_END_SYMBOL
/* Define if you have the <curses.h> header file. */
#undef HAVE_CURSES_H
/* Define if you have the <ncurses.h> header file. */
#undef HAVE_NCURSES_H
/* Define if you have the <ncurses/curses.h> header file. */
#undef HAVE_NCURSES_CURSES_H
/* Define if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Name of package */
#undef PACKAGE
/* Version number of package */
#undef VERSION
/* Define if C symbols get an underscore after compilation */
#undef HAVE_ASM_USCORE
/* Define it to "addr32" or "addr32;" to make GAS happy */
#undef ADDR32
/* Define it to "data32" or "data32;" to make GAS happy */
#undef DATA32
/* Define if C symbols get an underscore after compilation */
#undef HAVE_ASM_USCORE
/* Define if you have the <curses.h> header file. */
#undef HAVE_CURSES_H
/* Define if you have the `curses' library (-lcurses). */
#undef HAVE_LIBCURSES
/* Define if you have the `ncurses' library (-lncurses). */
#undef HAVE_LIBNCURSES
/* Define if you have the `util' library (-lutil). */
#undef HAVE_LIBUTIL
/* Define if you have the <ncurses/curses.h> header file. */
#undef HAVE_NCURSES_CURSES_H
/* Define if you have the <ncurses.h> header file. */
#undef HAVE_NCURSES_H
/* Define if opendisk() in -lutil can be used */
#undef HAVE_OPENDISK
/* Define if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Name of package */
#undef PACKAGE
/* Version number of package */
#undef VERSION

1243
configure vendored

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.016.
.TH GRUB-INSTALL "8" "November 1999" "grub-install (GNU GRUB 0.5.94)" FSF
.TH GRUB-INSTALL "8" "January 2000" "grub-install (GNU GRUB 0.5.94)" FSF
.SH NAME
grub-install \- install GRUB on your drive
.SH SYNOPSIS
@ -13,6 +13,13 @@ print this message and exit
.TP
\fB\-v\fR, \fB\-\-version\fR
print the version information and exit
.TP
\fB\-\-root\fR=\fIDIR\fR
install GRUB images under the directory DIR
instead of the root directory.
.TP
\fB\-\-grub\-shell\fR=\fIFILE\fR
use FILE as the grub shell.
.PP
Reports bugs to <bug-grub@gnu.org>.
.SH "SEE ALSO"

View file

@ -1,5 +1,5 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.016.
.TH GRUB "8" "November 1999" "GNU GRUB 0.5.94" FSF
.TH GRUB "8" "January 2000" "GNU GRUB 0.5.94" FSF
.SH NAME
GRUB \- the grub shell
.SH SYNOPSIS

View file

@ -1,5 +1,5 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.016.
.TH MBCHK "1" "November 1999" "mbchk (GNU GRUB 0.5.94)" FSF
.TH MBCHK "1" "January 2000" "mbchk (GNU GRUB 0.5.94)" FSF
.SH NAME
mbchk \- check the format of a Multiboot kernel
.SH SYNOPSIS

View file

@ -1,3 +1,3 @@
@set UPDATED 18 November 1999
@set UPDATED 30 December 1999
@set EDITION 0.5.94
@set VERSION 0.5.94

View file

@ -1384,6 +1384,19 @@ Print a summary of the command line options and exit.
@item --version
Print the version number of GRUB and exit.
@item --root=@var{dir}
Install GRUB images under the directory @var{dir} instead of the root
directory. This option is useful when you want to install GRUB into a
separate partition and a removable disk.
@item --grub-shell=@var{file}
Use @var{file} as the grub shell. You can append arbitrary options to
@var{file} after the filename, like this:
@example
grub-install --grub-shell="grub --read-only" /dev/fd0
@end example
@end table

View file

@ -1,3 +1,3 @@
@set UPDATED 18 November 1999
@set UPDATED 30 December 1999
@set EDITION 0.5.94
@set VERSION 0.5.94

View file

@ -1,7 +1,7 @@
/* bios.c - implement C part of low-level BIOS disk input and output */
/*
* GRUB -- GRand Unified Bootloader
* Copyright (C) 1999 Free Software Foundation, Inc.
* Copyright (C) 1999,2000 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -76,7 +76,7 @@ biosdisk (int read, int drive, struct geometry *geometry,
err = biosdisk_int13_extensions (read + 0x42, drive, &dap);
#define NO_INT13_FALLBACK 1
/* #undef NO_INT13_FALLBACK */
#ifndef NO_INT13_FALLBACK
if (err)
{
@ -158,16 +158,25 @@ get_diskinfo (int drive, struct geometry *geometry)
err = get_diskinfo_int13_extensions (drive, &drp);
if (! err)
{
/* How many buggy BIOSes are there in the world...
Some BIOSes don't set the flag correctly, even if LBA
read/write is supported, so we cannot help assuming
that the functions are supported by default and
clearing the flag when either of them fails. *sigh* */
#ifdef NO_BUGGY_BIOS_IN_THE_WORLD
/* Make sure that LBA read/write functions are supported. */
if (drp.flags & 1)
{
#endif
geometry->flags = BIOSDISK_FLAG_LBA_EXTENSION;
/* FIXME: when the 2TB limit becomes critical, we must
change the type of TOTAL_SECTORS to unsigned long
long. */
total_sectors = drp.total_sectors & ~0L;
#ifdef NO_BUGGY_BIOS_IN_THE_WORLD
}
#endif
}
}

View file

@ -30,10 +30,8 @@ host_vendor=@host_vendor@
pkgdatadir=${datadir}/${PACKAGE}/${host_cpu}-${host_vendor}
grub_shell=${sbindir}/grub
bootdir=/boot
grubdir=${bootdir}/grub
device_map=${grubdir}/device.map
log_file=/tmp/grub-install.log.$$
rootdir=
install_device=
debug=no
@ -47,6 +45,9 @@ Install GRUB on your drive.
-h, --help print this message and exit
-v, --version print the version information and exit
--root=DIR install GRUB images under the directory DIR
instead of the root directory.
--grub-shell=FILE use FILE as the grub shell.
Reports bugs to <bug-grub@gnu.org>.
EOF
@ -117,6 +118,10 @@ for option; do
-v | --version)
echo "grub-install (GNU GRUB ${VERSION})"
exit 0 ;;
--root=*)
rootdir=`echo $option | sed 's/--root=//'` ;;
--grub-shell=*)
grub_shell=`echo $option | sed 's/--grub-shell=//'` ;;
# This is an undocumented feature...
--debug)
debug=yes ;;
@ -134,6 +139,11 @@ if test $debug = yes; then
set -x
fi
# Initialize these directories here, since ROOTDIR was initialized.
bootdir=${rootdir}/boot
grubdir=${bootdir}/grub
device_map=${grubdir}/device.map
# Check if GRUB is installed
if test ! -f $grub_shell; then
echo "${grub_shell}: Not found." 1>&2
@ -197,7 +207,7 @@ fi
# Get the root drive.
# For now, this uses the program `df' to get the device name, but is
# this really portable?
root_device=`df / | grep /dev/ | sed 's%.*\(/dev/[a-z0-9]*\).*%\1%'`
root_device=`df ${rootdir} | grep /dev/ | sed 's%.*\(/dev/[a-z0-9]*\).*%\1%'`
root_drive=`convert $root_device`
if test "x$root_drive" = x; then
exit 1