3 ###############################################################################
5 ## yabootconfig generates a simple /etc/yaboot.conf
6 ## Copyright (C) 2001, 2002, 2003 Ethan Benson
8 ## This program is free software; you can redistribute it and/or
9 ## modify it under the terms of the GNU General Public License
10 ## as published by the Free Software Foundation; either version 2
11 ## of the License, or (at your option) any later version.
13 ## This program is distributed in the hope that it will be useful,
14 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 ## GNU General Public License for more details.
18 ## You should have received a copy of the GNU General Public License
19 ## along with this program; if not, write to the Free Software
20 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 ###############################################################################
24 PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
25 ## allow to run out of /target in boot-floppies
26 if [ -n "$PATH_PREFIX" ] ; then
27 PATH="${PATH}:${PATH_PREFIX}/sbin:${PATH_PREFIX}/bin:${PATH_PREFIX}/usr/sbin:${PATH_PREFIX}/usr/bin:${PATH_PREFIX}/usr/local/sbin:${PATH_PREFIX}/usr/local/bin"
32 ## $CONFIG is relative to $CHROOT
33 CONFIG=etc/yaboot.conf
37 SIGINT="$PRG: Interrupt caught ... exiting"
40 ## avoid older versions of ofpath shipped in debian boot-floppies etc.
41 if [ -x "${PATH_PREFIX}/usr/sbin/ofpath" ] ; then
42 OFPATH="${PATH_PREFIX}/usr/sbin/ofpath"
47 ## catch signals, clean up temporary file
50 trap "echo 1>&2 $SIGINT ; exit 130" 2
54 ## check for printf, use it if possible otherwise fall back on
55 ## unreliable echo -e -n ("SUS" says echo shall support no switches)
56 if [ "$(printf printf_test 2>/dev/null)" = printf_test ] ; then
62 ## make sure echo is not lame if we must use it.
63 if [ "$PRINTF" != printf ] ; then
64 if [ "$(echo -e -n echo_test)" != "echo_test" ] ; then
65 echo 1>&2 "$PRG: printf unavailable and echo is broken, sorry."
70 ## make fake `id' if its missing, outputs 0 since if its missing we
71 ## are probably running on boot floppies and thus are root.
72 if (command -v id > /dev/null 2>&1) ; then
86 Written by Ethan Benson
88 Copyright (C) 2001, 2002, 2003 Ethan Benson
89 This is free software; see the source for copying conditions. There is NO
90 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
97 "Usage: $PRG [OPTION]...
98 Generate a working /etc/yaboot.conf.
100 -t, --chroot set root directory $PRG should work from
101 -r, --root set root partition, Example: /dev/hda3
102 default: determined from {chroot}/etc/fstab
103 -b, --boot set bootstrap partition, Example: /dev/hda2
104 default: first type: Apple_Bootstrap partition
105 --kernel-args add an append= line with specified arguments
106 -q, --quiet don't ask any questions/confirmation
107 --noinstall don't automatically run mkofboot
108 -h, --help display this help and exit
109 -V, --version output version information and exit"
114 [ "$DEBUG" = 0 ] && return 0
115 $PRINTF 1>&2 "$PRG: DEBUG: $1"
121 "yaboot is the Linux Loader for PowerPC. $PRG sets up your system to boot directly
122 from your hard disk, without the need for a boot CD, floppy or a network boot.\n"
123 [ "$NOINSTALL" = 0 ] && $PRINTF "Install yaboot bootstrap on $BOOT to boot Linux from $ROOT? [Yes] "
124 [ "$NOINSTALL" = 1 ] && $PRINTF "Create simple ${CHROOT}${CONFIG} to boot Linux from $ROOT? [Yes] "
128 echo "Creating a simple ${CHROOT}${CONFIG}..."
132 if [ "$NOINSTALL" = 0 ] ; then
133 $PRINTF "Create simple ${CHROOT}${CONFIG} without installing the bootstrap? [Yes] "
138 echo 1>&2 "Creating a simple ${CHROOT}${CONFIG}..."
154 ## find out whether we have mac-fdisk or pdisk (they work the same)
157 if (command -v mac-fdisk > /dev/null 2>&1) ; then
159 elif (command -v pdisk > /dev/null 2>&1) ; then
162 echo 1>&2 "$PRG: Unable to locate mac-fdisk"
166 if [ ! -x `command -v $FDISK` 2> /dev/null ] ; then
167 echo 1>&2 "$PRG: `command -v $FDISK`: Permission denied"
170 debug "mac-fdisk is: $FDISK\n"
174 ## find out if we have ddisk or fdisk (fdisk for dos labels) debian
178 if (command -v ddisk > /dev/null 2>&1) ; then
180 elif (command -v fdisk > /dev/null 2>&1) ; then
183 echo 1>&2 "$PRG: Unable to locate fdisk"
187 if [ ! -x `command -v $FDISK` 2> /dev/null ] ; then
188 echo 1>&2 "$PRG: `command -v $FDISK`: Permission denied"
191 debug "fdisk is: $FDISK\n"
195 ## find bootstrap partition, supports IBM CHRP with msdos disklabels
198 ## mac partition table magic == ER
199 if [ "$(dd if="$DISK" bs=2 count=1 2> /dev/null)" = ER ] ; then
200 ckmacfdisk || return 1
201 if [ "$FDISK" = pdisk ] ; then
202 ## handle braindamaged pdisk
203 debug "dealing with pdisk deficiency...\n"
204 BOOT="$(v=`$FDISK -l "$DISK" 2>/dev/null | grep '\<Apple_Bootstrap\>'` ; echo ${v%%:*})"
205 debug "BOOT before fixup: $BOOT\n"
206 if [ -n "$BOOT" ] ; then
207 BOOT="${DISK}${BOOT}"
209 debug "BOOT after fixup: $BOOT\n"
211 BOOT="$(v=`$FDISK -l "$DISK" 2>/dev/null | grep '\<Apple_Bootstrap\>'` ; echo ${v%%[ ]*})"
214 if [ -z "$BOOT" ] ; then
215 echo 1>&2 "$PRG: Unable to locate bootstrap partition on $DISK..."
216 echo 1>&2 "$PRG: You must create an 800K type: Apple_Bootstrap partition to make the disk bootable"
221 BOOT="$(v=`$FDISK -l "$DISK" 2>/dev/null | grep '\<PPC PReP Boot\>'` ; echo ${v%%[ ]*})"
223 if [ -z "$BOOT" ] ; then
224 echo 1>&2 "$PRG: Unable to locate bootstrap partition on $DISK..."
225 echo 1>&2 "$PRG: You must create an 800K type: 0x41 PPC PReP Boot partition to make the disk bootable"
232 ## if readlink is missing use a kludge
233 if (command -v readlink > /dev/null 2>&1) ; then
238 SYMTARGET="$(v=`ls -l "$2" 2>/dev/null` ; echo ${v##*> })"
239 if [ -n "$SYMTARGET" ] ; then
248 ## we have to do some things differently with a retarded devfs name.
252 /dev/ide/*|/dev/scsi/*|/dev/discs/*)
263 if [ -n "$TMPCONF" ] ; then rm -f "$TMPCONF" ; fi
271 if [ $# != 0 ] ; then
283 if [ -n "$2" ] ; then
287 echo 1>&2 "$PRG: option requires an argument $1"
288 echo 1>&2 "Try \`$PRG --help' for more information."
293 if [ -n "$2" ] ; then
297 echo 1>&2 "$PRG: option requires an argument $1"
298 echo 1>&2 "Try \`$PRG --help' for more information."
303 if [ -n "$2" ] ; then
307 echo 1>&2 "$PRG: option requires an argument $1"
308 echo 1>&2 "Try \`$PRG --help' for more information."
313 if [ -n "$2" ] ; then
317 echo 1>&2 "$PRG: option requires an argument $1"
318 echo 1>&2 "Try \`$PRG --help' for more information."
338 echo 1>&2 "$PRG: unrecognized option \`$1'"
339 echo 1>&2 "Try \`$PRG --help' for more information."
346 if [ `id -u` != 0 ] ; then
347 echo 1>&2 "$PRG: You are not root, go away"
351 ## we need /proc because df does
352 if [ ! -f /proc/uptime ] ; then
353 echo 1>&2 "$PRG: This utility requires the /proc filesystem"
357 ## check that chroot exists
358 if [ -d "$CHROOT" ] ; then
359 ## HACK: add trailing / to chroot, otherwise are paths later get b0rked.
368 elif [ ! -e "$CHROOT" ] ; then
369 echo 1>&2 "$PRG: $CHROOT: No such file or directory"
371 elif [ ! -d "$CHROOT" ] ; then
372 echo 1>&2 "$PRG: $CHROOT: Not a directory"
376 ## make sure the chroot is an actual root filesystem
377 if [ ! -f "${CHROOT}etc/fstab" ] ; then
378 echo 1>&2 "$PRG: $CHROOT does not appear to be a valid root filesystem"
383 if [ -z "$ROOT" ] ; then
384 ## IMPORTANT! that last substitution is [<space><tab>] thats all ash will grok
385 ROOT="$(v=`grep '^[^#].*[[:blank:]]/[[:blank:]]' ${CHROOT}etc/fstab` ; echo ${v%%[ ]*})"
387 if [ -z "$ROOT" ] ; then
388 echo 1>&2 "$PRG: Could not determine root partition, aborting..."
393 ## dereference label or uuid if necessary
396 if ! (command -v findfs > /dev/null 2>&1) ; then
397 echo 1>&2 "$PRG: Unable to locate findfs, aborting..."
400 ROOT="$(findfs "$ROOT")"
401 if [ -z "$ROOT" -o $? != 0 ] ; then
402 echo 1>&2 "$PRG: Could not determine root partition, aborting..."
408 ## make sure root device exists
409 if [ ! -e "$ROOT" ] ; then
410 echo 1>&2 "$PRG: $ROOT: No such file or directory"
415 if ckdevfs "$ROOT" ; then
416 DISK="${ROOT%/*}/disc"
418 DISK="${ROOT%%[0-9]*}"
420 if [ -z "$DISK" ] ; then
421 echo 1>&2 "$PRG: Could not determine root disk, aborting..."
425 ## make sure main disk exists
426 if [ ! -e "$DISK" ] ; then
427 echo 1>&2 "$PRG: $DISK: No such file or directory"
431 ## find bootstrap partition
432 if [ -z "$BOOT" ] ; then
433 findbootblock || exit 1
436 ## make sure bootstrap device exists
437 if [ ! -e "$BOOT" ] ; then
438 echo 1>&2 "$PRG: $BOOT: No such file or directory"
443 for i in "$DISK" "$ROOT" "$BOOT" ; do
444 if [ ! -b "$i" ] ; then
445 echo 1>&2 "$PRG: $i: Not a block device"
450 ## unless --quiet ask permission to proceed
451 if [ "$QUIET" = 0 ] ; then
455 READLINKKV=`readlink /usr/src/linux`
456 ## find the kernel in the usual places and (if not --quiet) ask the
457 ## user if we cannot find one.
458 for k in "vmlinux" "vmlinux-`uname -r`" "vmlinux-`uname -r`" "$READLINKKV" ; do
459 if [ -f "${CHROOT}${k}" ] ; then
460 KERNEL="${CHROOT}${k}"
462 elif [ -f "${CHROOT}boot/${k}" ] ; then
463 KERNEL="${CHROOT}boot/${k}"
468 for i in "initrd" "initrd-`uname -r`" "`echo $READLINKKV | cut -f1 -d- --complement`" ; do
469 for b in "" "boot/" ; do
470 if [ -f "${CHROOT}${b}${i}" ] ; then
471 INITRD="${CHROOT}${b}${i}"
472 elif [ -f "${CHROOT}${b}${i}.img" ] ; then
473 INITRD="${CHROOT}${b}${i}.img"
474 elif [ -f "${CHROOT}${b}${i}.gz" ] ; then
475 INITRD="${CHROOT}${b}${i}.gz"
480 if [ ! -f "$KERNEL" ] && [ ${QUIET} == 0 ] ; then
481 echo 1>&2 "$PRG: Cannot find a kernel, please provide one"
483 if [ "$CHROOT" == "/" ] ; then
484 $PRINTF 1>&2 "Enter path to a kernel image: "
486 $PRINTF 1>&2 "Enter path to a kernel image (not including chroot): "
492 /*) KERN=${CHROOT}${KERN:1} ;;
493 *) KERN=${CHROOT}${KERN} ;;
496 if [ -f "$KERN" ] ; then
499 elif [ ${KERN} == ${CHROOT} ] ; then
500 echo 1>&2 "$PRG: You must provide a valid kernel"
501 elif [ ! -e "$KERN" ] ; then
502 echo 1>&2 "$PRG: $KERN: No such file or directory"
503 elif [ -d "$KERN" ] ; then
504 echo 1>&2 "$PRG: $KERN: Is a directory"
506 echo 1>&2 "$PRG: $KERN: Is not a regular file"
510 if [ "$CHROOT" == "/" ] ; then
511 $PRINTF 1>&2 "Enter path to an initrd image (hit Enter for none): "
513 $PRINTF 1>&2 "Enter path to an initrd image (hit Enter for none, don't include the chroot): "
517 if [ "$IRD" == "" ]; then
523 /*) IRD=${CHROOT}${IRD:1} ;;
524 *) IRD=${CHROOT}${IRD} ;;
527 if [ -f "$IRD" ] ; then
530 elif [ ! -e "$IRD" ] ; then
531 echo 1>&2 "$PRG: $IRD: No such file or directory"
532 elif [ -d "$IRD" ] ; then
533 echo 1>&2 "$PRG: $IRD: Is a directory"
535 echo 1>&2 "$PRG: $IRD: Is not a regular file"
538 elif [ ! -f "$KERNEL" ] ; then
539 echo 1>&2 "$PRG: Cannot find a kernel, aborting..."
543 debug "KERNEL=$KERNEL\n"
544 debug "INITRD=$INITRD\n"
546 ## get partition number the kernel lives on, and the OF device= name
547 ## of the whole disk.
548 KERNDEV="$(v=`df "$KERNEL" 2> /dev/null | grep ^/dev/` ; echo ${v%%[ ]*})"
549 KERNDIR="$(v=`df "$KERNEL" 2> /dev/null | grep ^/dev/` ; echo ${v##*[ ]})"
550 LINKDEV="$(v=`df "${KERNEL%/*}/" 2>/dev/null | grep ^/dev/` ; echo ${v%%[ ]*})"
551 PARTITION="${KERNDEV##*[a-z]}"
553 if ckdevfs "$KERNDEV" ; then
554 KERNELDISK="${KERNDEV%/*}/disc"
556 KERNELDISK="${KERNDEV%%[0-9]*}"
559 if [ -n "$INITRD" ] ; then
560 ## get partition number the initrd lives on, and the OF device= name
561 ## of the whole disk.
562 IRDDEV="$(v=`df "$INITRD" 2> /dev/null | grep ^/dev/` ; echo ${v%%[ ]*})"
563 IRDDIR="$(v=`df "$INITRD" 2> /dev/null | grep ^/dev/` ; echo ${v##*[ ]})"
564 IRDLINKDEV="$(v=`df "${INITRD%/*}/" 2>/dev/null | grep ^/dev/` ; echo ${v%%[ ]*})"
565 IRDPARTITION="${KERNDEV##*[a-z]}"
567 if ckdevfs "$IRDDEV" ; then
568 INITRDDISK="${IRDDEV%/*}/disc"
570 INITRDDISK="${IRDDEV%%[0-9]*}"
574 debug "KERNEL=$KERNEL\nKERNDEV=$KERNDEV\nKERNDIR=$KERNDIR\nLINKDEV=$LINKDEV\nPARTITION=$PARTITION\nKERNELDISK=$KERNELDISK\n"
576 if [ -n "$INITRD" ] ; then
577 debug "INITRD=$INITRD\nIRDDEV=$IRDDEV\nIRDDIR=$IRDDIR\nIRDLINKDEV=$IRDLINKDEV\nIRDPARTITION=$IRDPARTITION\nINITRDDISK=$INITRDDISK\n"
581 for i in "$KERNDEV" "$KERNDIR" "$LINKDEV" "$PARTITION" "$KERNELDISK" ; do
582 if [ -z "$i" ] ; then
583 echo 1>&2 "$PRG: Could not determine necessary information, aborting..."
584 echo 1>&2 "$PRG: Are you using chroot $PRG instead of $PRG --chroot ?"
589 if [ -n "$INITRD" ] ; then
591 for i in "$IRDDEV" "$IRDDIR" "$IRDLINKDEV" "$IRDPARTITION" "$INITRDDISK" ; do
592 if [ -z "$i" ] ; then
593 echo 1>&2 "$PRG: Could not determine necessary information, aborting..."
594 echo 1>&2 "$PRG: Are you using chroot $PRG instead of $PRG --chroot ?"
600 ## check for cross device symlink
601 if [ -L "$KERNEL" ] ; then
602 if [ "$KERNDEV" != "$LINKDEV" ] ; then
603 echo 1>&2 "$PRG: Warning: Cross device symlink $KERNEL, using it's target instead"
604 KERNEL="$(readlink -f "$KERNEL" 2>/dev/null)"
605 if [ ! -f "$KERNEL" ] ; then
606 echo 1>&2 "$PRG: Unable to canonicalize symlink's target. Do not create cross device symlinks."
612 if [ -n "$INITRD" ] ; then
613 ## initrd must be on same device as kernel.
614 if [ "$IRDDEV" != "$KERNDEV" -o "$IRDPARTITION" != "$IRDPARTITION" -o "$INITRDDISK" != "$KERNELDISK" ] ; then
615 echo 1>&2 "$PRG: Initrd image must be on same device as kernel image."
619 ## check for cross device symlink
620 if [ -L "$INITRD" ] ; then
621 if [ "$IRDDEV" != "$IRDLINKDEV" ] ; then
622 echo 1>&2 "$PRG: Warning: Cross device symlink $INITRD, using it's target instead"
623 INITRD="$(readlink -f "$INITRD" 2>/dev/null)"
624 if [ ! -f "$INITRD" ] ; then
625 echo 1>&2 "$PRG: Unable to canonicalize symlink's target. Do not create cross device symlinks."
632 ## only powermacs appear to need device=
633 if (cat /proc/cpuinfo 2>/dev/null | grep -q pmac-generation 2> /dev/null) ; then
634 DEVICE="\ndevice=$($OFPATH $KERNELDISK)"
635 if [ $? != 0 ] ; then
636 echo 1>&2 "$PRG: Unable to determine OpenFirmware device name to $KERNELDISK, aborting..."
641 ## if there is a separate /boot partition we must strip off the /boot
642 ## mountpoint or else yaboot will not find the kernel.
643 if [ "$KERNDIR" != "$CHROOT" ] ; then
644 IMAGE="${KERNEL##*$KERNDIR}"
650 if [ "$CHROOT" != / ] ; then
651 IMAGE="${IMAGE##*$CHROOT}"
654 ## fix relative path (caused by chroot path fix)
664 if [ -n "$INITRD" ] ; then
665 ## if there is a separate /boot partition we must strip off the /boot
666 ## mountpoint or else yaboot will not find the kernel.
667 if [ "$IRDDIR" != "$CHROOT" ] ; then
668 INITRDIMG="${INITRD##*$IRDDIR}"
674 if [ "$CHROOT" != / ] ; then
675 INITRDIMG="${INITRDIMG##*$CHROOT}"
678 ## fix relative path (caused by chroot path fix)
684 INITRDIMG="/${INITRDIMG}"
689 ## figure out if yaboot is installed in /usr/local or not
690 if [ -f /usr/local/lib/yaboot/yaboot ] ; then
691 INSTALL=/usr/local/lib/yaboot/yaboot
692 elif [ -f /usr/lib/yaboot/yaboot ] ; then
693 INSTALL=/usr/lib/yaboot/yaboot
695 echo 1>&2 "$PRG: yaboot is not installed correctly"
699 ## newworld powermacs need the ofboot first stage loader
700 if [ "$(v=`cat /proc/cpuinfo 2>/dev/null | grep pmac-generation` ; echo ${v##*:})" = NewWorld ] ; then
701 if [ -f /usr/local/lib/yaboot/ofboot ] ; then
702 OFBOOT="\nmagicboot=/usr/local/lib/yaboot/ofboot"
703 elif [ -f /usr/lib/yaboot/ofboot ] ; then
704 OFBOOT="\nmagicboot=/usr/lib/yaboot/ofboot"
706 echo 1>&2 "$PRG: yaboot is not installed correctly"
711 ## check for properly (read debian) packaged yaboot.
712 if [ -d ${CHROOT}usr/share/doc/yaboot/examples ] ; then
713 HEADER="## see also: /usr/share/doc/yaboot/examples for example configurations.\n"
717 if [ -n "$KERNARGS" ] ; then
718 APPEND="\tappend=\"${KERNARGS}\"\n"
721 ## avoid user confusion when they boot an installer with video=ofonly
722 ## (usually via a install-safe label) and then reboot and have the box
723 ## not boot properly again.
724 if [ -z "$APPEND" ] ; then
725 if (grep -q '\<video=ofonly\>' /proc/cmdline 2> /dev/null) ; then
726 APPEND="\tappend=\"video=ofonly\"\n"
730 ## generate initrd= lines
731 if [ -n "$INITRDIMG" ] ; then
732 INITRDIMGS="\tinitrd=$INITRDIMG\n\tinitrd-size=8192\n"
735 ## generate global section of yaboot.conf
736 GLOBAL="## yaboot.conf generated by $PRG $VERSION
738 ## run: \"man yaboot.conf\" for details. Do not make changes until you have!!
740 ## For a dual-boot menu, add one or more of:
741 ## bsd=/dev/hdaX, macos=/dev/hdaY, macosx=/dev/hdaZ\n
742 boot=${BOOT}${DEVICE:-}
746 install=${INSTALL}${OFBOOT:-}\n"
748 ## generate image= section
752 \tread-only\n${APPEND:-}${INITRDIMGS:-}"
754 ## safely create a tmp file then move it into place after we are sure
756 TMPCONF=`mktemp -q "${CHROOT}${CONFIG}.XXXXXX"`
757 if [ $? != 0 ] ; then
758 echo 1>&2 "$PRG: Unable to write to ${CHROOT}${CONFIG%/*}"
762 $PRINTF "${GLOBAL}${IMAGES}" > "$TMPCONF"
763 if [ $? != 0 ] ; then
764 echo 1>&2 "$PRG: Unable to write temporary file ${TMPCONF}, aborting..."
768 ## rotate backups of /etc/yaboot.conf, 3 backups are kept
769 if [ -f "${CHROOT}${CONFIG}.old" ] ; then
771 if [ -f "${CHROOT}${CONFIG}.old.${i}" ] ; then
772 mv -f "${CHROOT}${CONFIG}.old.$i" "${CHROOT}${CONFIG}.old.$(($i + 1))"
773 if [ $? != 0 ] ; then
774 echo 1>&2 "$PRG: Unable to make backup of existing ${CHROOT}${CONFIG}.old.$i, aborting..."
780 mv -f "${CHROOT}${CONFIG}.old" "${CHROOT}${CONFIG}.old.0"
781 if [ $? != 0 ] ; then
782 echo 1>&2 "$PRG: Unable to make backup of existing ${CHROOT}${CONFIG}.old, aborting..."
787 ## backup /etc/yaboot.conf
788 if [ -f "${CHROOT}${CONFIG}" ] ; then
789 mv -f "${CHROOT}${CONFIG}" "${CHROOT}${CONFIG}.old"
790 if [ $? != 0 ] ; then
791 echo 1>&2 "$PRG: Unable to make backup of existing ${CHROOT}${CONFIG}, aborting..."
796 ## move new config into place
797 mv -f "${TMPCONF}" "${CHROOT}${CONFIG}"
798 if [ $? != 0 ] ; then
799 echo "$PRG: Unable to write file ${CHROOT}${CONFIG}"
802 ## nothing sensitive in generated config, comply with debian policy
803 chmod 644 "${CHROOT}${CONFIG}"
806 ## tell mkofboot where to find the config file if necessary
807 if [ "${CHROOT}${CONFIG}" != /etc/yaboot.conf ] ; then
808 YBINARGS="-C ${CHROOT}${CONFIG}"
811 ## run mkofboot to install the bootstrap, unless --noinstall
812 if [ "$NOINSTALL" = 0 ] ; then
813 if (command -v mkofboot 2>&1 > /dev/null) ; then
814 [ "$QUIET" = 0 ] && echo "Running mkofboot to make the disk bootable..."
815 mkofboot -f $YBINARGS || exit 1
816 [ "$QUIET" = 0 ] && echo "Done"
818 echo 1>&2 "$PRG: yaboot is not installed correctly, not running mkofboot"