.TH SILO 8 "11 February 2000" "Linux" .SH NAME \fBSILO\fP \- Sparc Improved boot LOader .SH SYNOPSIS \fB/sbin/silo\fP [-r root_path] [-b secondary] [-i primary] [-C config-file] [-S backup-file] [-s backup-file] [-J flash-image ] [-p {0|2}] [-fFtuUvV] .SH DESCRIPTION \fBSILO\fP can be used to boot Linux, SunOS, and/or Solaris. It is a program that runs from the PROM on your SPARC machine and allows for loading of operating systems. It also has extended features like the ability to load Linux kernels arbitrarily from an \fIext2\fP, \fIufs\fP, \fIromfs\fP or \fIiso9660\fP filesystem. The PROM in the SPARC at boot time loads a bootblock from a boot device. This bootblock is quite short, so a full featured boot loader does not fit into it, especially since filesystems like \fIext2\fP reserve only 1024 bytes for it and the partition table itself takes 512 bytes. That's why SILO consists of a collection of first stage loaders which are just able to load a second stage loader which already understands all supported filesystems and handles the config file, input line editing and actual loading of operating systems. The program \fB/sbin/silo\fP is used to install the first stage loader by copying the right first stage loader into the bootblock (unless the correct first stage is already installed and the \fI-f\fP option is not used to force it), writes the block number of the first block of the second stage loader (usually \fB/boot/second.b\fP) into it and into the second stage loader it records all the block numbers of \fBsecond.b\fP and the name and location of the configuration file. The configuration file itself is parsed by the boot loader at boot time. See \fBsilo.conf(5)\fP for details. This means that the \fB/sbin/silo\fP program must be run only if you install a new version of \fISILO\fP or if you move the second stage loader on the disk. Unlike the \fILILO\fP bootloader on the Intel platform, you don't have to rerun it every time you make a change into \fB/etc/silo.conf\fP or when you install new kernels. \fB/sbin/silo\fP used to assist in creating SPARC bootable CDs, but this feature has been moved into the \fBmkisofs(8)\fP program and you only need to put \fBSILO\fP first and second stage loaders and the configuration on the CD before running it. .PP .SH "COMMAND\-LINE OPTIONS" .TP .BI "-r " root_path This does a chroot into \fIroot_path\fP before performing any actions. .TP .BI "-b " secondary This tells SILO to use \fIsecondary\fP as the second stage loader instead of \fB/boot/second.b\fP .TP .BI "-i " primary Install \fIprimary\fP as the first stage loader instead of the default one (depending on other command line options and architecture of the machine \fB/sbin/silo\fP is being run on it is either \fB/boot/first.b\fP, \fB/boot/ultra.b\fP or \fB/boot/fd.b\fP). .TP .BI "-C " config specify alternate config file instead of \fB/etc/silo.conf\fP. The config file must reside on the same physical disk (though it can be on different partitions) as the secondary loader (usually \fB/boot/second.b\fP). .TP .BI "-S " backup-file This forces saving your old bootblock into file \fIbackup-file\fP. .TP .BI "-s " backup-file This forces saving your old bootblock into file \fIbackup-file\fP if and only if \fIbackup-file\fP does not exist yet. .TP .BI "-p " {0|2} force PROM version to be 0 or 2 (default is autodetection). .TP .B -f force overwriting of bootblock. .TP .B -t store bootblock into the same partition as second stage loader. By default SILO on SCSI/IDE disks writes bootblock into masterboot (bootblock of partition starting at cylinder 0), with .B -t you change this behaviour. .TP .B -V show version. .TP .B -F Generate the bootblock for booting from the \fIromfs\fP filesystem. To create a bootable \fIromfs\fP filesystem, usually floppy, prepare the tree for that filesystem and run \fBgenromfs(8)\fP and make sure you pass it the \fB-a 512 -A 2048,/..\fP options. Then mount it and run \fB/sbin/silo\fP on it with the \fB-F\fP option. The procedure usually goes like this: \fBgenromfs -d \fP\fIdirectory\fP\fB/ -f \fP\fIdevice\fP\fB -a 512 -A 2048,/..\fP \fBmount -t romfs \fP\fIdevice mountpoint\fP \fBsilo -r \fP\fImountpoint\fP\fB -i /boot/fd.b -F\fP \fBumount \fP\fImountpoint\fP .TP .BI "-J " flash-image Generate the bootblock for booting JavaStation off an flash image. To create it, prepare the tree for that filesystem and run \fBgenromfs(8)\fP and make sure you pass it the \fB-a512\fP option. You have to keep 1KB of space before the filesystem for the ELF bootblock. THe procedure usually goes like this: \fBdd if=/dev/zero of=\fP\fIflash.img\fP\fB bs=1k count=1\fP \fBgenromfs -a 512 -f \fP\fIromfs.img\fP\fB -d \fP\fIflash/\fP \fBcat \fP\fIromfs.img\fP\fB >> \fP\fIflash.img\fP \fBrm -f \fP\fIromfs.img\fP \fBlosetup \fP\fI/dev/loop0\fP\fB -o 1024 \fP\fIflash.img\fP \fBmount -t romfs -o ro \fP\fI/dev/loop0\fP\fB \fP\fI/mnt\fP \fBsilo -J \fP\fIflash.img\fP\fB -i /boot/ieee32.b -r \fP\fI/mnt\fP \fBumount \fP\fI/mnt\fP \fBlosetup -d \fP\fI/dev/loop0\fP \fBjsflash \fP\fIflash.img\fP .TP .B -u Assume the machine is an UltraSPARC (the default is obviously the machine \fB/sbin/silo\fP is running on). This can be useful e.g. if you plan to move a disk from a 32bit box to a 64bit box, you run \fB/sbin/silo -f -u\fP and then after the shutdown move the disk. .TP .B -U Assume the machine is not an UltraSPARC. .TP .B -v Print PROM version and exit. .TP .B -a Usually, when silo is run, it reads and checks the syntax of the silo.conf that will be used when the system boots. This is generally good, but sometimes you may wish to create a boot block when no silo.conf is available yet. The \fB-a\fP option will allow this check to fail. USE WITH CAUTION! .PP .SH "BOOT TIME OPERATION" When the PROM boots from a disk and partition on which SILO is installed, it will print the string \fBSILO\fP to the screen (if the second stage loader is moved away or is crippled it might actually print less letters from that string and die). If \fItimeout\fP is specified in \fBsilo.conf(5)\fP, it will wait like that until the user presses some key or until the timeout expires. If the timeout expires, the default image is booted, otherwise SILO continues normal operation, ie. prints the string \fBboot:\fP and waits for user input. At the prompt, you can enter the \fIlabel\fP or \fIalias\fP of some image present in the config file, plus additional arguments you want to give it and \fBSILO\fP will boot such image, give it all the arguments specified in the config and all the arguments you gave on the command line. Entering an empty line will cause the default image to be loaded. Examples: boot: \fBlinux\fP boot: \fBlinux.old init=/bin/sh\fP 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 \fIappend\fP variable in \fBsilo.conf(5)\fP. In addition to that, several special arguments are handled by \fBSILO\fP internally and are not passed to the kernel. These include \fIinitrd\fP, \fIinitrd-size=\fPnumber, \fIinitrd-prompt\fP, \fIpause-after\fP and \fIshow-arguments\fP. \fIshow-arguments\fP causes the arguments which will be passed to the kernel to be printed on the screen before the kernel is loaded, the other options ressemble flags and string variables of the same names from \fBsilo.conf(5)\fP. You can also enter one of the special keywords, \fBhalt\fP or \fBhelp\fP. \fBhalt\fP causes \fBSILO\fP to return PROM, \fBhelp\fP prints some short incomplete help message. If you want to load some image or other operating system not mentioned in the config file (or if the config file could not be loaded because it has not been found or had syntax errors in it - \fBSILO\fP will print a message about this in such a case), you can load arbitrary image from any local \fIext2\fP, \fIufs\fP, \fIromfs\fP or \fIiso9660\fP filesystem and give it arbitrary arguments. \fBSILO\fP will handle transparent decompression of gzipped images. You type in the fully qualified \fBSILO\fP file name or partition name and arguments. For the syntax of the fully qualified \fBSILO\fP file names and partition names see \fBsilo.conf(5)\fP. Examples: boot: \fB/pci@1f,4000/ide/ata@0,0/cmdk@0,0;4/boot/vmlinux.new root=/dev/hda4\fP boot: \fB2/boot/vmlinux initrd=/boot/initrd.img\fP boot: \fBsd(0,2,0)2/boot/vmlinux.gz root=/dev/sdc2 init=/bin/sh ro\fP If there are \fIsingle-key\fP images in the config file, then they will be loaded as soon as you press that key at the beginning of the input line. If you want to give them arguments or load a different image which starts with that letter, you can type a space at the beginning of the input line so that the image is not autostarted. You can also view short files and see directory listings. Details are listed in \fBsilo.conf(5)\fP, here just a few examples: boot: \fBcat /etc/silo.conf\fP boot: \fBcat /sbus/espdma@1,280000/esp/sd@2,0;5/etc/inittab\fP boot: \fBls -lt /lib/modules/\fP boot: \fBls /pci@1f,4000/ide/ata@0,0/cmdk@0,0;2/lib/\fP \fBSILO\fP operation can be password protected in two different ways (in addition to no password protection at all). Either a password will be required to load any image, or password will be required to load any image not mentioned in \fBsilo.conf\fP or if the user gives some arguments to some image mentioned there. .PP .SH AUTHOR .B SILO was written by Jakub Jelinek (jakub@redhat.com) and is released under the conditions of the GNU General Public License. See the file COPYING for details. This man page was written by Donald Barnes (djb@redhat.com) and updated by the author. .SH CREDITS .br Mark Adler .br Wernel Almesberger .br Donald Barnes .br Eddie C. Dost .br Miguel de Icaza .br Jakub Jelinek .br David S. Miller .br Mauricio Plaza .br Adrian Rodrigues .br Andrew Tridgell .br Peter Zaitcev .br Ben Collins .br .SH SEE ALSO \fBsilo.conf(5)\fP, \fBmkisofs(8)\fP, \fBgenromfs(8)\fP