99 |
* Configuration:: Writing your own configuration file |
* Configuration:: Writing your own configuration file |
100 |
* Network:: Downloading OS images from a network |
* Network:: Downloading OS images from a network |
101 |
* Serial terminal:: Using GRUB via a serial line |
* Serial terminal:: Using GRUB via a serial line |
102 |
|
* Preset Menu:: Embedding a configuration file into GRUB |
103 |
* Security:: Improving the security |
* Security:: Improving the security |
104 |
* Images:: GRUB image files |
* Images:: GRUB image files |
105 |
* Filesystem:: Filesystem syntax and semantics |
* Filesystem:: Filesystem syntax and semantics |
1243 |
foo:ht=1:ha=63655d0334a7:ip=145.71.35.127:\ |
foo:ht=1:ha=63655d0334a7:ip=145.71.35.127:\ |
1244 |
:bf=/nbgrub:\ |
:bf=/nbgrub:\ |
1245 |
:tc=.allhost:\ |
:tc=.allhost:\ |
1246 |
:T150="/tftpboot/menu.lst.foo": |
:T150="(nd)/tftpboot/menu.lst.foo": |
1247 |
@end group |
@end group |
1248 |
@end example |
@end example |
1249 |
|
|
1250 |
|
Note that you should specify the drive name @code{(nd)} in the name of |
1251 |
|
the configuration file. That is because you can change the root drive |
1252 |
|
before downloading the configuration from the TFTP server, when the |
1253 |
|
preset menu feature is used (@pxref{Preset Menu}). |
1254 |
|
|
1255 |
See the manual about your BOOTP/DHCP server, for more information. The |
See the manual about your BOOTP/DHCP server, for more information. The |
1256 |
exact syntax should differ from the example, more or less. |
exact syntax should differ from the example, more or less. |
1257 |
|
|
1303 |
emulators nowadays, but you should pass the option @option{--dumb} to |
emulators nowadays, but you should pass the option @option{--dumb} to |
1304 |
the command, if your terminal emulator is not VT100-compatible or |
the command, if your terminal emulator is not VT100-compatible or |
1305 |
implements few VT100 escape sequences. If you specify the option, then |
implements few VT100 escape sequences. If you specify the option, then |
1306 |
GRUB doesn't provide you with the menu interface, because the menu |
GRUB provides you with an alternative menu interface, because the normal |
1307 |
requires several fancy features for your terminal. Instead, GRUB only |
menu requires several fancy features for your terminal. |
1308 |
gives you the hidden menu interface and the command-line interface |
|
1309 |
(@pxref{Interface}). |
|
1310 |
|
@node Preset Menu |
1311 |
|
@chapter Embedding a configuration file into GRUB |
1312 |
|
|
1313 |
|
GRUB supports @dfn{preset menu} which is always loaded before starting. |
1314 |
|
The preset menu feature is useful, for example, when your computer has |
1315 |
|
no console but a serial cable. In this case, it is critical to set up |
1316 |
|
the serial terminal as soon as possible, since you cannot see any |
1317 |
|
message until the serial terminal begins to work. So it is nice to run |
1318 |
|
the commands @command{serial} (@pxref{serial}) and @command{terminal} |
1319 |
|
(@pxref{terminal}) sooner than anything else at the start-up time. |
1320 |
|
|
1321 |
|
It is slightly complicated how the preset menu works: |
1322 |
|
|
1323 |
|
@enumerate |
1324 |
|
@item |
1325 |
|
GRUB checks if the preset menu feature is used, and loads the preset |
1326 |
|
menu, if available. This includes running commands and reading boot |
1327 |
|
entries, like an ordinary configuration file. |
1328 |
|
|
1329 |
|
@item |
1330 |
|
GRUB checks if the configuration file is available. Note that this check |
1331 |
|
is performed @strong{regardless of the existence of the preset |
1332 |
|
menu}. The configuration file is loaded, even after the preset menu was |
1333 |
|
loaded. |
1334 |
|
|
1335 |
|
@item |
1336 |
|
When the preset menu includes any boot entries, they are cleared when |
1337 |
|
the configuration file is loaded. It doesn't matter whether the |
1338 |
|
configuration file has any entries or no entry. The boot entries in the |
1339 |
|
preset menu are used only when GRUB fails in loading the configuration |
1340 |
|
file. |
1341 |
|
@end enumerate |
1342 |
|
|
1343 |
|
To enable the preset menu feature, you must specify a file to the |
1344 |
|
configure script with the option @option{--enable-preset-menu}. The file |
1345 |
|
has the same semantics as normal configuration files |
1346 |
|
(@pxref{Configuration}). |
1347 |
|
|
1348 |
|
Another point you should take care is that the diskless support |
1349 |
|
(@pxref{Diskless}) diverts the preset menu. Diskless images embed a |
1350 |
|
preset menu to execute the command @command{bootp} (@pxref{bootp}) |
1351 |
|
automatically, unless you specify your own preset menu to the configure |
1352 |
|
script. This means that you must put commands to initialize a network in |
1353 |
|
the preset menu yourself, because diskless images don't set it up |
1354 |
|
implicitly, when you use the preset menu explicitly. |
1355 |
|
|
1356 |
|
Therefore, a typical preset menu used with diskless support would be |
1357 |
|
like this: |
1358 |
|
|
1359 |
|
@example |
1360 |
|
@group |
1361 |
|
# Set up the serial terminal, first of all. |
1362 |
|
serial --unit=0 --speed=19200 |
1363 |
|
terminal --timeout=0 serial |
1364 |
|
|
1365 |
|
# Initialize the network. |
1366 |
|
dhcp |
1367 |
|
@end group |
1368 |
|
@end example |
1369 |
|
|
1370 |
|
|
1371 |
@node Security |
@node Security |