# palo.conf -- default arguments for palo
# 
# See /usr/share/doc/palo/README.html and run 'palo --help' for
# more information

# The following arguments are set up for booting from /dev/sda3, specifically
# mounting partition 3 as root, and using /boot/vmlinux as both the
# recovery kernel, and the default dynamically-booted kernel.
# --recoverykernel=/boot/vmlinux
# --init-partitioned=/dev/sda
# --commandline=3/boot/vmlinux HOME=/ TERM=linux root=/dev/sda3

#
#Usage: palo [options]
#    (if an option is repeated, the last instance of it takes precedence)
#    -?,	--help	Print this information
#    -c,	--commandline=default kernel command line
#		Maximum 127 characters.
#    -k, --recoverykernel=path to recovery kernel (perhaps /boot/vmlinux)
#    -b, --bootloader=path to boot loader
		Defaults to /usr/share/palo/iplboot -- you usually don't
		need to use -b or --bootloader
#    -r, --ramdisk=path to initial ramdisk image
#    -I, --init-partitioned=partitioned device or file
#    		Initialize a pre-partitioned device, usually a hard disk.
#		The partition table is not modified.  Requires only -c and -b
#		though -k is customary and prudent.
#    -U, --update-partitioned=partitioned device or file
#    		Update a pre-partitioned device, usually a hard disk.
#		The partition table is not modified.  Usually used to
#		modify the default kernel command line (-c).
#    -s, --init-tape=file
#    		Initialize an unpartitioned file which can be copied to
#		tape, disk, or used as a bootp image.  Requires -c, -b, -k.
#    -C, --init-cdrom=iso-image-file
#    		Convert an ISO image already containing a kernel, boot loader,
#		and optionally a ramdisk, into a PA-RISC bootable image.
#		Requires -c, -b, -k, and optionally -r.  The files named on
#		the palo command line must have EXACTLY the same contents as
#		those already in the ISO image.
#    -f, --configfile=path to config file
#		Each line in the named configuration file is added
#		as a separate argument to the beginning of the palo
#		command line arguments (thus command-line options
#		override config file options).
#
#		Short or long options can be used with long options
#		peferred for readability in the configuration file.
#		WARNING: No quotations or other shell syntax is understood,
#		so use
#			--commandline=a b c
#		not
#			--commandline='a b c'.
#		The short-option config file form of the above is:
#			-c
#			a b c
#
#		Blank lines and lines beginning with # are ignored.
#		Whitespace at the beginning and ends of lines is discarded.
#
#		When -f is not specified, palo tries /etc/palo.conf.  Use
#		--configfile=/dev/null to avoid configuration files or
#		warnings when /etc/palo.conf is missing.
#
#'palo' with no arguments whatsoever is equivalent to 'palo -f /etc/palo.conf'.
#
#When more than one of -I, -U, -s and -C are used, only the
#last one is effective.
#The output file you requested does not exist.  If you are trying
#to create a file appropriate for booting from sequential media
#such as a tape or bootp, please add the -s option.
