Rob Hudson wrote:
> #boot=/dev/hda
> default=0
> timeout=10
> splashimage=(hd0,0)/grub/splash.xpm.gz
> title Red Hat Linux (2.4.21)
> root (hd0,0)
> kernel /vmlinuz ro root=LABEL=/1
> title Red Hat Linux (2.4.20-18.9)
> root (hd0,0)
> kernel /vmlinuz-2.4.20-18.9 ro root=LABEL=/1
> initrd /initrd-2.4.20-18.9.img
>
>
> It dies when it tries to mount root. I wasn't sure what that
> 'root=LABEL=/1' thing was, so I left it.
There may be a patch or special config setting needed (I don't know
for sure) to enable booting by label. Try replacing root=LABEL=/1
with root=/dev/hda3 or whatever.
> Also, remind me what initrd does? Do I need it? How do you make one?
Initrd is short for initial ram disk. It is a ram disk image that the
boot loader loads into memory with the kernel. If your distro
uses initrd, then you should too, because it's hard to second-guess
what their config files do.
To enable initrd, set CONFIG_BLK_DEV_INITRD in your kernel config. Go
to the Block Devices page and enable "RAM disk support" and "Initial
RAM disk (initrd) support".
Then, after building your kernel, type this.
mkinitrd -f /boot/initrd-2.4.21-rob.img
I've attached a shell script, makekern, that I use to build and
install new kernels for RedHat 7.2. I recently used it to install
2.4.21, so it might be somewhat relevant.
--
Bob Miller K<bob>
kbobsoft software consulting
http://kbobsoft.com [EMAIL PROTECTED]
#!/bin/sh -ex
do_config=false
do_clean=false
do_dep=false
do_install=true
kerndir=-undefined-
for arg
do
case "$arg" in
--no-install) do_install=false;;
--config) do_config=true; do_dep=true;;
--clean) do_clean=true; do_dep=true;;
--dep) do_dep=true;;
-*) echo "Use: $0 [--flags] [top-directory]" >&2; exit 1;;
*) case "$kerndir" in
-undefined-) kerndir="$arg";;
*) echo "Use: $0 [--flags] [top-directory]" >&2
exit 1;;
esac
esac
done
case "$kerndir" in
-undefined-) kerndir="`kerndir`";;
esac
cd "$kerndir"
[ -z "$MK_RECURS" -a -x makekern ] && MK_RECURS=true exec ./makekern ${1+"$@"}
$do_install && sudo -v
$do_config && make menuconfig
$do_clean && make clean
$do_dep && make dep
$do_install && sudo -v
make bzImage
$do_install && sudo -v
make modules
flags="`sed -n 's/^HOSTCFLAGS =//p' Makefile`"
VERSION="`sed -n 's/.*UTS_RELEASE \"\(.*\)\"/\1/p' include/linux/version.h`"
moddir="/lib/modules/$VERSION"
if $do_install
then
if $do_clean
then
sudo rm -f /boot/vmlinux-"$VERSION"
sudo rm -f /boot/vmlinuz-"$VERSION"
sudo rm -f /boot/System.map-"$VERSION"
sudo rm -f /boot/config-"$VERSION"
sudo rm -f /boot/initrd-"$VERSION".img
sudo rm -rf /lib/modules/"$VERSION"
fi
sudo make modules_install
sudo cp vmlinux /boot/vmlinux-"$VERSION"
sudo chmod 644 /boot/vmlinux-"$VERSION"
sudo cp arch/i386/boot/bzImage /boot/vmlinuz-"$VERSION"
sudo chmod 644 /boot/vmlinuz-"$VERSION"
sudo cp System.map /boot/System.map-"$VERSION"
sudo chmod 644 /boot/System.map-"$VERSION"
sudo cp .config /boot/config-"$VERSION"
sudo chmod 644 /boot/config-"$VERSION"
sudo mkinitrd -f /boot/initrd-"$VERSION".img "$VERSION"
sudo chmod 644 /boot/initrd-"$VERSION".img
sudo depmod -a -F /boot/System.map-"$VERSION" "$VERSION"
# GRUB! sudo lilo
fi
#!/usr/bin/perl -- # -*-perl-*-
chop($_ = `pwd`);
while (! -e "$_/MAINTAINERS") {
if (! s|/[^/]*$||) {
$_ = "/usr/src/linux";
last;
}
}
print "$_\n";
_______________________________________________
EuG-LUG mailing list
[EMAIL PROTECTED]
http://mailman.efn.org/cgi-bin/listinfo/eug-lug