Red Hat Docs  >  Red Hat Manuals  >  Archived Red Hat Linux Manuals  > 


MILO Installations

Note Please Note
 

The ARC and AlphaBIOS consoles operate in essentially the same way. Both use MILO and, aside from cosmetic changes, they are identical in functionality. The keystrokes described in each section have been tested against ARC and AlphaBIOS systems, and are known to work with on-site machines. However, small differences may exist for other ARC and AlphaBIOS systems.

The ARC and AlphaBIOS consoles are designed to load the Windows NT operating system. Like many other things in the Linux world, they've been made to do a job that they were never intended to do. In this case, they're used to load Linux. When you power-on an ARC/AlphaBIOS console machine, you will see the firmware initialize the hardware, and you will see a boot menu. The initialization process varies greatly by machine.

The Windows NT ARC/AlphaBIOS firmware is an environment in which programs can run and make callbacks into the firmware to perform actions.

  • The Windows NT osloader is a program that does exactly this.

  • The Linux linload.exe is a much simpler program which does just enough to load and execute MILO. linload.exe loads the appropriate image file into memory at 0x00000000 and then makes a swap-PAL PALcall to the image file. The swap is necessary because MILO, like Linux, uses a different PALcode than Windows NT. MILO relocates itself to 0x200000 and continues on through the PALcode reset entry point as before.

Setting up ARC for Installation

To perform an ARC/MILO installation, you will need to create two disks:

  1. The correct MILO disk for the class of machine onto which you are installing Red Hat Linux. The MILO disk images are located in the /milo/images directory on CD 1. See Table 1-1 for which MILO image you need.

  2. The generic installation kernel disk, made from /images/generic.img on CD 1.

Note Please Note
 

If you are going to perform an NFS, FTP, or hard disk installation, you will also need a third disk -- the RAM disk made from /images/ramdisk.img on CD 1.

Please refer to the section called Writing an Image File to a Diskette for instructions on writing image files to diskettes.

Once you have these disks created, boot your Alpha machine into the ARC boot menu. The first step is to set up a boot menu entry to enable MILO to be loaded from floppy disk. At the boot menu, select the option Supplementary menu .

Next, select the command: Set up the system , which takes you to the Setup Menu . From here, select the command Manage boot selection menu , which takes you to the Boot Selections Menu .

You need to add a boot command to load MILO from the floppy you created. Choose the command Add a boot selection .

You should see several devices listed. To select the A: drive, choose Floppy Disk 0 .

Note Please Note
 

If you do not see an entry for the floppy drive, consult your AlphaBIOS/ARC installation manual to determine the correct method for configuring your hardware in the console.

Next enter the name of the OS loader to use. Enter \linload.exe as the OS loader directory and name. The MILO disk you created has the linload.exe file on it, and the correct MILO for your Alpha machine class. The MILO command is always named milo on the floppy, and both files should reside in the root directory of the floppy disk.

Select the yes option when asked if the operating system is on the same partition as the OS loader (it is, both are in the root directory), and enter \ as the operating system root directory. As the name of the boot selection, enter something descriptive like MILO Floppy to indicate that this entry boots MILO from the floppy drive.

If prompted, select no to indicate that you do not want to start the debugger at boot time.

You should now be back in the boot selections menu. Press Esc to get back to the Boot Selections Menu . Choose the option Supplementary menu, and save changes .

to commit the changes to NVRAM. Once you have saved your boot entry, Esc will get you back to the boot menu and you can now attempt to boot MILO.

You should have a boot selection that looks something like this:


LOADIDENTIFIER=Linux
SYSTEMPARTITION=multi(0)disk(0)fdisk(0)
OSLOADER=multi(0)disk(0)fdisk(0)\linload.exe
OSLOADPARTITION=multi(0)disk(0)fdisk(0)\
OSLOADOPTIONS=

This boot selection enables ARC to boot into MILO from the floppy using the linload.exe OS loader.

Setting up AlphaBIOS for Installation

The first thing you must do is to install the latest version of AlphaBIOS, which can be obtained from Compaq's Alpha Firmware update site at http://ftp.digital.com/pub/DEC/Alpha/firmware/ .

