[CentOS] Re: Install Using Floppy/CD
Phil Schaffner
Philip.R.Schaffner at nasa.gov
Thu Sep 28 14:35:13 UTC 2006
On Tue, 2006-09-26 at 17:21 -0700, Charles Sliger wrote:
> > Are you trying to install on a machine that doesn't allow booting from CD?
> > There is a boot floppy using smart boot manager that allows you to boot
> > from a
> > cd on systems that don't have the option.
> > http://btmgr.webframe.org/
>
> [chaz> ] Correct, the BIOS will not boot from the CD.
> I'll take a look at the smart boot manager.
> I was assuming that the CentOS folks had a canned solution, probably using
> grub.
Untested as my machines all boot from CDs, and some don't even have
floppies any more, but you can create a grub floppy, optionally with a
menu interface. See script below.
After creating the floppy, mount it and edit the grub/grub.conf file to
contain the following stanza (last two parameters on the kernel line may
not be necessary, ramdisk_size might need to be increased):
title CentOS Installer CD
root (cd)
kernel (cd)/isolinux/vmlinuz ramdisk_size=8192 askmethod upgradeany
initrd (cd)/isolinux/initrd.img
------------------------------- cut ----------------------------
#!/bin/bash
# mkgrubdisk
#
# Written by Phil Schaffner <p.r.schaffner at ieee.org>
# based on mkbootdisk by Erik Troan <ewt at redhat.com>
pause=yes
format=yes
device=/dev/fd0
unset verbose
GRUBDIR=/boot/grub
MOUNTDIR=/tmp/mkgrubmenu
PATH=/sbin:$PATH
export PATH
VERSION=0.1
usage () {
cat >&2 <<EOF
usage: `basename $0` [--version] [--noprompt] [--noformat]
[--device <devicefile>] [--grubdir <dir>] [--verbose -v]
(ex: `basename $0` --device /dev/fd1)
EOF
exit $1
}
while [ $# -gt 0 ]; do
case $1 in
--device)
shift
device=$1
;;
--grubdir)
shift
GRUBDIR=$1
;;
--help)
usage 0
;;
--noprompt)
unset pause
;;
--noformat)
unset format
;;
-v)
verbose=true
;;
--verbose)
verbose=true
;;
--version)
echo "mkgrubdisk: version $VERSION"
exit 0
;;
*)
usage
;;
esac
shift
done
[ -d $GRUBDIR ] || {
echo "$GRUBDIR is not a directory!" >&2
exit 1
}
if [ -e "$device" ]; then {
[ -n "$pause" ] && {
echo -n "Insert a"
[ -n "$format" ] || echo -n " vfat formatted"
echo " disk in $device."
echo "Any information on the disk will be lost."
echo -n "Press <Enter> to continue or ^C to abort: "
read aline
}
[ -n "$format" ] && {
[ -n "$verbose" ] && echo "Formatting $device... "
fdformat $device || exit 0
mkfs.msdos $device > /dev/null 2>/dev/null || exit 0
[ -n "$verbose" ] && echo "done."
}
rm -rf $MOUNTDIR
mkdir $MOUNTDIR || {
echo "Failed to create $MOUNTDIR" >&2
exit 1
}
[ -d $MOUNTDIR ] || {
echo "$MOUNTDIR is not a directory!" >&2
exit 1
}
mount -wt vfat $device $MOUNTDIR || {
rmdir $MOUNTDIR
exit 1
}
mkdir $MOUNTDIR/grub
[ -n "$verbose" ] && echo -n "Copying $GRUBDIR files... "
cd $GRUBDIR
cp -a stage1 stage2 grub.conf device.map splash.xpm.gz $MOUNTDIR/grub
[ -n "$verbose" ] && echo "done."
[ -n "$verbose" ] && echo -n "Setting up GRUB... "
grub --device-map=$GRUBDIR/device.map --batch <<EOF
root (fd0)
setup (fd0)
quit
EOF
[ -n "$verbose" ] && echo "done."
umount $MOUNTDIR
rmdir $MOUNTDIR
[ -n "$verbose" ] && echo "done setting up GRUB."
echo "Edit (fd0)/grub/grub.conf to customize."
echo "May want to use splashimage=(fd0)/grub/splash.xpm.gz"
}
else
echo "$device does not exist"
fi
------------------------------- cut ----------------------------
Phil
More information about the CentOS
mailing list