113 lines
		
	
	
	
		
			4.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
	
		
			4.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 11 GRUB image files
 | |
| *******************
 | |
| 
 | |
| GRUB consists of several images: a variety of bootstrap images for
 | |
| starting GRUB in various ways, a kernel image, and a set of modules
 | |
| which are combined with the kernel image to form a core image.  Here is
 | |
| a short overview of them.
 | |
| 
 | |
| 'boot.img'
 | |
|      On PC BIOS systems, this image is the first part of GRUB to start.
 | |
|      It is written to a master boot record (MBR) or to the boot sector
 | |
|      of a partition.  Because a PC boot sector is 512 bytes, the size of
 | |
|      this image is exactly 512 bytes.
 | |
| 
 | |
|      The sole function of 'boot.img' is to read the first sector of the
 | |
|      core image from a local disk and jump to it.  Because of the size
 | |
|      restriction, 'boot.img' cannot understand any file system
 | |
|      structure, so 'grub-install' hardcodes the location of the first
 | |
|      sector of the core image into 'boot.img' when installing GRUB.
 | |
| 
 | |
| 'diskboot.img'
 | |
|      This image is used as the first sector of the core image when
 | |
|      booting from a hard disk.  It reads the rest of the core image into
 | |
|      memory and starts the kernel.  Since file system handling is not
 | |
|      yet available, it encodes the location of the core image using a
 | |
|      block list format.
 | |
| 
 | |
| 'cdboot.img'
 | |
|      This image is used as the first sector of the core image when
 | |
|      booting from a CD-ROM drive.  It performs a similar function to
 | |
|      'diskboot.img'.
 | |
| 
 | |
| 'pxeboot.img'
 | |
|      This image is used as the start of the core image when booting from
 | |
|      the network using PXE. *Note Network::.
 | |
| 
 | |
| 'lnxboot.img'
 | |
|      This image may be placed at the start of the core image in order to
 | |
|      make GRUB look enough like a Linux kernel that it can be booted by
 | |
|      LILO using an 'image=' section.
 | |
| 
 | |
| 'kernel.img'
 | |
|      This image contains GRUB's basic run-time facilities: frameworks
 | |
|      for device and file handling, environment variables, the rescue
 | |
|      mode command-line parser, and so on.  It is rarely used directly,
 | |
|      but is built into all core images.
 | |
| 
 | |
| 'core.img'
 | |
|      This is the core image of GRUB. It is built dynamically from the
 | |
|      kernel image and an arbitrary list of modules by the 'grub-mkimage'
 | |
|      program.  Usually, it contains enough modules to access
 | |
|      '/boot/grub', and loads everything else (including menu handling,
 | |
|      the ability to load target operating systems, and so on) from the
 | |
|      file system at run-time.  The modular design allows the core image
 | |
|      to be kept small, since the areas of disk where it must be
 | |
|      installed are often as small as 32KB.
 | |
| 
 | |
|      *Note BIOS installation::, for details on where the core image can
 | |
|      be installed on PC systems.
 | |
| 
 | |
| '*.mod'
 | |
|      Everything else in GRUB resides in dynamically loadable modules.
 | |
|      These are often loaded automatically, or built into the core image
 | |
|      if they are essential, but may also be loaded manually using the
 | |
|      'insmod' command (*note insmod::).
 | |
| 
 | |
| For GRUB Legacy users
 | |
| =====================
 | |
| 
 | |
| GRUB 2 has a different design from GRUB Legacy, and so correspondences
 | |
| with the images it used cannot be exact.  Nevertheless, GRUB Legacy
 | |
| users often ask questions in the terms they are familiar with, and so
 | |
| here is a brief guide to how GRUB 2's images relate to that.
 | |
| 
 | |
| 'stage1'
 | |
|      Stage 1 from GRUB Legacy was very similar to 'boot.img' in GRUB 2,
 | |
|      and they serve the same function.
 | |
| 
 | |
| '*_stage1_5'
 | |
|      In GRUB Legacy, Stage 1.5's function was to include enough
 | |
|      filesystem code to allow the much larger Stage 2 to be read from an
 | |
|      ordinary filesystem.  In this respect, its function was similar to
 | |
|      'core.img' in GRUB 2.  However, 'core.img' is much more capable
 | |
|      than Stage 1.5 was; since it offers a rescue shell, it is sometimes
 | |
|      possible to recover manually in the event that it is unable to load
 | |
|      any other modules, for example if partition numbers have changed.
 | |
|      'core.img' is built in a more flexible way, allowing GRUB 2 to
 | |
|      support reading modules from advanced disk types such as LVM and
 | |
|      RAID.
 | |
| 
 | |
|      GRUB Legacy could run with only Stage 1 and Stage 2 in some limited
 | |
|      configurations, while GRUB 2 requires 'core.img' and cannot work
 | |
|      without it.
 | |
| 
 | |
| 'stage2'
 | |
|      GRUB 2 has no single Stage 2 image.  Instead, it loads modules from
 | |
|      '/boot/grub' at run-time.
 | |
| 
 | |
| 'stage2_eltorito'
 | |
|      In GRUB 2, images for booting from CD-ROM drives are now
 | |
|      constructed using 'cdboot.img' and 'core.img', making sure that the
 | |
|      core image contains the 'iso9660' module.  It is usually best to
 | |
|      use the 'grub-mkrescue' program for this.
 | |
| 
 | |
| 'nbgrub'
 | |
|      There is as yet no equivalent for 'nbgrub' in GRUB 2; it was used
 | |
|      by Etherboot and some other network boot loaders.
 | |
| 
 | |
| 'pxegrub'
 | |
|      In GRUB 2, images for PXE network booting are now constructed using
 | |
|      'pxeboot.img' and 'core.img', making sure that the core image
 | |
|      contains the 'pxe' and 'pxecmd' modules.  *Note Network::.
 | |
| 
 |