Just like with ARC, you will need two diskettes for the MILO installation process:

  1. The correct MILO disk for the class of machine onto which you are installing Red Hat Linux. The MILO disk images are located in the /milo/images directory on CD 1. See Table 1-1 for which MILO image you need.

  2. The generic installation kernel disk, from /images/generic.img on CD 1.

Note Please Note
 

If you are going to perform an NFS, FTP, or hard disk installation, you will also need a third disk: the RAM disk made from /images/ramdisk.img on CD 1.

Please refer to the section called Writing an Image File to a Diskette for instructions on writing image files to diskettes.

Once your AlphaBIOS is at the latest revision level, you can start the installation process. Turn on the system and insert the floppy. At the opening screen, press F2 to enter setup mode. You are going to add a boot selection that allows you to boot MILO from a floppy disk. Select the following command from the menu: Utilities -> OS Selection Setup. .

Press Insert to add a new operating system selection. For the Boot Name parameter, enter something like: MILO Floppy to indicate that you are loading MILO from a floppy disk. Press Tab to get to the next field. Use the DOWN-ARROW key to move through the options until the selection for Boot File is A: . Then, Tab to the next field and enter: linload.exe as the name of the OS loader.

Tab past the OS Path Load Device option, since it's irrelevant and linload.exe ignores it. Tab to the OS Path Load File option. Enter: \ for the OS Path load file. Finally, press Enter to add the selection to the boot menu.

At this point, AlphaBIOS will probably put up a big, unfriendly dialog box labeled something like Warning: Operating System Selection not valid!

Ignore this error (AlphaBIOS considers it an error whenever your OS is not Windows NT). Press Enter to continue. Press F10 to save the changes you just made, and press Enter to confirm the changes.

Press Esc twice to get back to the opening screen. Use the UP-ARROW and DOWN-ARROW keys to select the boot selection you just added, and press Enter to boot it.

AlphaBIOS will load linload.exe , which will in turn load MILO.

MILO User Interface

Once the Windows NT firmware is running and you have the correct MILO image for your system loaded, the rest of the installation details are completely generic.

Once you boot into MILO, you get a prompt that is very familiar to the standard bash# prompt in Linux. As mentioned earlier, MILO uses native Linux device drivers; therefore, all devices in MILO are referred to in the same manner as a running Linux system ( /dev/scd0 for a SCSI CD-ROM 0, /dev/hda for the first IDE device, etc.).

MILO has a very simple interface that is designed to allow you to boot a Linux kernel image, and perform some basic diagnostic functions. Typing help is a good idea, since it provides a useful summary of the commands, as follows:


MILO>
 

help



MILO command summary: ls [-t fs] [dev:[dir]]
                  - List files in directory on device 
boot [-t fs] [dev:file] [boot string]
                 - 
Boot Linux from the specified device and file 
run [-t fs] dev:file
                 - Run the standalone program dev:file 
show             - 
Display all known devices and file systems
set VAR VALUE    -
Set the variable VAR to the specified VALUE 
unset VAR        - Delete the specified variable 
reset            - Delete all variables 
print            - Display current variable settings 
help [var]       - Print this help text
Devices are specified as: fd0, hda1, hda2, sda1... 
Use the '-t filesystem-name' option if you want 
to use anything but the default filesystem  ('ext2'). 
Use the 'show' command to show known devices and file-
systems. 
Type 'help var' for a list of variables.

Note Please Note
 

The bootopt command only appears on AlphaPC64 (and similar) systems. Refer to the board's documentation to find out just what it means.

Devices

Until you use a command that needs to make use of a device, no device initialization will take place. The first time you issue the show , ls , or run command, the devices within MILO will be initialized. Devices are named exactly the same way that Linux names devices. So, the first IDE disk will be called hda and its first partition will be hda1 . Use the show command to show what devices are available.

Filesystems

MILO supports three file systems: MSDOS, ext2 and ISO9660. If a device is available to it, MILO can ls , boot or run an image stored on one of these filesystems. MILO will assume ext2 as the default filesystem, and so you have to explicitly tell MILO if the filesystem is something other than ext2. All of the commands that use filenames allow you to pass the file system using the -t [filesystem] option. So, if you wanted to list the contents of a SCSI CD-ROM, you might type the following:


