Change the command-line options in /sbin/grub, and update the manual.
This commit is contained in:
parent
adbb228ab7
commit
b06ee733ef
3 changed files with 80 additions and 14 deletions
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
||||||
|
1999-05-25 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
|
||||||
|
|
||||||
|
* grub/main.c: Replace OPT_DISABLE_CONFIG_FILE and
|
||||||
|
OPT_DISABLE_CURSES with OPT_NO_CONFIG_FILE and OPT_NO_CURSES
|
||||||
|
respectively.
|
||||||
|
(longopts): Rename from "disable-config-file" to
|
||||||
|
"no-config-file", and from "disable-curses" to "no-curses".
|
||||||
|
(usage): Use "grub" instead of ARGV[0], read the standards.
|
||||||
|
Change the help message according to the changes above.
|
||||||
|
(main): Handle OPT_NO_CONFIG_FILE and OPT_NO_CURSES, instead
|
||||||
|
of OPT_DISABLE_CONFIG_FILE and OPT_DISABLE_CURSES.
|
||||||
|
|
||||||
1999-05-21 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
|
1999-05-21 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
|
||||||
|
|
||||||
* docs/TODO: Moved to ...
|
* docs/TODO: Moved to ...
|
||||||
|
|
|
@ -2131,7 +2131,60 @@ current media.
|
||||||
@node MBR
|
@node MBR
|
||||||
@section The structure of Master Boot Record
|
@section The structure of Master Boot Record
|
||||||
|
|
||||||
PC_partitioning.txt
|
A Master Boot Record (@dfn{MBR}) is the sector at cylinder 0, head 0,
|
||||||
|
sector 1 of a hard disk. A MBR-like structure must be created in each of
|
||||||
|
partitions by the FDISK program.
|
||||||
|
|
||||||
|
At the completion of your system's Power On Self Test (@dfn{POST}), INT
|
||||||
|
19H is called. Usually INT 19 tries to read a boot sector from the first
|
||||||
|
floppy drive@footnote{Which drive is read first depends on your BIOS
|
||||||
|
settings.}. If a boot sector is found on the floppy disk, that boot
|
||||||
|
sector is read into memory at location 0000:7C00 and INT 19H jumps to
|
||||||
|
memory location 0000:7C00. However, if no boot sector is found on the
|
||||||
|
first floppy drive, INT 19H tries to read the MBR from the first hard
|
||||||
|
drive. If an MBR is found it is read into memory at location 0000:7C00
|
||||||
|
and INT 19H jumps to memory location 0000:7C00. The small program in the
|
||||||
|
MBR will atempt to locate an active (bootable) partition in its
|
||||||
|
partition table@footnote{This behavior is DOS MBR's, and GRUB ignores
|
||||||
|
the active flag.}. The small program in the boot sector must locate the
|
||||||
|
first part of the operating system's kernel loader program (or perhaps
|
||||||
|
the kernel itself or perhaps a @dfn{boot manager program}) and read that
|
||||||
|
into memory.
|
||||||
|
|
||||||
|
INT 19H is also called when the @key{CTRL}-@key{ALT}-@key{DEL} keys are
|
||||||
|
used. On most systems, @key{CTRL}-@key{ALT}-@key{DEL} causes an short
|
||||||
|
version of the POST to be executed before INT 19H is called.
|
||||||
|
|
||||||
|
The stuff is:
|
||||||
|
|
||||||
|
@table @asis
|
||||||
|
@item Offset 0000
|
||||||
|
The address where the MBR code starts.
|
||||||
|
|
||||||
|
@item Offset 01BE
|
||||||
|
The address where the partition table starts (@pxref{Partition table}).
|
||||||
|
|
||||||
|
@item Offset 01FE
|
||||||
|
The signature, AA55.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
However, the first 62 bytes of a boot sector are known as the BIOS
|
||||||
|
Parameter Block (@dfn{BPB}), so GRUB cannot use these bytes for its own
|
||||||
|
purpose.
|
||||||
|
|
||||||
|
If an active partition is found, that partition's boot record is read
|
||||||
|
into 0000:7C00 and the MBR code jumps to 0000:7C00 with @code{SI}
|
||||||
|
pointing to the partition table entry that describes the partition being
|
||||||
|
booted. The boot record program uses this data to determine the drive
|
||||||
|
being booted from and the location of the partition on the disk.
|
||||||
|
|
||||||
|
The first byte of an active partition table entry is 80. This byte is
|
||||||
|
loaded into the @code{DL} register before INT 13H is called to read the
|
||||||
|
boot sector. When INT 13H is called, @code{DL} is the BIOS device
|
||||||
|
number. Because of this, the boot sector read by this MBR program can
|
||||||
|
only be read from BIOS device number 80 (the first hard disk). This is
|
||||||
|
one of the reasons why it is usually not possible to boot from any other
|
||||||
|
hard disk.
|
||||||
|
|
||||||
|
|
||||||
@node Partition table
|
@node Partition table
|
||||||
|
|
27
grub/main.c
27
grub/main.c
|
@ -44,8 +44,8 @@ static char *default_config_file;
|
||||||
#define OPT_CONFIG_FILE -5
|
#define OPT_CONFIG_FILE -5
|
||||||
#define OPT_INSTALL_PARTITION -6
|
#define OPT_INSTALL_PARTITION -6
|
||||||
#define OPT_BOOT_DRIVE -7
|
#define OPT_BOOT_DRIVE -7
|
||||||
#define OPT_DISABLE_CONFIG_FILE -8
|
#define OPT_NO_CONFIG_FILE -8
|
||||||
#define OPT_DISABLE_CURSES -9
|
#define OPT_NO_CURSES -9
|
||||||
#define OPT_BATCH -10
|
#define OPT_BATCH -10
|
||||||
#define OPTSTRING ""
|
#define OPTSTRING ""
|
||||||
|
|
||||||
|
@ -57,8 +57,8 @@ static struct option longopts[] =
|
||||||
{"config-file", required_argument, 0, OPT_CONFIG_FILE},
|
{"config-file", required_argument, 0, OPT_CONFIG_FILE},
|
||||||
{"install-partition", required_argument, 0, OPT_INSTALL_PARTITION},
|
{"install-partition", required_argument, 0, OPT_INSTALL_PARTITION},
|
||||||
{"boot-drive", required_argument, 0, OPT_BOOT_DRIVE},
|
{"boot-drive", required_argument, 0, OPT_BOOT_DRIVE},
|
||||||
{"disable-config-file", no_argument, 0, OPT_DISABLE_CONFIG_FILE},
|
{"no-config-file", no_argument, 0, OPT_NO_CONFIG_FILE},
|
||||||
{"disable-curses", no_argument, 0, OPT_DISABLE_CURSES},
|
{"no-curses", no_argument, 0, OPT_NO_CURSES},
|
||||||
{"batch", no_argument, 0, OPT_BATCH},
|
{"batch", no_argument, 0, OPT_BATCH},
|
||||||
{0},
|
{0},
|
||||||
};
|
};
|
||||||
|
@ -68,25 +68,26 @@ static void
|
||||||
usage (int status)
|
usage (int status)
|
||||||
{
|
{
|
||||||
if (status)
|
if (status)
|
||||||
fprintf (stderr, "Try ``%s --help'' for more information.\n",
|
fprintf (stderr, "Try ``grub --help'' for more information.\n");
|
||||||
program_name);
|
|
||||||
else
|
else
|
||||||
printf ("\
|
printf ("\
|
||||||
Usage: %s [OPTION]...\n\
|
Usage: grub [OPTION]...\n\
|
||||||
\n\
|
\n\
|
||||||
Enter the GRand Unified Bootloader command shell.\n\
|
Enter the GRand Unified Bootloader command shell.\n\
|
||||||
\n\
|
\n\
|
||||||
--batch turn on batch mode for non-interactive use\n\
|
--batch turn on batch mode for non-interactive use\n\
|
||||||
--boot-drive=DRIVE specify stage2 boot_drive [default=0x%x]\n\
|
--boot-drive=DRIVE specify stage2 boot_drive [default=0x%x]\n\
|
||||||
--config-file=FILE specify stage2 config_file [default=%s]\n\
|
--config-file=FILE specify stage2 config_file [default=%s]\n\
|
||||||
--disable-config-file disable to use the config file\n\
|
|
||||||
--disable-curses disable to use curses\n\
|
|
||||||
--help display this message and exit\n\
|
--help display this message and exit\n\
|
||||||
--hold wait until a debugger will attach\n\
|
--hold wait until a debugger will attach\n\
|
||||||
--install-partition=PAR specify stage2 install_partition [default=0x%x]\n\
|
--install-partition=PAR specify stage2 install_partition [default=0x%x]\n\
|
||||||
|
--no-config-file do not use the config file\n\
|
||||||
|
--no-curses do not use curses\n\
|
||||||
--version print version information and exit\n\
|
--version print version information and exit\n\
|
||||||
|
\n\
|
||||||
|
Report bugs to bug-grub@gnu.org\n\
|
||||||
",
|
",
|
||||||
program_name, default_boot_drive, default_config_file,
|
default_boot_drive, default_config_file,
|
||||||
default_install_partition);
|
default_install_partition);
|
||||||
|
|
||||||
exit (status);
|
exit (status);
|
||||||
|
@ -152,16 +153,16 @@ main (int argc, char **argv)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OPT_DISABLE_CONFIG_FILE:
|
case OPT_NO_CONFIG_FILE:
|
||||||
use_config_file = 0;
|
use_config_file = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OPT_DISABLE_CURSES:
|
case OPT_NO_CURSES:
|
||||||
use_curses = 0;
|
use_curses = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OPT_BATCH:
|
case OPT_BATCH:
|
||||||
/* This is the same as "--disable-config-file --disable-curses". */
|
/* This is the same as "--no-config-file --no-curses". */
|
||||||
use_config_file = 0;
|
use_config_file = 0;
|
||||||
use_curses = 0;
|
use_curses = 0;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue