When the aic7xxx module loads in my initrd image during boot with the parameter "aic7xxx=tag_info:{{0}}" (to turn on tagged command queuing for my scsi hd), insmod never loads the module (it says "Loading aic7xxx module", but just skips to next part of the boot process). I think the problem is with sash and the {}'s in the module parameter. I can only reproduce the problem during boot with an initrd image. If i change the paramter to something like "aic7xxx=verbose" (or use no parameter), the module loads fine. I have tried quoting the parameter with single quotes, double quotes, and tried escaping the {}'s with \'s with no success. At the bash prompt, I can insmod the module (with the parameter) just fine using single quotes around the parameter. rpm -q mkinitrd: mkinitrd-2.4.1-2 rpm -q sash: sash-3.4-2 rpm -q kernel: kernel-2.2.16-3 My conf.module line looks like: options aic7xxx aic7xxx=tag_info:{{0}} My mkinitrd command looks like: mkinitrd -v -f /boot/initrd-2.2.16-3.img 2.2.16-3 My lilo.conf lines look like: image=/boot/vmlinuz label=linux initrd=/boot/initrd-2.2.16-3.img And I was sure to run lilo before every reboot while I was working on this. To reproduce: Make an initrd image that loads a module with a parameter than contains {}'s. Boot a kernel using the initrd image. Initrd will say it's loading the module, but it will not (insmod fails to actually try to load it). Try again without the {}'s and watch work.
Upgraded to RedHat 7.0 Problem still exists. This looks like either a problem with sash or modutils (insmod.static), as mkinitrd actually makes the initrd image just fine.
{} characters are special to the shell. If mkinitrd is not escaping those characters one way or another, it's a mkinitrd bug, not a sash bug.
Another comment from Doug: >I could understand sash not passing the stuff inside >the {} when this happens, but it doesn't. It simply doesn't execute the >command line at all (and it fails the line silently so you have *no* clue >what's going on until you start disecting the linuxrc script).
sash, as well as all shells, considers { and } special. mkinitrd now properly escapes these characters. Additionally, we don't use sash to boot in our next release, so this will not be a problem.