MILO>
 
ls -t iso9660 scd0:

Variables

MILO contains some settable variables that help the boot process. If you are loading via Windows NT ARC or AlphaBIOS firmwares, then MILO makes use of the boot option environment variables set up by that firmware. For some systems (for example, the AlphaPC64), MILO maintains its own set of environment variables that do not change from boot to boot. These variables can be displayed with the help var command:


MILO>
 

help var



Variables that MILO cares about: 
MEMORY_SIZE  - System memory size in megabytes 
BOOT_DEV     - Specifies the default boot device 
BOOT_FILE    - Specifies the default boot file 
BOOT_STRING  - 
Specifies the boot string to pass to the kernel 
SCSIn_HOSTID - Specifies the host id of the 
n-th SCSI controller 
PCI_LATENCY  - Specifies the PCI master device latency 
AUTOBOOT     - If set, MILO attempts to boot on powerup 
and enters command loop only on failure. 
AUTOBOOT_TIMEOUT - Seconds to wait before auto-
booting on powerup.
 

Note Please Note
 

If you set AUTOBOOT, you need to set the timeout. Setting AUTOBOOT without setting the timeout can result in your machine automatically booting after a timeout of 0 seconds, which will not allow for any user intervention in the case of errors.

Booting with MILO

The primary function of MILO is to boot the Linux kernel. To boot the installer to use the CD-ROM (assuming the CD-ROM drive is SCSI) the command would look similar to this:


MILO>
 
boot fd0:vmlinux.gz root=/dev/scd0

The installer should boot, and you should be able to proceed as normal. IDE CD-ROM devices use the standard IDE device references.

If you need to use the RAM disk floppy as well, the boot command accepts the standard kernel parameters. So the command will look something like this:


MILO>
 
boot fd0:vmlinux.gz root=/dev/fd0 load_ramdisk=1

Disk Partitioning

The only rule for partitioning the hard drive for MILO is that there should be a 2 MB FAT partition at the beginning of the drive from which you will load MILO.

Red Hat Linux/Alpha supports two varieties of hard drive partitioning: standard fdisk -style partitioning and BSD-style partitioning.

The standard fdisk -style partitioning method has the usual oddities (such as extended partitions) and is done in the same way as on Intel platforms (using Linux fdisk ). This is the partitioning style you must use if you are using the ARC or AlphaBIOS console.

When using aboot to boot Red Hat Linux from the SRM console (for example, to share a disk with Digital UNIX), you must use BSD-style disk labels. aboot does not understand DOS-style partition tables as MILO does, and therefore a slightly different installation path is necessary. This includes using fdisk in disk label editing mode to create a disk label on the disk. There are three things to keep in mind when using disk labels on an Alpha:

  1. Whole disk label: The so-called "whole disk" label is required. It should be the c label, which encompasses the entire disk and must be created by you.

  2. Initial unallocated space: This is unallocated disk space that is not explicitly allocated to any label other than the "whole disk" label. This space should be approximately 1 MB to 10 MB (2048 to 20480 sectors), depending on exactly what configuration for aboot you will be using. Its purpose is to provide space at the very beginning of the disk for aboot to write the boot block and object file that allows booting to kernels located within the disk labels. For more information on the process aboot uses to boot, please see the SRM Firmware HOWTO at http://www.alphalinux.org/faq/srm.html .

  3. Installing aboot : In order to boot from the hard disk in the system, you will need to install aboot to the unallocated space using the swriteboot command. You can do this at one of two points: during the installation using the command shell started on the second virtual console ( Alt - F2 ), or after the installation is finished and the machine has been booted from the kernel on a floppy diskette.

    • To install aboot during the installation, you must access the second virtual terminal, using Alt - F2 . You will then want to run the following command to start a more normalized shell than the installation itself provides:

      
      chroot /mnt bash
      

      Once you have the bash# prompt, you can use swriteboot to install aboot to the unallocated space you've left at the beginning of the disk:

      
      swriteboot /dev/sda /boot/bootlx -f3
      

      The -f3 switch is used to force swriteboot to ignore the conflict with the third disk label, c , the "whole disk" label you have created.

    • To install aboot after the installation, boot the system from SRM, using the kernel diskette, with a command line like the following:

      
      boot dva0 -fi vmlinux.gz -flags "root=/dev/sda2"
      

      Once you reach the initial login prompt, log in as root and run the following command:

      
      /sbin/swriteboot /dev/sda /boot/bootlx -f3
      

    You can then boot from the hard disk using an SRM command like the following example. For booting from the first SCSI hard disk, second partition (where the Linux root filesystem resides):

    
    boot dka0 -fi 2/vmlinux.gz -fl "root=/dev/sda2"
    

    The 2 in 2/vmlinux.gz and /dev/sda2 are representative of the second disk label on the disk. The -fi and -fl options stand for `file' and `flags,' respectively.

    You can also choose a slightly different path that involves an extra prompt:

    
    boot dka0
    

    Once you see the aboot> prompt, you can use similar kernel and root specifications to the ones used with the -fi and fl options mentioned above:

    
    aboot>
     
    2/vmlinux.gz root=/dev/sda2
    

