The mkinitrd as called by a kernel upgrade is not sufficiently 'aggressive' enough trying to get a loop device -- it returns a false error implying all loop devices are in use then, clearly by testing lsmos, NONE are... [root@new mail]# rpm -ivh \ /var/ftp/pub/mirror/redhat/redhat/7.3/i386/RedHat/RPMS/kernel-2.4.18-3.i386.rpm Preparing... ########################################### [100%] 1:kernel ########################################### [100%] All of your loopback devices are in use! fatal error: unable to find a suitable template [root@new mail]# lsmod | grep loop [root@new mail]# modprobe loop modprobe: Can't locate module loop [root@new mail]# insmod loop Using /lib/modules/2.4.7-10/kernel/drivers/block/loop.o [root@new mail]# lsmod | grep loop loop 10896 0 (unused) [root@new mail]# rpm -ivh --force /var/ftp/pub/mirror/redhat/redhat/7.3/i386/RedHat/RPMS/kernel-2.4.18-3.i386.rpm Preparing... ########################################### [100%] 1:kernel ########################################### [100%] fatal error: unable to find a suitable template So we are able to avoid the loop error with a manual insmod loop before running the mkinitrd (here through the kernel Install) So I propose adding insmod loop > /dev/null 2>&1 at the top of the mkinitrd script. [root@new mail]# ls -al /boot total 7982 drwxr-xr-x 4 root root 1024 Oct 19 21:45 . drwxr-xr-x 20 root root 1024 Oct 19 04:49 .. lrwxrwxrwx 1 root root 19 Oct 19 21:44 System.map -> System.map-2.4.18-3 -rw-r--r-- 1 root root 474261 Apr 18 2002 System.map-2.4.18-3 -rw-r--r-- 1 root root 441284 Sep 6 2001 System.map-2.4.7-10 -rw-r--r-- 1 root root 512 Apr 1 1999 boot.0800 -rw-r--r-- 1 root root 5824 Jun 24 2001 boot.b -rw-r--r-- 1 root root 612 Jun 24 2001 chain.b -rw-r--r-- 1 root root 39999 Apr 18 2002 config-2.4.18-3 drwxr-xr-x 2 root root 1024 Jan 4 2002 grub -rw-r--r-- 1 root root 123 Jul 20 18:00 grub.instructions.txt -rw-r--r-- 1 root root 435617 May 28 2000 initrd-2.2.14-5.0.img -rw-r--r-- 1 root root 600944 Sep 16 2000 initrd-2.2.16-3.img -rw-r--r-- 1 root root 608799 Mar 12 2001 initrd-2.2.17-14.img -rw-r--r-- 1 root root 237765 Oct 19 21:45 initrd-2.4.18-3.img -rw-r--r-- 1 root root 447075 Jan 4 2002 initrd-2.4.7-10.img lrwxrwxrwx 1 root root 14 Jul 20 17:34 kernel.h -> kernel.h-2.4.7 -rw-r--r-- 1 root root 473 Oct 19 21:42 kernel.h-2.4.7 drwx------ 2 root root 12288 Jul 20 17:20 lost+found -rw------- 1 root root 16896 Oct 19 21:41 map -rw-r--r-- 1 root root 23108 Jun 24 2001 message -rw-r--r-- 1 root root 21282 Jun 24 2001 message.ja lrwxrwxrwx 1 root root 20 Oct 19 21:44 module-info -> module-info-2.4.18-3 -rw-r--r-- 1 root root 14431 Apr 18 2002 module-info-2.4.18-3 -rw-r--r-- 1 root root 13598 Sep 6 2001 module-info-2.4.7-10 -rw-r--r-- 1 root root 640 Jun 24 2001 os2_d.b -rwxr-xr-x 1 root root 2868043 Apr 18 2002 vmlinux-2.4.18-3 lrwxrwxrwx 1 root root 16 Oct 19 21:44 vmlinuz -> vmlinuz-2.4.18-3 -rw-r--r-- 1 root root 1041347 Apr 18 2002 vmlinuz-2.4.18-3 -rw-r--r-- 1 root root 804083 Sep 6 2001 vmlinuz-2.4.7-10 [root@new mail]# joe /etc/lilo.conf [root@new mail]# lilo -v -v LILO version 21.4-4, Copyright (C) 1992-1998 Werner Almesberger 'lba32' extensions Copyright (C) 1999,2000 John Coffman Reading boot sector from /dev/sda Merging with /boot/boot.b Secondary loader: 11 sectors. Mapping message file /etc/lilo.notice Warning: device 0x0806 exceeds 1024 cylinder limit Message: 3 sectors. Boot image: /boot/vmlinuz-2.4.18-3 Setup length is 10 sectors. Mapped 2036 sectors. Mapping RAM disk /boot/initrd-2.4.18-3.img RAM disk: 465 sectors. Added linux-2.3.18-3 Boot image: /boot/vmlinuz-2.4.7-10 Setup length is 10 sectors. Mapped 1573 sectors. Mapping RAM disk /boot/initrd-2.4.7-10.img RAM disk: 874 sectors. Added linux Fatal: No images have been defined. Removed temporary file /boot/map~ dunno about that Fatal at the end -- I'll walk it through a reboot
This means your module autoloading isn't working -- when mkinitrd tries to find a loop device the kernel should run "modprobe loop" automatically. I don't know why this isn't working for you, but it's not mkinitrd's fault.