You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

85 lines
2.1 KiB

#!/bin/sh -efux
# NB: /etc/initrd.mk carefully prepared by earlier scripts
fatal() { echo "** error: $@" >&1; exit 1; }
kver=
for KFLAVOUR in $GLOBAL_KFLAVOURS; do
kver+=" $(rpm -qa 'kernel-image*' \
--qf '%{version}-%{name}-%{release}\n' \
| grep "$KFLAVOUR" \
| sed 's/kernel-image-//')"
done
[ -n "$kver" ] ||
fatal "no kernel version identified"
[ -s /.in/modules ] ||
fatal "kernel modules set not found"
cat >> /etc/initrd.mk <<EOF
FEATURES += add-modules compress cleanup rdshell
FEATURES += bootchain-localdev
FEATURES += bootchain-liverw
FEATURES += bootchain-waitdev
FEATURES += bootchain-getimage
FEATURES += bootchain-nfs
FEATURES += bootchain-cifs
PUT_UDEV_RULES += *-net-setup-link.rules *-net-description.rules
PUT_FILES += /lib/systemd/network/99-default.link
EOF
echo "MODULES_TRY_ADD += $(grep -v ^# /.in/modules |
grep -v / |
grep .ko |
sort -u | tr -s '\n' ' ')" >> /etc/initrd.mk
echo "MODULES_TRY_ADD += $(grep ^# -v /.in/modules |
grep -v .ko |
sort -u |
sed 's,$,/,g' | tr -s '\n' ' ')" >> /etc/initrd.mk
dialog --create-rc /etc/dialogrc.tmp
cat /etc/dialogrc.tmp |sed -E \
-e 's/^(use_colors).*/\1 = ON/' \
-e 's/^(use_shadow).*/\1 = ON/' \
-e 's/^(screen_color).*/\1 = \(WHITE,RED,ON\)/' \
> /etc/dialogrc.error
rm -f /etc/dialogrc.tmp
# replace generated config bootchain to stage1 chroot
mv /.image/bootchain /etc/sysconfig/
echo "PUT_FILES += /etc/sysconfig/bootchain" >> /etc/initrd.mk
echo "PUT_FILES += /etc/dialogrc.error" >> /etc/initrd.mk
# FIXME: large storage systems can get that tmpfs filled up
# with debug data as of make-initrd 2.2.12
rm -vf /usr/share/make-initrd/data/etc/udev/rules.d/00-debug.rules \
/usr/share/make-initrd/data/lib/uevent/filters/debug
MAKE_INITRD_OPTS="--no-checks AUTODETECT="
MAKE_INITRD_VER="`make-initrd -V \
| sed -rn 's/^make-initrd version ([0-9.]+)/\1/p'`"
[ -z "$GLOBAL_VERBOSE" ] ||
MAKE_INITRD_OPTS="$MAKE_INITRD_OPTS -v"
cd /boot
for KVER in $kver; do
make-initrd $MAKE_INITRD_OPTS -k "$KVER" ||
fatal "make-initrd failed"
done
case `arch` in
e2k)
kname=image;;
*)
kname=vmlinuz;;
esac
rm -f $kname initrd.img
ln -s $kname-$KVER $kname
ln -s initrd-$KVER.img initrd.img
: