きよです。
カーネルを kernel-2.4.20-0vl29.1.i686.rpm に
アップデートして、mkinitrd で新しい initrd を作成しようと
したのですが、以下のようなメッセージが出て
initrd を作成できません。
[root@nsp /boot]# mkinitrd /boot/initrd-2.4.20-0vl29.1.img 2.4.20-0vl29.1
find: /proc/scsi/usb-sto*: No such file or directory
basename: too few arguments
Try `basename --help' for more information.
/sbin/mkinitrd のどこかでひっかかっているのだろうと思い
/sbin/mkinitrd を見てみると
294: needusb=""
295: usbHosts=""
296: if [ -z "$nousb" ]; then
297: # If / or /boot is on a USB device include the driver. With root by
298: # label we could still get some odd behaviors
299: for fs in / /boot ; do
300: esc=$(echo $fs | sed 's,/,\\/,g')
301: dev=$(mount | awk "/ on ${esc} / { print \$1 }" | sed 's/[0-9]*$//' | cut -d/ -f3)
302: if [ "$(echo $dev | cut -c1-2)" = sd ]; then
303: if [ -z "$usbHosts" -a /proc/scsi/usb-storage-0 ]; then
304: usbHosts=$(find /proc/scsi/usb-sto* -type f |
305: xargs -n 1 basename)
306: fi
307:
308: host=$(kudzu --probe -b scsi |
309: gawk '/^device: '${dev}'/,/^host:/ { if (/^host/) print $2; }')
310: if echo " $usbHosts " | grep " $host " > /dev/null; then
311: needusb=1
312: fi
313: fi
314: done
315: fi
このあたりで usb関連のモジュールの検出(?)を行っていて
上記エラーメッセージは、305行目で basename コマンドに
引数を渡せていないために出ているようです。
対象のホストでは USBデバイスは一切使用していないので
296行目の if をスキップさせてしまえばよさそうに思える
のですが、どうすれば良いのでしょうか。
また、スキップしてしまっても問題ないでしょうか。
対象ホストの /etc/modules.conf は以下のようになっています。
alias parport_lowlevel parport_pc
alias char-major-10-175 agpgart
alias char-major-107 3dfx
alias scsi_hostadapter aic7xxx
alias eth0 eepro100
alias parport_lowlevel parport_pc
他にも必要な情報があれば、ご指摘下さい。
以上、よろしくお願いいたします。