Note Please Note
 

If any drives on your system have BSD-style disk labels, you will not be able to use Disk Druid to set up partitions. If you use BSD-style disk labels, you will need to use fdisk for partitioning.

Installation

Install Red Hat Linux/Alpha as described in the Official Red Hat Linux Installation Guide . Stop when you reach the point where the packages you've selected are finished being transferred to the hard drive. At this point, you are prompted to install the correct X server for your machine, or, you will select your pointing device, if you didn't install X. Do NOT press the Ok button yet. Instead, follow the instructions contained in the section called Installing MILO to the Hard Drive .

Installing MILO to the Hard Drive

The installation process puts all the necessary components of the Red Hat Linux Operating System on your machine, but MILO must be installed manually. Switch to the command prompt on the TTY2 console by pressing Alt - F2 . Once you've switched to the command prompt, verify that your root directory is mounted with the following command:


#
 
mount

This should show the partition you selected to be mounted as / to be currently mounted as /mnt . Temporarily make /mnt the root directory by issuing the command:


#
 
chroot /mnt

Now, all you need to do is actually install MILO. First, insert your MILO disk into the floppy drive. Then you'll need to issue a command which will vary slightly in syntax depending on your boot device. For example, if you plan to boot your Alpha from the first SCSI hard disk, issue the following command:


bash#
 
dd if=/dev/fd0 of=/dev/sda1

If you plan to boot your Alpha from the second IDE device, the dd command should be executed like this:


bash#
 
dd if=/dev/fd0 of=/dev/hdb1

The command will copy MILO (along with linload.exe ) to the small MILO partition you created. Once MILO has been installed, type the following command to exit the temporary root device set using the chroot command:


bash#
 
exit

Now switch back to TTY1 using Alt - F1 and select the Ok button to continue the installation process.

Post-Installation Setup

If you dedicated the first partition of your first disk drive to a small FAT partition for booting (as the installation procedure advises you to) you can the modify the Boot Menu to have a selection to load MILO from this partition.

Add another boot selection, as described in the section called Setting up ARC for Installation for ARC and in the section called Setting up AlphaBIOS for Installation for AlphaBIOS. However, this time you should select the appropriate hard disk device. If you installed Linux to the first hard drive, the device should be:



scsi(0)disk(0)rdisk(0)partition(1)

If you are using an ARC console or the AlphaBIOS console, select the following device:



Disk 0 Partition 1

If you wish to autoboot into Linux, set the OSLOADOPTIONS variable as described in the section called MILO Autoboot . Once you have done this, booting and running Linux on an Alpha system should be very similar to doing so on an x86 system.

MILO Autoboot

In the ARC and AlphaBIOS consoles, the contents of the OSLOADOPTIONS parameter are passed to MILO as a command. In order to boot Linux automatically in MILO, enter a value for OSLOADOPTIONS similar to this one:


boot sda2:/boot/vmlinux root=/dev/sda2