Currently making a boot cd on a Slackware 10.0 machine using a 2.6.16.18 kernel and mkinitrd that comes with Slackware 10.0 . I have compiled ext2, ext3, reiserfs, ram and initrd into the kernel and not as a module.
but I still keep getting this error that I have searched google for but still cannot correct it.
Error:
Code:
RAMDISK: Compressed image found at block 0
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 180k freed
/boot/initrd.gz: Exiting
pivot_root: pivot_root: Device or resource busy
Kernel panic - not syncing: Attempted to kill init!
I had similiar problems with it trying to mount the root system on the root device, I commented it out and those errors stopped, but this doesn't work for pivot_root, and I'm not sure if commenting out the mounting has something to do with it, I think the root device was already mounted and was returning the busy error.
Here is the linuxrc files created by mkinitrd, if someone has any ideas would greatly appreciate it
linuxrc:
Code:
# Mount /proc:
mount -n proc /proc -t proc
echo "proc mounted"
# Load kernel modules:
if [ ! -d /lib/modules/`uname -r` ]; then
echo "No kernel modules found for Linux `uname -r`."
elif [ -x ./load_kernel_modules ]; then # use load_kernel_modules script:
echo "/boot/initrd.gz: Loading kernel modules from initrd image:"
. ./load_kernel_modules
else # load modules (if any) in order:
if ls /lib/modules/`uname -r`/*.*o 1> /dev/null 2> /dev/null ; then
echo "/boot/initrd.gz: Loading kernel modules from initrd image:"
for module in /lib/modules/`uname -r`/*.*o ; do
insmod $module
done
unset module
fi
fi
# Initialize LVM:
if [ -x /sbin/vgscan ]; then
/sbin/vgscan --mknodes
sleep 10
/sbin/vgchange -ay
fi
# If /rootdev isn't set, we'll have to trust exiting to work here.
# It's harder to clean up the initrd without a pivot_root,
# so it's a good idea to set rootdev (and rootfs) properly.
if [ -r /rootdev ]; then
if [ "`cat /rootdev`" = "" ]; then
exit 0
fi
else
exit 0
fi
# Switch to real root partition:
ROOTDEV=`cat /rootdev`
ROOTFS=`cat /rootfs`
# Change root device to /dev/ram0
echo 0x0100 > /proc/sys/kernel/real-root-dev
#mount -o ro -t $ROOTFS $ROOTDEV /mnt
ERR=$?
if [ ! "$ERR" = "0" ]; then
echo "ERROR: mount returned error code $ERR. Trouble ahead."
fi
unset ERR
umount /proc
# OK, in case there's no initrd directory:
if [ ! -d /mnt/initrd ]; then
mount -o remount -o rw -t $ROOTFS $ROOTDEV /mnt
mkdir -p /mnt/initrd
mount -o remount -o ro -t $ROOTFS $ROOTDEV /mnt
fi
cd /mnt
# bye now
echo "/boot/initrd.gz: exiting"
pivot_root . initrd
exit 0