On the command line
Usually, when /sbin/silo is invoked without any command-line options,
it reads and checks the syntax of it's configuration file, and then installs
and configures the boot loaders.
You can however pass several arguments to /sbin/silo:
-r <root_path>
This does a chroot to <root_path> before
preforming any other actions.
In case you are creating a new root file system (e.g. your current
root file system is NFS mounted and you are setting up an ext2 root
file system in /mnt, then you should run silo
after installing the directories boot, etc and sbin
into /mnt with the "-r" argument. An
example:
/mnt/sbin/silo -r /mnt
-b <secondary>
This tells SILO to use <secondary> as the second
stage boot loader instead of /boot/second.b.
-i <primary>
Install <primary> as the first stage loader instead
of the default one. Depending on the architecture of the machine and
other arguments the default is either /boot/first.b,
/boot/ultra.b or boot/fd.b.
-C <config>
Specify and alternate configuration file instead of the default
/etc/silo.conf. The configuration file must reside on the
same physical disk as the secondary boot loader (It can
reside on a different partition).
-S <backup_file>
This forces the saving of the old boot block into
<backup_file>.
-s <backup_file>
This forces the saving of the old boot block into
<backup_file> if and only if
<backup_file> does not exist yet.
-p {0|2}
Force the EPROM version to be 0 or 2. The
default is to auto-detect the EPROM version.
-f
Force the overwriting of the boot block.
-t
Stores the boot block into the same partition as the second stage
loader. By default, when using a SCSI or an IDE disk, SILO writes the
boot block into the master boot (the boot block of the partition starting
at cylinder 0). This behaviour can be changed with the
"-t" argument.
-V
Displays the version of SILO.
-F
Generate the boot block for booting from the romfs file
system. To create a bootable romfs file system (which is
usually on a floppy disk) prepare the tree for that file system, and
run genromfs(8) while passing the following arguments to it:
genromfs -a 512 -A 2048,/...
After this mount the tree and run silo with the
"-f" option.
An example:
genromfs -d directory/ -f device -a 512 -A 2048,/..
mount -t romfs device mountpoint
silo -r mountpoint -i /boot/fd.b -F
umount mountpoint
-J <flash-image>
Generate the bootblock for booting a JavaStation off a flash
image. To create it, you should prepare the tree for that file system,
and run genromfs(1). You must use -a512 as an
argument to genromfs. There must be 1kB of space before the
file system for the ELF boot block.
An example of the procedure:
dd if=/dev/zero of=flash.img bs=1k count=1
genromfs -a 512 -f romfs.img -d flash/
cat romfs.img >> flash.img
rm -f romfs.img
losetup /dev/loop0 -o 1024 flash.img
mount -t romfs -o ro /dev/loop0 /mnt
silo -J flash.img -i /boot/ieee32.b -r /mnt
umount /mnt
losetup -d /dev/loop0
jsflash flash.img
-u
Assume that the machine is an UltraSPARC. The default is obviously
the machine that /sbin/silo is being run on. This can be
useful for instance if you are planning to move a hard disk drive from
a 32-bit to a 64-bit machine. You run /sbin/silo -f -u, halt
the machine, and move the disk.
-U
Assume that the machine is not an UltraSPARC.
-v
Print the EPROM version and exit.
-a
Usually when silo is running it reads and checks the syntax of the
silo.conf file that will be used when the system boots, which
is generally a good idea. Sometimes, however, you may want to create a
boot block when silo.conf is not or not yet available. This
will allow this check to fail. USE THIS WITH CAUTION!
At boot time
When the PROM boots from a disk and partition on which SILO is installed, the
first stage boot loader will load the second one very quickly, and the string
"SILO" will be printed to the screen. If something went
wrong while loading the second stage boot loader, SILO might print less
characters from that string and die, e.g. "SIL" means it
loaded a second stage boot loader, but with wrong magic. See also
How does it work?
After SILO has been loaded succesfully it will print the string
boot:, and then waits for either the timeout if specified in
silo.conf, or user input.
- Press <enter> (an empty line), which will cause the
"default" entry from the configuration file
to be loaded.
- Type halt, which will drop you to the Sun EPROM.
- Type help to display help information.
- Press <tab>, which lists the aliases and labels
from the configuration file.
- Enter an alias or label that is present in the
configuration file, plus additional arguments.
- Enter a full path to an image to be loaded.
The arguments you pass on the line after the name of the image to be
loaded are basically kernel arguments which are normally specified in
the append variable in silo.conf.
In addition to that, several special arguments are handled by SILO internally
and are not passed to the kernel. These arguments include:
- initrd
- initrd-size=number
- initrd-prompt
- pause-after
- show-arguments
show-arguments causes the arguments which will be passed to the
kernel to be printed on the screen before the kernel is loaded, the
other options resemble flags and string variables found in
silo.conf.
SILO has support for filename completion on the command-line prompt by
pressing the <tab> key.
Examples
boot: linux
boot: linux init=/bin/sh
boot: 1/boot/vmlinux
boot: /pci@1f,4000/ide/ata@0,0/cmdk@0,0;4/boot/vmlinux.new root=/dev/hda4
boot: sd(0,2,0)2/boot/vmlinux.gz root=/dev/sdc2 init=/bin/sh ro
boot: cat /etc/silo.conf
boot: cat /sbus/espdma@1,280000/esp/sd@2,0;5/etc/inittab
boot: ls -lt /lib/modules/
boot: ls /pci@1f,4000/ide/ata@0,0/cmdk@0,0;2/lib/
|